SlideShare a Scribd company logo
1 of 48
Introduction to
Machine Learning with Python
2. Supervised Learning(2)
Honedae Machine Learning Study Epoch #2
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
이진 분류binary classification
회귀와 같은 선형 방정식을 사용
𝑦 = 𝑤 0 × 𝑥 0 + 𝑤 1 × 𝑥 1 + ⋯ + 𝑤 𝑝 × 𝑥 𝑝 + 𝑏 > 0
0보다 크면 양성 클래스(+1), 0보다 작으면 음성 클래스(-1)
predict_proba()는 sigmoid 함수사용, predict()는 decision_function() 사용
𝑦이 입력에 대한 결정 경계decision boundary를 나타냄
결정 경계는 직선(특성 1개), 면(특성 2개), 초평면(특성 3개)으로 표현됨
선형 모델의 알고리즘 구분
가중치와 절편이 훈련 데이터에 얼마나 잘 맞는지  비용 함수 또는 손실 함수
사용할 수 있는 규제의 방법
5
0-1 손실
계단 함수라 미분 불가능  최적화에 사용하기 어려움
6
대리 손실 함수surrogate loss function
7
LogisticRegression, LinearSVC
대표적인 선형 분류 알고리즘
로지스틱 회귀Logistic Regression(sklearn.linear_model.LogisticRegression)
선형 서포트 벡터 머신Linear SVM(sklearn.svm.LinearSVC)
로지스틱(시그모이드sigmoid) 함수
8
𝑦 =
1
1 + 𝑒−𝑧
𝑧 = 𝑋 ⋅ 𝑤 + 𝑏
predict() : z > 0predict_proba()
: 𝑦 > 0.5
로지스틱 회귀의 비용함수
multi_class=multinomial
(크로스 엔트로피cross-entropy 손실)
multi_class=ovr
(로지스틱logistic 손실)
9
−
𝑖=1
𝑛
𝑦𝑙𝑜𝑔 𝑦 , 𝑦 =
𝑒 𝑧
𝑒 𝑧
−
𝑖=1
𝑛
𝑦𝑙𝑜𝑔 𝑦 + 1 − 𝑦 log 1 − 𝑦 , 𝑦 =
1
1 + 𝑒−𝑧
, 𝑦 = {1, 0}
−
𝑖=1
𝑛
log 𝑒−𝑦 𝑤×𝑥+𝑏
+ 1 , 𝑦 = {1, −1}
𝐶 ⋅ 𝐿 𝑤 + 𝑙2 𝑜𝑟 𝑙1, 𝐶 =
1
𝛼
𝛼 ↑ 𝐶 ↓ → 규제 ↑ 𝑤 ↓
𝛼 ↓ 𝐶 ↑ → 규제 ↓ 𝑤 ↑
텍스트의 공식과
구현 방식에는
종종 차이가 있음
소프트맥스softmax 함수
규제 강도
LinearSVC vs LogisticRegression
10
L2 규제(penalty=’l2’ 기본값)
loss=‘squared_hinge’ (기본값)
결정 경계
forge 데이터셋
클래스 1
클래스 0
LinearSVC’s C param
11
과소적합 과대적합
C=1.0 기본값
𝐶 ↓ → 규제 ↑ 𝑤 ↓ (다수의 포인트에 맞춤)
𝐶 ↑ → 규제 ↓ 𝑤 ↑ (개개의 포인트에 맞춤)
규제 강도
LogisticRegression + cancer
12
과소적합(규제가 너무 큼)
C=1.0
복잡도 증가, 성능향상
복잡도를 기본값 보다 더 낮추면
30개 특성
LogisticRegression.coef_ (L2)
13
규제 완화
회귀의 Ridge와 비슷
LogisticRegression.coef_ (L1)
14
규제 완화
회귀의 Lasso와 비슷
다중 클래스 분류
로지스틱 회귀를 제외하고 대부분 선형 분류 모델은 이진 분류만을 지원
로지스틱 회귀는 소프트맥스 함수를 사용하여 다중 분류 지원
LogisticRegression(multi_class=multinomial)
대부분 모델들은 클래스마다 따로 이진 분류 모델을 만드는 일대다one-vs-rest
방식(또는 one-vs-all)을 사용하여 이진 분류 모델 중에서 가장 높은 점수의
클래스가 선택
클래스마다 가중치와 절편이 만들어짐
15
−
𝑖=1
𝑛
𝑦𝑙𝑜𝑔 𝑦 , 𝑦𝑐 =
𝑒 𝑧 𝑐
𝑘=1
𝐾
𝑒 𝑧 𝑘
𝑧 𝑘 = 𝑤 𝑘 0 × 𝑥 0 + 𝑤 𝑘 1 × 𝑥 1 + ⋯ + 𝑤 𝑘 𝑝 × 𝑥 𝑝 + 𝑏 𝑘
make_blobs dataset
16
3개의 클래스를 가진 2차원 데이터셋
LinearSVC 다중 분류
17
세 개의 클래스 두 개의 특성
클래스 0
클래스 1클래스 2
다중 분류 결정 경계
18
장단점과 매개변수
규제 매개변수: 회귀 모델은 alpha, 분류 모델은 C
보통 규제는 로그 스케일로 조절 (0.1, 1, 10, 100)
일부 특성이 중요하거나 해석을 쉽게하려면 L1 규제, 아니면 기본값 L2
선형 모델의 장점
학습속도와 예측속도 빠름(벡터 곱셈)
비교적 예측 과정을 이해하기 쉬움(계수 분석이 어려울 수 있음)
큰 데이터셋과 희박 데이터셋에 적합
샘플 수(n)보다 특성(m)이 많을 때. ex) m = 10,000, n = 1,000
특성이 부족할 때는 선형 모델 보다는 커널 SVM 등이 효과적
수십, 수백만개라면 LogisticRegression 에 solver=’sag’ 옵션을 사용(L2만 가능)
더 큰 데이터셋에서는 SGDRegressor, SGDClassifier 19
𝛼 ↑ 𝐶 ↓ → 규제 ↑ 𝑤 ↓
𝛼 ↓ 𝐶 ↑ → 규제 ↓ 𝑤 ↑
메서드 연결method chaining
20
객체(self) 반환
logreg = LogisticRegression()
logreg = logreg.fit(X_train, y_train)
예측 결과 반환
학습한 로지스틱 회귀 모델을 다음 코드에서 사용할 수 없음
나이브 베이즈
21
나이브 베이즈Navie Bayes 분류기
선형 분류기보다 훈련 속도가 빠르지만 일반화 성능이 조금 떨어집니다.
특성마다 클래스별 통계를 취합해 파라미터를 학습합니다.
GaussianNB : 연속적인 데이터
BernoulliNB : 이진 데이터, 텍스트 데이터
MultinomialNB : 정수 카운트 데이터, 텍스트 데이터
22
BernoulliNB
23
MultinomialNB : 클래스별 특성의 평균
GaussianNB : 클래스별 특성의 표준편차와 평균
장단점과 매개변수
alpha 매개변수로 모델 복잡도 조절합니다.
가상의 양수 데이터를 alpha 개수만큼 추가하여 통계를 완만하게 만듦니다.
alpha가 크면 모델의 복잡도가 낮아지지만 성능의 변화는 크지 않습니다.
GaussianNB는 고차원 데이터셋에 BernoulliNB, MultinomialNB는 텍스트와 같은
희소 데이터를 카운트하는데 사용합니다.
MultinomialNB는 0이 아닌 특성이 많은 경우 BernoulliNB보다 성능이 좋습니다.
훈련과 예측 속도가 빠르고 과정을 이해하기 쉽습니다.
희소한 고차원 데이터셋에 잘 작동하고 매개변수에 민감하지 않습니다.
24
결정 트리
25
결정 트리decision tree
분류와 회귀에 널리 사용됩니다.
결정에 다다르기 위해 예/아니오 질문을 이어나가면서 학습하는 이진 트리입니다.
26
특성
(i.e. 얼마나 많이 먹나요?)
노드node
리프leaf 노드
엣지edge
루트root 노드
결정 트리 만들기
sklearn.datasets.make_moons(): two_moons 데이터셋
정답에 가장 빨리 도달하는 yes/no 질문(테스트)을 학습합니다.
연속적인 데이터셋에서는 “특성 i 가 a 보다 큰가?”와 같은 형태가 됩니다.
27
결정 트리 훈련
28
x[1]
x[0]
클래스 0
클래스 1
* 분할 기준
- 회귀 문제:
criterion=‘mse’
- 분류 문제:
criterion=‘gini’ or ‘entropy’
결정 트리 예측
하나의 특성을 사용하여 데이터를 둘로 나누므로 항상 축에 평행하게 분리됩니다.
학습은 순수노드만 남을 때까지 분할이 반복되고 새로운 데이터 포인트가 속한
분할 영역이 예측(다수의 타깃 혹은 노드의 평균값)이 됩니다.
29순수 노드: 하나의 타깃만 가짐
복잡도 제어
모든 리프가 순수 노드가 될 때 까지 진행하면 복잡해지고 과대적합됩니다.
순수 노드로만 이루어진 트리는 훈련 데이터를 100% 정확히 맞추므로 일반화
성능이 낮습니다.
사전 가지치기pre-prunning: 트리 생성을 미리 중단
트리의 최대 깊이 제한, 리프의 최대 개수 제한
분할 가능한 포인트의 최소 개수 지정
사후 가지치기post-prunning: 트리를 만든 후 노드를 삭제하거나 병합합니다.
DecisionTreeRegressor, DecisionTreeClassifier는 사전 가지치기만 지원합니다.
30
복잡도 제어 효과
31
결정트리 생성 및 훈련
과대 적합
트리의 최대 깊이 4로 제한
모든 리프노드가
순수노드
결정 트리 분석
32
알고리즘 이해 쉽고 비전문가에게
설명하기 좋습니다. 하지만 깊이가
조금만 깊어도 매우 장황해집니다.
많은 데이터가 흐르는 경로를
집중해서 확인하는 것이 좋습니다.
특성 중요도feature importance
0(예측에 사용되지 않음)과 1(완벽하게 예측) 사이의 값으로 전체 합은 1입니다.
33
트리 그래프의
첫번째 노드로 활용
(악성 또는 양성의
의미인지 알 수 없음)
다른 특성과 동일한
정보를 가지고
있을 수 있음
특성과 클래스 사이의 관계
34
X[1]의 값과 출력과의 관계가 단순히 비례/반비례하지 않습니다.
결정 트리 - 회귀
sklearn.tree.DecisionTreeRegressor
훈련 데이터 범위 밖을 예측하는 외삽extrapolation이 불가능합니다.
스케일에 영향 받지 않습니다.
e.g. 컴퓨터 메모리 가격 데이터셋
35
훈련 데이터
테스트 데이터
선형회귀와 비교하기 위해
로그 스케일로 바꾸었습니다.
LinearRegression vs DecisionTreeRegressor
36
트리 복잡도에 제한이 없으므로
훈련 데이터를 완벽히 예측(가지치기 없음)
데이터 범위 밖에서는
마지막 훈련 데이터 포인트를
이용하여 예측
장단점과 매개변수
모델 복잡도 제어(사전 가지치기) 매개변수
max_depth : 트리의 최대 깊이
max_leaf_nodes : 리프 노드의 최대 개수
min_samples_leaf : 리프 노드가 되기 위한 최소 샘플 개수
min_samples_split : 노드가 분할하기 위한 최소 샘플 개수
작은 트리일 때 시각화가 좋아 설명하기 쉽습니다.
특성이 각각 처리되므로 데이터 스케일에 구애 받지 않습니다.
정규화나 표준화 같은 전처리 과정이 필요 없습니다.
이진 특성이나 연속적인 특성이 혼합되어 있어도 가능합니다.
단점: 과대적합 가능성 높아 일반화 성능이 좋지 않습니다.
37
랜덤 포레스트
38
랜덤 포레스트random forest
여러 결정 트리를 묶어 과대적합을 회피할 수 있는 앙상블 방법 중 하나입니다.
예측을 잘 하는(과대적합된) 트리들를 평균내어 과대적합을 줄입니다.
랜덤 포레스트는 트리 생성시 무작위성을 주입합니다.
트리 생성시 데이터 중 일부를 무작위로 선택합니다.
노드 분할 시 무작위로 후보 특성을 선택합니다.
sklearn.ensemble.RandomForestClassifier, RandomForestRegressor의
n_estimators 매개변수로 트리의 개수를 지정(기본값 10)합니다.
모든 트리의 예측을 만든 후, 회귀는 각 예측 값의 평균, 분류는 예측
확률의 평균(약한 투표 전략)을 합니다.
39
무작위성
부트스트랩 샘플boostrap sample
n 개의 훈련 데이터에서 무작위로 추출해 n 개의 데이터셋을 만듦
중복 추출이 가능하며 하나의 부트스트랩 샘플엔 대략 1/3 정도 샘플이 누락됨
(100개 샘플 중 하나가 선택되지 않을 확률을 100번 반복 =
99
100
100
= 0.366)
[‘a’, ‘b’, ‘c’, ‘d’]  [’b’, ‘d’, ‘d’, ‘c’], [‘d’, ‘a’, ‘d’, ‘a’]
노드 분할에 사용할 후보 특성을 랜덤하게 선택(max_features 매개변수)합니다.
max_features  n_features : 모든 특성을 사용. 비슷한 트리들이 생성.
max_features  1 : 노드 분할을 무작위로 수행. 서로 많이 다르고 깊은 트리 생성.
 랜덤 포레스트의 트리가 모두 다르게 생성됨
