{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "hide_input": false }, "outputs": [], "source": [ "%matplotlib inline\n", "from preamble import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Representing Data and Engineering Features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- 특성(Feature)의 종류\n", " - Continuous Feature (연속형 특성)\n", " - 정량적\n", " - 예\n", " - 픽셀 밝기\n", " - 붓꽃 측정값\n", " - Categorical Feature (범주형 특성) or Discrete Feature (이산형 특성)\n", " - 정성적\n", " - 예\n", " - 제품의 브랜드\n", " - 색상\n", " - 판매분류(책, 옷, 하드웨어)\n", "- Feature Engineering (특성 공학)\n", " - 특정 어플리케이션에 가장 적합한 데이터의 표현을 찾는 것\n", " - 일반적으로 데이터가 어떤 형태로 구성되어 있는가보다 데이터를 어떻게 표현하는가가 머신러닝 모델의 성능에 더 많은 영향을 줌\n", " - 일반적으로 올바른 데이터 표현은 지도학습 모델에서 적절한 매개변수를 선택하는 것보다 성능에 더 많은 영향을 줌" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4.1 Categorical Variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Adult Data Set\n", " - https://archive.ics.uci.edu/ml/datasets/adult\n", " - 1994년 인구 조사 데이터베이스에서 추출한 미국 성인의 소득 데이터셋\n", " - 특성(Feature)\n", " - 연속형 특성\n", " - 근로자 나이(age)\n", " - 주당 근로시간(hours-per-week)\n", " - 범주형 특성\n", " - 고용형태(workclass)\n", " - 자영업(self-emp-not-inc)\n", " - 사업체 근로자(private)\n", " - 공공 근로자(state-gov)\n", " - 교육수준(education)\n", " - 학사(Bachelors)\n", " - 석사(Masters)\n", " - ...\n", " - 성별(gender)\n", " - 직업(occupation)\n", "- 풀려는 문제\n", " - 분류 문제: 어떤 근로자의 수입이 50,000달러를 초과하는지 그 이하인지를 예측 \n", " - 타깃 특성: income\n", " - <=50K\n", " - \\>50K\n", "- 사용하려는 머신러닝 모델\n", " - 로지스틱 회귀\n", " - 문제\n", " - 범주형 특성값을 로지스틱 회귀식에 곧바로 넣을 수가 없음" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4.1.1 One-Hot-Encoding (Dummy variables)\n", "- One-out-of-N encoding\n", "- Dummy variable (가변수)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- pandas를 이용하여 데이터를 로드하고 범주형 변수를 원-핫 인코딩으로 변경" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | age | \n", "workclass | \n", "education | \n", "gender | \n", "hours-per-week | \n", "occupation | \n", "income | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "39 | \n", "State-gov | \n", "Bachelors | \n", "Male | \n", "40 | \n", "Adm-clerical | \n", "<=50K | \n", "
1 | \n", "50 | \n", "Self-emp-not-inc | \n", "Bachelors | \n", "Male | \n", "13 | \n", "Exec-managerial | \n", "<=50K | \n", "
2 | \n", "38 | \n", "Private | \n", "HS-grad | \n", "Male | \n", "40 | \n", "Handlers-cleaners | \n", "<=50K | \n", "
3 | \n", "53 | \n", "Private | \n", "11th | \n", "Male | \n", "40 | \n", "Handlers-cleaners | \n", "<=50K | \n", "
4 | \n", "28 | \n", "Private | \n", "Bachelors | \n", "Female | \n", "40 | \n", "Prof-specialty | \n", "<=50K | \n", "
\n", " | age | \n", "hours-per-week | \n", "workclass_ ? | \n", "workclass_ Federal-gov | \n", "... | \n", "occupation_ Tech-support | \n", "occupation_ Transport-moving | \n", "income_ <=50K | \n", "income_ >50K | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "39 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
1 | \n", "50 | \n", "13 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
2 | \n", "38 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
3 | \n", "53 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
4 | \n", "28 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
5 | \n", "37 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
6 | \n", "49 | \n", "16 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
7 | \n", "52 | \n", "45 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "
8 | \n", "31 | \n", "50 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "
9 | \n", "42 | \n", "40 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "
10 rows × 46 columns
\n", "\n", " | workclass_ ? | \n", "workclass_ Federal-gov | \n", "workclass_ Local-gov | \n", "workclass_ Never-worked | \n", "... | \n", "workclass_ Self-emp-inc | \n", "workclass_ Self-emp-not-inc | \n", "workclass_ State-gov | \n", "workclass_ Without-pay | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "
2 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
3 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
4 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
5 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
6 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "
8 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
9 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
10 rows × 9 columns
\n", "\n", " | Categorical Feature | \n", "Integer Feature | \n", "
---|---|---|
0 | \n", "socks | \n", "0 | \n", "
1 | \n", "fox | \n", "1 | \n", "
2 | \n", "socks | \n", "2 | \n", "
3 | \n", "box | \n", "1 | \n", "
\n", " | Integer Feature | \n", "Categorical Feature_box | \n", "Categorical Feature_fox | \n", "Categorical Feature_socks | \n", "
---|---|---|---|---|
0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "
1 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
2 | \n", "2 | \n", "0 | \n", "0 | \n", "1 | \n", "
3 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "
\n", " | Integer Feature_0 | \n", "Integer Feature_1 | \n", "Integer Feature_2 | \n", "Categorical Feature_box | \n", "Categorical Feature_fox | \n", "Categorical Feature_socks | \n", "
---|---|---|---|---|---|---|
0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "
1 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
2 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "
3 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "