SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Machine Learning
with Python
Representing Data and Engineering Features
1
Contacts
Haesun Park
Email : haesunrpark@gmail.com
Meetup: https://www.meetup.com/Hongdae-Machine-Learning-Study/
Facebook : https://facebook.com/haesunrpark
Blog : https://tensorflow.blog
2
Book
파이썬 라이브러리를 활용한 머신러닝, 박해선.
(Introduction to Machine Learning with Python, Andreas
Muller & Sarah Guido의 번역서입니다.)
번역서의 1장과 2장은 블로그에서 무료로 읽을 수 있습니다.
원서에 대한 프리뷰를 온라인에서 볼 수 있습니다.
Github:
https://github.com/rickiepark/introduction_to_ml_with_python/
3
데이터 표현과 특성 공학
4
연속형 vs 범주형
출력값이 연속형 à 회귀 , 출력값이 범주형 à 분류
연속형 특성continuous feature : 실수 데이터, ex) 0.13493, 100.0
범주형(이산형) 특성categorical feature : 연속적이지 않은 숫자나 속성,
ex) 픽셀 강도, 브랜드, 쇼핑카테고리
범주형 특성의 사이에는 중간값이 없고 순서가 없습니다. ex) 책과 옷
특성 공학feature engineering : 애플리케이션에 가장 적합한 데이터 표현을 찾는 것
알맞은 데이터 표현 >>> 매개변수 탐색 ex) inch와 cm의 스케일
5
범주형 변수
61994년 인구조사 데이터베이스: 미국 성인의 소득 데이터셋(Adult Data Set)
이진 출력: 분류문제
<=50 , >50k
연속형 특성
범주형 특성𝑦" = 𝑤 0 ×𝑥 0 + 𝑤 1 ×𝑥 1 + ⋯ + 𝑤 𝑝 ×𝑥 𝑝 + 𝑏 > 0
원-핫-인코딩one-hot-encoding(가변수dummy variable)
범주형 변수를 0 또는 1 의 값을 가진 여러개의 새로운 특성으로 바꿈(이진 특성)
7
* 통계에서의 더미 인코딩은 마지막 값을 모든 변수가 0인 것으로 대신함(열 랭크 부족 현상 때문)
pandas.read_csv
8
pandas.get_dummies
9
범주형 데이터 자동 변환
로지스틱 회귀 적용
10
occupation_ Transport-moving까지 포함됨
훈련세트 나누기 전에 먼저 get_dummies 적용
숫자로 된 범주형 변수
숫자로 되어 있다고 무조건 연속형 특성은 아닙니다.
ex) workclass를 객관식으로 골랐다면 1, 2, 3 와 같은 숫자로 저장될 수 있습니다.
연속형인지 범주형인지는 특성의 의미를 알아야 판단할 수 있는 경우가 많습니다.
ex) 별 다섯개의 평점 데이터, 영화 관람 등급(범주형이지만 순서가 있음)
pandas의 get_dummies 또는 scikit-learn의 OneHotEncoder를 사용할 수 있음
OneHotEncoder는 숫자로된 범주형 변수에만 사용 가능
11
숫자 범주형 변환 예제
12
구간 분할
13
wave + 선형 회귀, 결정트리 회귀
14
구간 분할bining
연속형 특성 하나를 구간을 나누어 여러개의 범주형 특성으로 만듦
15
[10] : 2.4 <= x < 3
[11] : 3 <= x
연속형
범주형
OneHotEncoder
16
일반 numpy 배열을 받기 위해
선형 모델은 상수 특성으로 인해 유연해졌으나
결정트리는 오히려 더 나빠졌음
상호작용과 다항식
17
구간 분할 + 원본 데이터
18
구간 분할 * 원본 데이터
19
PolynomialFeatures
구간 분할의 예제처럼 원본 특성에 상호작용이나 제곱항을 추가함
20
다항 회귀Polynomial Regression
21
민감한 영역 존재
SVR과 비교
22
boston dataset
23
13
2
=
14!
2! 12!
= 91
boston + Ridge vs RandomForestClassifier
24
일변량 비선형 변환
25
일변량 변환
log, exp, sin 같은 수학 함수를 적용하여 특성 값을 변환함
선형이나 신경망 모델 같은 경우 데이터 스케일에 민감함
ex) 2장의 컴퓨터 메모리 가격 데이터 예제
26
로그 스케일
카운트 데이터
27
카운트 데이터 + Ridge
28
특성 자동 선택
29
일변량 통계
유용한 특성인지를 판단하는 방법: 일변량 통계, 모델 기반 선택, 반복적 선택
분산 분석(ANOVAanalysis of variance)은 클래스별 평균을 비교합니다.
𝐹 =
𝑆𝑆5678669/(𝑘 − 1)
(𝑆𝑆7?7 − 𝑆𝑆5678669)/(𝑛 − 𝑘)
𝑆𝑆5678669 = A 𝑛B 𝑥̅B − 𝑥̅
D
, 𝑆𝑆7?7 = A 𝑥F − 𝑥̅ D
9
FGH
I
BGH
SelectKBest나 SelectPercentile에서 분류는 f_classif, 회귀는 f_regression로 지정
30
cancer + noise
31
SelectPercentile + LogisticRegression
32
성능 향상 + 모델 해석⬆
모델 기반 선택
feature_importances_(결정트리)나 coef_(선형모델) 값을 사용합니다.
기본 임계값 : L1 페널티(라쏘)가 있는 경우 10-5, 그외는 평균값
33
mean
1.3*median
SelectFromModel + LogisticRegression
34
반복적 특성 선택
특성을 하나씩 추가하면서 모델을 만들거나 모든 특성에서 하나씩 제거하면서
모델을 만듭니다.
여러개의 모델을 만들기 때문에 계산 비용이 많이 듭니다.
재귀적 특성 제거(RFErecursive feature elimination)은 전체 특성을 포함한 모델에서 특성
중요도가 가장 낮은 특성을 지정된 개수만큼 남을 때 까지 계속 제거합니다.
feature_importances_(결정트리)나 coef_(선형모델) 값을 사용합니다.
35
RFE
36
RFE + LogisticRegression
RFE에 사용한 모델을 이용해 평가에 사용할 수 있습니다.
37
로지스틱 회귀와 랜덤 포레스트의 성능이 비슷함
전문가 지식 활용
38
특성 공학과 도메인 지식
항공료를 잘 예측하려면 날짜, 항공사, 출발지, 도착지외에 음력 공휴일이나 방학
기간을 알아야 합니다.
뉴욕의 시티 바이크 대여 예측
39
훈련데이터 테스트데이터
3시간 간격의
대여 횟수
Unix epoch 시간
Unix Time + RandomForestRegressor
40
트리모델의 특징
(외삽 불능)
`
[248, 1]
Hour + RandomForestRegressor
41
Hour,week + RandomForestRegressor
42
[248, 2]
Hour,week + LinearRegression
43
시간을 연속형으로 인식
OneHotEncoder + LinearReression
44
[248, 15] : 7개 요일, 8개 시간 구간
PolynomialFeatures + LinearRegression
45
[248, 120] : HJ
D
+ 15 = 105 + 15 = 120
LinearRegression’s coef_
선형 모델은 학습된 모델 파라미터를 확인할 수 있습니다.
46

Mais conteúdo relacionado

Mais procurados

7.woring with text data
7.woring with text data7.woring with text data
7.woring with text dataHaesun Park
 
5.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 25.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 2Haesun Park
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvementHaesun Park
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
5.model evaluation and improvement(epoch#2) 1
5.model evaluation and improvement(epoch#2) 15.model evaluation and improvement(epoch#2) 1
5.model evaluation and improvement(epoch#2) 1Haesun Park
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 
7.woring with text data(epoch#2)
7.woring with text data(epoch#2)7.woring with text data(epoch#2)
7.woring with text data(epoch#2)Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지Haesun Park
 
1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련Haesun Park
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regressionHaesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리Haesun Park
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디Haesun Park
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networksHaesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신Haesun Park
 
(Handson ml)ch.7-ensemble learning and random forest
(Handson ml)ch.7-ensemble learning and random forest(Handson ml)ch.7-ensemble learning and random forest
(Handson ml)ch.7-ensemble learning and random forestHaesun Park
 
3.neural networks
3.neural networks3.neural networks
3.neural networksHaesun Park
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2Haesun Park
 
Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHyo jeong Lee
 

Mais procurados (20)

7.woring with text data
7.woring with text data7.woring with text data
7.woring with text data
 
5.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 25.model evaluation and improvement(epoch#2) 2
5.model evaluation and improvement(epoch#2) 2
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvement
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
5.model evaluation and improvement(epoch#2) 1
5.model evaluation and improvement(epoch#2) 15.model evaluation and improvement(epoch#2) 1
5.model evaluation and improvement(epoch#2) 1
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
7.woring with text data(epoch#2)
7.woring with text data(epoch#2)7.woring with text data(epoch#2)
7.woring with text data(epoch#2)
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
 
1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networks
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
 
(Handson ml)ch.7-ensemble learning and random forest
(Handson ml)ch.7-ensemble learning and random forest(Handson ml)ch.7-ensemble learning and random forest
(Handson ml)ch.7-ensemble learning and random forest
 
3.neural networks
3.neural networks3.neural networks
3.neural networks
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2
 
Howto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear RegressionHowto_Tensorflow+Linear Regression
Howto_Tensorflow+Linear Regression
 

Semelhante a 4.representing data and engineering features

딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)Tae Young Lee
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기 Yong Joon Moon
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competitionjdo
 
Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델KwangHyeonPark
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템NAVER D2
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)익성 조
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinDong Chan Shin
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term ReviewMario Cho
 
Processing 4th Class: Function
Processing 4th Class: FunctionProcessing 4th Class: Function
Processing 4th Class: FunctionMinGi KYUNG
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorialLee Seungeun
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)상욱 송
 

Semelhante a 4.representing data and engineering features (20)

딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competition
 
Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
3주차 스터디
3주차 스터디3주차 스터디
3주차 스터디
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term Review
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
Processing 4th Class: Function
Processing 4th Class: FunctionProcessing 4th Class: Function
Processing 4th Class: Function
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explained
 
랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)
 

4.representing data and engineering features