40
랜덤 포레스트 분석
41
forest.estimators_각 결정 트리는
서로 많이 다릅니다
앙상블된 결정경계
cancer 데이터셋에 적용
42
단일 결정트리
훈련 세트: 1.0
테스트 세트: 0.937 특별히 매개변수 튜닝을 하지 않아도 좋은 성능을 냅니다.
0 이상인 특성이 많음.
가장 중요한 특성이 바뀌었음
장단점과 매개변수
장점
회귀와 분류에서 가장 널리 사용되는 알고리즘입니다.(설명하기는 어렵습니다)
뛰어난 성능을 내며 매개변수 튜닝 부담이 적고 데이터 스케일 불필요합니다.
큰 데이터셋 적용 가능, 여러 CPU 코어에 병렬화 가능(n_jobs: 기본값 1, 최대 -1)
단점
많은 트리가 생성되므로 자세한 분석이 어렵고 트리가 깊어지는 경향이 있습니다.
차원이 크고 희소한 데이터에 성능 안좋습니다(e.g. 텍스트 데이터) 선형모델
선형 모델 보다 메모리 사용량이 많고 훈련과 예측이 느립니다.
매개변수
n_estimators(트리 개수, 메모리와 훈련시간 고려), max_features(후보 특성의 개수)
max_features 기본값, 회귀일 때는 n_features, 분류일 때는 sqrt(n_features)
n_estimators가 클수록, max_features가 작을수록 과대적합을 줄여 줍니다.
사전가지치기: max_depth, max_leaf_nodes, min_samples_leaf, min_samples_split
43
그래디언트 부스팅
44
그래디언트 부스팅Gradient Boosting 회귀
결정 트리(DecisionTreeRegressor)를 기반으로 하는 또 다른 앙상블 알고리즘
회귀와 분류에 모두 사용 가능합니다.
랜덤 포레스트와는 달리 무작위성 대신 사전 가지치기를 강하게 적용합니다.
다섯 이하의 얕은 트리(약한 학습기)를 사용하여 이전 트리의 오차를 보완하도록
다음 트리 생성합니다.
회귀 : 최소제곱오차 손실함수, 분류 : 로지스틱 손실함수
경사 하강법gradient descent 사용(learning_rate 매개변수 중요, 기본값 0.1)
머신러닝 경연대회(e.g. 캐글Kaggle)에서 많이 사용됩니다.
랜덤 포레스트 보다 매개변수에 조금 더 민감하지만 조금 더 높은 성능을 냅니다.
45
GradientBoostingClassifier
46
n_estimators=100, max_depth=3
learning_rate=0.1
과대적합
트리 깊이 제한
학습률 감소
그래디언트 부스팅의 특성 중요도
47
랜덤포레스트와는 달리
일부 특성이 0이 되었습니다.
장단점과 매개변수
장점
랜덤 포레스트보다 예측 속도가 빨라야하거나 성능을 더 쥐어짜야 할 때 사용합니다.
특성 스케일 조정 필요 없고 이진, 연속적인 특성에도 사용 가능합니다.
아주 대규모일 경우 분산처리가 가능한 xgboost가 빠르고 튜닝하기도 쉽습니다.
단점
희소한 고차원 데이터에 잘 작동하지 않습니다.
매개변수에 민감, 훈련 시간이 더 걸립니다.
매개변수
n_estimators, learning_rate, max_depth(<=5)
learning_rate을 낮추면 복잡도가 낮아져 성능을 올리려면 더 많은 트리가 필요합니다.
랜덤 포레스트와는 달리 n_estimators를 크게하면 과대적합 가능성 높아집니다.
가용 메모리와 시간안에서 n_estimators를 맞추고 learning_rate으로 조절합니다. 48

More Related Content

What's hot

6.algorithm chains and piplines(epoch#2)
6.algorithm chains and piplines(epoch#2)6.algorithm chains and piplines(epoch#2)
6.algorithm chains and piplines(epoch#2)Haesun Park
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun 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
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 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
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신Haesun Park
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디Haesun Park
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networksHaesun Park
 
3.neural networks
3.neural networks3.neural networks
3.neural networksHaesun 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
 
7.woring with text data
7.woring with text data7.woring with text data
7.woring with text dataHaesun 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
 
(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
 
1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)Haesun Park
 
해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2Haesun 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
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 

What's hot (20)

6.algorithm chains and piplines(epoch#2)
6.algorithm chains and piplines(epoch#2)6.algorithm chains and piplines(epoch#2)
6.algorithm chains and piplines(epoch#2)
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
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
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 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
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networks
 
3.neural networks
3.neural networks3.neural networks
3.neural networks
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
7.woring with text data
7.woring with text data7.woring with text data
7.woring with text data
 
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)
 
(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
 
1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)
 
해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2해커에게 전해들은 머신러닝 #2
해커에게 전해들은 머신러닝 #2
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 

Similar to 2.supervised learning(epoch#2)-2

발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsKyeongUkJang
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogoodS.Good Kim
 
Learning method
Learning methodLearning method
Learning methodchs71
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)Tae Young Lee
 
(Book Summary) Classification and ensemble(book review)
(Book Summary) Classification and ensemble(book review)(Book Summary) Classification and ensemble(book review)
(Book Summary) Classification and ensemble(book review)MYEONGGYU LEE
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2jdo
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic용진 조
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가NAVER Engineering
 
Survey of activation functions
Survey of activation functionsSurvey of activation functions
Survey of activation functions창기 문
 
Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Jeonghun Yoon
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템NAVER D2
 
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
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터JEEHYUN PAIK
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석simon park
 
Machine learning linearregression
Machine learning linearregressionMachine learning linearregression
Machine learning linearregressionHaYoungChoi17
 

Similar to 2.supervised learning(epoch#2)-2 (20)

발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep models
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogood
 
Learning method
Learning methodLearning method
Learning method
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)
 
(Book Summary) Classification and ensemble(book review)
(Book Summary) Classification and ensemble(book review)(Book Summary) Classification and ensemble(book review)
(Book Summary) Classification and ensemble(book review)
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
 
DL from scratch(6)
DL from scratch(6)DL from scratch(6)
DL from scratch(6)
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가
[네이버AI해커톤]어떻게 걱정을 멈추고 베이스라인을 사랑하는 법을 배우게 되었는가
 
Survey of activation functions
Survey of activation functionsSurvey of activation functions
Survey of activation functions
 
Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템
 
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
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석
 
Machine learning linearregression
Machine learning linearregressionMachine learning linearregression
Machine learning linearregression
 

2.supervised learning(epoch#2)-2

  • 1. Introduction to Machine Learning with Python 2. Supervised Learning(2) Honedae Machine Learning Study Epoch #2 1
  • 2. 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
  • 3. 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. 선형 모델 - 분류 4
  • 5. 이진 분류binary classification 회귀와 같은 선형 방정식을 사용 𝑦 = 𝑤 0 × 𝑥 0 + 𝑤 1 × 𝑥 1 + ⋯ + 𝑤 𝑝 × 𝑥 𝑝 + 𝑏 > 0 0보다 크면 양성 클래스(+1), 0보다 작으면 음성 클래스(-1) predict_proba()는 sigmoid 함수사용, predict()는 decision_function() 사용 𝑦이 입력에 대한 결정 경계decision boundary를 나타냄 결정 경계는 직선(특성 1개), 면(특성 2개), 초평면(특성 3개)으로 표현됨 선형 모델의 알고리즘 구분 가중치와 절편이 훈련 데이터에 얼마나 잘 맞는지  비용 함수 또는 손실 함수 사용할 수 있는 규제의 방법 5
  • 6. 0-1 손실 계단 함수라 미분 불가능  최적화에 사용하기 어려움 6
  • 8. LogisticRegression, LinearSVC 대표적인 선형 분류 알고리즘 로지스틱 회귀Logistic Regression(sklearn.linear_model.LogisticRegression) 선형 서포트 벡터 머신Linear SVM(sklearn.svm.LinearSVC) 로지스틱(시그모이드sigmoid) 함수 8 𝑦 = 1 1 + 𝑒−𝑧 𝑧 = 𝑋 ⋅ 𝑤 + 𝑏 predict() : z > 0predict_proba() : 𝑦 > 0.5
  • 9. 로지스틱 회귀의 비용함수 multi_class=multinomial (크로스 엔트로피cross-entropy 손실) multi_class=ovr (로지스틱logistic 손실) 9 − 𝑖=1 𝑛 𝑦𝑙𝑜𝑔 𝑦 , 𝑦 = 𝑒 𝑧 𝑒 𝑧 − 𝑖=1 𝑛 𝑦𝑙𝑜𝑔 𝑦 + 1 − 𝑦 log 1 − 𝑦 , 𝑦 = 1 1 + 𝑒−𝑧 , 𝑦 = {1, 0} − 𝑖=1 𝑛 log 𝑒−𝑦 𝑤×𝑥+𝑏 + 1 , 𝑦 = {1, −1} 𝐶 ⋅ 𝐿 𝑤 + 𝑙2 𝑜𝑟 𝑙1, 𝐶 = 1 𝛼 𝛼 ↑ 𝐶 ↓ → 규제 ↑ 𝑤 ↓ 𝛼 ↓ 𝐶 ↑ → 규제 ↓ 𝑤 ↑ 텍스트의 공식과 구현 방식에는 종종 차이가 있음 소프트맥스softmax 함수 규제 강도
  • 10. LinearSVC vs LogisticRegression 10 L2 규제(penalty=’l2’ 기본값) loss=‘squared_hinge’ (기본값) 결정 경계 forge 데이터셋 클래스 1 클래스 0
  • 11. LinearSVC’s C param 11 과소적합 과대적합 C=1.0 기본값 𝐶 ↓ → 규제 ↑ 𝑤 ↓ (다수의 포인트에 맞춤) 𝐶 ↑ → 규제 ↓ 𝑤 ↑ (개개의 포인트에 맞춤) 규제 강도
  • 12. LogisticRegression + cancer 12 과소적합(규제가 너무 큼) C=1.0 복잡도 증가, 성능향상 복잡도를 기본값 보다 더 낮추면 30개 특성
  • 15. 다중 클래스 분류 로지스틱 회귀를 제외하고 대부분 선형 분류 모델은 이진 분류만을 지원 로지스틱 회귀는 소프트맥스 함수를 사용하여 다중 분류 지원 LogisticRegression(multi_class=multinomial) 대부분 모델들은 클래스마다 따로 이진 분류 모델을 만드는 일대다one-vs-rest 방식(또는 one-vs-all)을 사용하여 이진 분류 모델 중에서 가장 높은 점수의 클래스가 선택 클래스마다 가중치와 절편이 만들어짐 15 − 𝑖=1 𝑛 𝑦𝑙𝑜𝑔 𝑦 , 𝑦𝑐 = 𝑒 𝑧 𝑐 𝑘=1 𝐾 𝑒 𝑧 𝑘 𝑧 𝑘 = 𝑤 𝑘 0 × 𝑥 0 + 𝑤 𝑘 1 × 𝑥 1 + ⋯ + 𝑤 𝑘 𝑝 × 𝑥 𝑝 + 𝑏 𝑘
  • 16. make_blobs dataset 16 3개의 클래스를 가진 2차원 데이터셋
  • 17. LinearSVC 다중 분류 17 세 개의 클래스 두 개의 특성 클래스 0 클래스 1클래스 2
  • 18. 다중 분류 결정 경계 18
  • 19. 장단점과 매개변수 규제 매개변수: 회귀 모델은 alpha, 분류 모델은 C 보통 규제는 로그 스케일로 조절 (0.1, 1, 10, 100) 일부 특성이 중요하거나 해석을 쉽게하려면 L1 규제, 아니면 기본값 L2 선형 모델의 장점 학습속도와 예측속도 빠름(벡터 곱셈) 비교적 예측 과정을 이해하기 쉬움(계수 분석이 어려울 수 있음) 큰 데이터셋과 희박 데이터셋에 적합 샘플 수(n)보다 특성(m)이 많을 때. ex) m = 10,000, n = 1,000 특성이 부족할 때는 선형 모델 보다는 커널 SVM 등이 효과적 수십, 수백만개라면 LogisticRegression 에 solver=’sag’ 옵션을 사용(L2만 가능) 더 큰 데이터셋에서는 SGDRegressor, SGDClassifier 19 𝛼 ↑ 𝐶 ↓ → 규제 ↑ 𝑤 ↓ 𝛼 ↓ 𝐶 ↑ → 규제 ↓ 𝑤 ↑
  • 20. 메서드 연결method chaining 20 객체(self) 반환 logreg = LogisticRegression() logreg = logreg.fit(X_train, y_train) 예측 결과 반환 학습한 로지스틱 회귀 모델을 다음 코드에서 사용할 수 없음
  • 22. 나이브 베이즈Navie Bayes 분류기 선형 분류기보다 훈련 속도가 빠르지만 일반화 성능이 조금 떨어집니다. 특성마다 클래스별 통계를 취합해 파라미터를 학습합니다. GaussianNB : 연속적인 데이터 BernoulliNB : 이진 데이터, 텍스트 데이터 MultinomialNB : 정수 카운트 데이터, 텍스트 데이터 22
  • 23. BernoulliNB 23 MultinomialNB : 클래스별 특성의 평균 GaussianNB : 클래스별 특성의 표준편차와 평균
  • 24. 장단점과 매개변수 alpha 매개변수로 모델 복잡도 조절합니다. 가상의 양수 데이터를 alpha 개수만큼 추가하여 통계를 완만하게 만듦니다. alpha가 크면 모델의 복잡도가 낮아지지만 성능의 변화는 크지 않습니다. GaussianNB는 고차원 데이터셋에 BernoulliNB, MultinomialNB는 텍스트와 같은 희소 데이터를 카운트하는데 사용합니다. MultinomialNB는 0이 아닌 특성이 많은 경우 BernoulliNB보다 성능이 좋습니다. 훈련과 예측 속도가 빠르고 과정을 이해하기 쉽습니다. 희소한 고차원 데이터셋에 잘 작동하고 매개변수에 민감하지 않습니다. 24
  • 26. 결정 트리decision tree 분류와 회귀에 널리 사용됩니다. 결정에 다다르기 위해 예/아니오 질문을 이어나가면서 학습하는 이진 트리입니다. 26 특성 (i.e. 얼마나 많이 먹나요?) 노드node 리프leaf 노드 엣지edge 루트root 노드
  • 27. 결정 트리 만들기 sklearn.datasets.make_moons(): two_moons 데이터셋 정답에 가장 빨리 도달하는 yes/no 질문(테스트)을 학습합니다. 연속적인 데이터셋에서는 “특성 i 가 a 보다 큰가?”와 같은 형태가 됩니다. 27
  • 28. 결정 트리 훈련 28 x[1] x[0] 클래스 0 클래스 1 * 분할 기준 - 회귀 문제: criterion=‘mse’ - 분류 문제: criterion=‘gini’ or ‘entropy’
  • 29. 결정 트리 예측 하나의 특성을 사용하여 데이터를 둘로 나누므로 항상 축에 평행하게 분리됩니다. 학습은 순수노드만 남을 때까지 분할이 반복되고 새로운 데이터 포인트가 속한 분할 영역이 예측(다수의 타깃 혹은 노드의 평균값)이 됩니다. 29순수 노드: 하나의 타깃만 가짐
  • 30. 복잡도 제어 모든 리프가 순수 노드가 될 때 까지 진행하면 복잡해지고 과대적합됩니다. 순수 노드로만 이루어진 트리는 훈련 데이터를 100% 정확히 맞추므로 일반화 성능이 낮습니다. 사전 가지치기pre-prunning: 트리 생성을 미리 중단 트리의 최대 깊이 제한, 리프의 최대 개수 제한 분할 가능한 포인트의 최소 개수 지정 사후 가지치기post-prunning: 트리를 만든 후 노드를 삭제하거나 병합합니다. DecisionTreeRegressor, DecisionTreeClassifier는 사전 가지치기만 지원합니다. 30
  • 31. 복잡도 제어 효과 31 결정트리 생성 및 훈련 과대 적합 트리의 최대 깊이 4로 제한 모든 리프노드가 순수노드
  • 32. 결정 트리 분석 32 알고리즘 이해 쉽고 비전문가에게 설명하기 좋습니다. 하지만 깊이가 조금만 깊어도 매우 장황해집니다. 많은 데이터가 흐르는 경로를 집중해서 확인하는 것이 좋습니다.
  • 33. 특성 중요도feature importance 0(예측에 사용되지 않음)과 1(완벽하게 예측) 사이의 값으로 전체 합은 1입니다. 33 트리 그래프의 첫번째 노드로 활용 (악성 또는 양성의 의미인지 알 수 없음) 다른 특성과 동일한 정보를 가지고 있을 수 있음
  • 34. 특성과 클래스 사이의 관계 34 X[1]의 값과 출력과의 관계가 단순히 비례/반비례하지 않습니다.
  • 35. 결정 트리 - 회귀 sklearn.tree.DecisionTreeRegressor 훈련 데이터 범위 밖을 예측하는 외삽extrapolation이 불가능합니다. 스케일에 영향 받지 않습니다. e.g. 컴퓨터 메모리 가격 데이터셋 35 훈련 데이터 테스트 데이터 선형회귀와 비교하기 위해 로그 스케일로 바꾸었습니다.
  • 36. LinearRegression vs DecisionTreeRegressor 36 트리 복잡도에 제한이 없으므로 훈련 데이터를 완벽히 예측(가지치기 없음) 데이터 범위 밖에서는 마지막 훈련 데이터 포인트를 이용하여 예측
  • 37. 장단점과 매개변수 모델 복잡도 제어(사전 가지치기) 매개변수 max_depth : 트리의 최대 깊이 max_leaf_nodes : 리프 노드의 최대 개수 min_samples_leaf : 리프 노드가 되기 위한 최소 샘플 개수 min_samples_split : 노드가 분할하기 위한 최소 샘플 개수 작은 트리일 때 시각화가 좋아 설명하기 쉽습니다. 특성이 각각 처리되므로 데이터 스케일에 구애 받지 않습니다. 정규화나 표준화 같은 전처리 과정이 필요 없습니다. 이진 특성이나 연속적인 특성이 혼합되어 있어도 가능합니다. 단점: 과대적합 가능성 높아 일반화 성능이 좋지 않습니다. 37
  • 39. 랜덤 포레스트random forest 여러 결정 트리를 묶어 과대적합을 회피할 수 있는 앙상블 방법 중 하나입니다. 예측을 잘 하는(과대적합된) 트리들를 평균내어 과대적합을 줄입니다. 랜덤 포레스트는 트리 생성시 무작위성을 주입합니다. 트리 생성시 데이터 중 일부를 무작위로 선택합니다. 노드 분할 시 무작위로 후보 특성을 선택합니다. sklearn.ensemble.RandomForestClassifier, RandomForestRegressor의 n_estimators 매개변수로 트리의 개수를 지정(기본값 10)합니다. 모든 트리의 예측을 만든 후, 회귀는 각 예측 값의 평균, 분류는 예측 확률의 평균(약한 투표 전략)을 합니다. 39
  • 40. 무작위성 부트스트랩 샘플boostrap sample n 개의 훈련 데이터에서 무작위로 추출해 n 개의 데이터셋을 만듦 중복 추출이 가능하며 하나의 부트스트랩 샘플엔 대략 1/3 정도 샘플이 누락됨 (100개 샘플 중 하나가 선택되지 않을 확률을 100번 반복 = 99 100 100 = 0.366) [‘a’, ‘b’, ‘c’, ‘d’]  [’b’, ‘d’, ‘d’, ‘c’], [‘d’, ‘a’, ‘d’, ‘a’] 노드 분할에 사용할 후보 특성을 랜덤하게 선택(max_features 매개변수)합니다. max_features  n_features : 모든 특성을 사용. 비슷한 트리들이 생성. max_features  1 : 노드 분할을 무작위로 수행. 서로 많이 다르고 깊은 트리 생성.  랜덤 포레스트의 트리가 모두 다르게 생성됨 40
  • 41. 랜덤 포레스트 분석 41 forest.estimators_각 결정 트리는 서로 많이 다릅니다 앙상블된 결정경계
  • 42. cancer 데이터셋에 적용 42 단일 결정트리 훈련 세트: 1.0 테스트 세트: 0.937 특별히 매개변수 튜닝을 하지 않아도 좋은 성능을 냅니다. 0 이상인 특성이 많음. 가장 중요한 특성이 바뀌었음
  • 43. 장단점과 매개변수 장점 회귀와 분류에서 가장 널리 사용되는 알고리즘입니다.(설명하기는 어렵습니다) 뛰어난 성능을 내며 매개변수 튜닝 부담이 적고 데이터 스케일 불필요합니다. 큰 데이터셋 적용 가능, 여러 CPU 코어에 병렬화 가능(n_jobs: 기본값 1, 최대 -1) 단점 많은 트리가 생성되므로 자세한 분석이 어렵고 트리가 깊어지는 경향이 있습니다. 차원이 크고 희소한 데이터에 성능 안좋습니다(e.g. 텍스트 데이터) 선형모델 선형 모델 보다 메모리 사용량이 많고 훈련과 예측이 느립니다. 매개변수 n_estimators(트리 개수, 메모리와 훈련시간 고려), max_features(후보 특성의 개수) max_features 기본값, 회귀일 때는 n_features, 분류일 때는 sqrt(n_features) n_estimators가 클수록, max_features가 작을수록 과대적합을 줄여 줍니다. 사전가지치기: max_depth, max_leaf_nodes, min_samples_leaf, min_samples_split 43
  • 45. 그래디언트 부스팅Gradient Boosting 회귀 결정 트리(DecisionTreeRegressor)를 기반으로 하는 또 다른 앙상블 알고리즘 회귀와 분류에 모두 사용 가능합니다. 랜덤 포레스트와는 달리 무작위성 대신 사전 가지치기를 강하게 적용합니다. 다섯 이하의 얕은 트리(약한 학습기)를 사용하여 이전 트리의 오차를 보완하도록 다음 트리 생성합니다. 회귀 : 최소제곱오차 손실함수, 분류 : 로지스틱 손실함수 경사 하강법gradient descent 사용(learning_rate 매개변수 중요, 기본값 0.1) 머신러닝 경연대회(e.g. 캐글Kaggle)에서 많이 사용됩니다. 랜덤 포레스트 보다 매개변수에 조금 더 민감하지만 조금 더 높은 성능을 냅니다. 45
  • 47. 그래디언트 부스팅의 특성 중요도 47 랜덤포레스트와는 달리 일부 특성이 0이 되었습니다.
  • 48. 장단점과 매개변수 장점 랜덤 포레스트보다 예측 속도가 빨라야하거나 성능을 더 쥐어짜야 할 때 사용합니다. 특성 스케일 조정 필요 없고 이진, 연속적인 특성에도 사용 가능합니다. 아주 대규모일 경우 분산처리가 가능한 xgboost가 빠르고 튜닝하기도 쉽습니다. 단점 희소한 고차원 데이터에 잘 작동하지 않습니다. 매개변수에 민감, 훈련 시간이 더 걸립니다. 매개변수 n_estimators, learning_rate, max_depth(<=5) learning_rate을 낮추면 복잡도가 낮아져 성능을 올리려면 더 많은 트리가 필요합니다. 랜덤 포레스트와는 달리 n_estimators를 크게하면 과대적합 가능성 높아집니다. 가용 메모리와 시간안에서 n_estimators를 맞추고 learning_rate으로 조절합니다. 48

Editor's Notes

  1. 이 코스에서 다룰 내용은 이 책에 크게 의존하고 있습니다. 이 수업을 듣기 위해 꼭 이 책이 필요한 것은 아니지만 수업에 맞추어 병행해서 본다면 도움이 될 것 입니다.
  2. 로지스틱 회귀의 경우 선형 회귀와 마찬가지로 보통 1, 0 으로 양성/음성 클래스를 표현하지만 로지스틱 회귀의 비용함수의 계산을 간단하게 만들려고 양성/음성 클래스를 1/-1로 바꿉니다.
  3. http://fa.bianp.net/blog/2014/surrogate-loss-functions-in-machine-learning/
  4. huber loss: SGDClassifier
  5. 이름이 로지스틱 회귀이지만 분류 알고리즘입니다.
  6. -log(e^-x+1)  if x < 0, x – log(e^x+1) 라쏘의 알파가 증가할 때 가중치 줄어들지만 로지스틱 회귀의 C 는 증가되면 규제가 풀어져 가중치가 증가한다. http://stats.stackexchange.com/questions/235514/how-do-i-get-cost-function-of-logistic-regression-in-scikit-learn-from-log-likel http://www.holehouse.org/mlclass/12_Support_Vector_Machines.html
  7. 두 특성에 대해 각각 1000개의 좌표를 만들어 클래스를 구분한 다음 matplotlib 의 contour 함수로 경계를 나타냄 직선이 결정 경계, 경계선 위쪽이 클래스 1, 경계선 아래쪽이 클래스 0 새로운 데이터가 어디에 위치하느냐에 따라 클래스가 결정됨.
  8. 높은 C → less 규제, 최대 분류를 위해 노력합니다. 낮은 C → more 규제, 가중치 w 를 0 으로 만듭니다. https://martin-thoma.com/svm-with-sklearn/, http://scikit-learn.org/stable/modules/svm.html C-Support Vector Classification(CLASSIFICATION SVM TYPE 1, http://www.statsoft.com/Textbook/Support-Vector-Machines) rbf(기본값), poly 등의 커널을 사용해 비선형 분류를 할 수 있다. 회귀를 위한 LinearSVR, SVR 클래스도 있다.
  9. mean perimeter : 평균 둘레 C 값에 따라 페리미터의 부호가 바뀜. 절대값이 의미 있는 경우. texture_error 는 악성 종양과 관련이 있다. 선형 모델은 개개의 매개변수를 분석해야 한다.
  10. 또는 one-vs-all 라고도 부름 http://stats.stackexchange.com/questions/31714/logistic-regression-for-multiclass
  11. 그림 중앙의 삼각형 영역은 어떻게 분류될까?
  12. 중앙에서 붉은 선형 모델에 가까운 삼각형 부분이 클래스 0으로 분류됨 그래프 영역에 포함된 이차원 데이터셋을 잘게 만들어 predict() 메소드로 결정경계를 만듦
  13. Stochastic Average Gradient Descent(확률적 평균 경사 하강법)
  14. 트리 시각화: 알고리즘 예측 이해 쉬움, 비전문가에게 설명하기 좋음 깊이가 조금만 깊어도 매우 장황해짐 많은 데이터가 흐르는 경로를 집중해서 확인
  15. 선형 모델의 계수 시각화와 비슷 worst_radius 가 가장 중요한 특성: 트리 그래프의 첫번째 노드로 활용 feature_importance_ 가 낮아도 다른 특성이 대신 사용되고 있기 때문일 수 있음 worst radius가 양성/악성을 의미하는지는 알 수 없음그 이유는 다음 장에
  16. x[1]만 사용되었지만 x[1]이 크다는 것이 양성 클래스와 음성 클래스를 의미하는 것이 아님
  17. 모든 트리 기반 모델의 단점
  18. 부트스트랩 샘플 때문에 트리마다 훈련 데이터 포인트가 다름 트리의 개수가 수백 수천개가 되면 매우 부드러운 결정 경계가 만들어 짐
  19. 기본값으로 100개 트리 사용, 아주 좋은 성능 발휘 단일 트리의 경우보다 훨씬 많은 특성이 0 이상의 값을 가짐 worst radius 보다 worst perimeter가 더 좋은 특성으로 판단함 무작위성은 여러 가능성을 고려하게 하므로 데이터를 보다 폭 넓게 바라봄
  20. 트리 개수는 많을 수록 좋지만 메모리와 훈련 시간이 많이 필요함 max_features 가 작으면 과대적합을 줄여줌
  21. 트리 깊이를 조정하는 것이 과대적합을 효과적으로 막았음 학습률을 감소(과소적합)했지만 성능 개선은 작음
  22. 그래디언트 부스팅은 단일 트리와 비슷하게 일부 특성이 완전히 무시될 수 있음 max_features 기본값 n_features