K-MOOC '실습으로 배우는 머신러닝' 김영훈 교수님
Ch7. Ensemble(weak learner, strong learner, bagging, random forest, out-of-bag), Ch8. 주성분분석(차원축소, 다중공선성, 공분산행렬, eigenvector, screeplot, loading plot)
Ch7. Ensemble
집단 지성 : 많은 경우 무작위로 고른 사람들에게 질문을 하고 대답을 모았을 때, 모은 답이 한 명의 전문가의 답보다 좋은 경우들이 있다.
- 일련의 분류나 회귀 모데로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측 성능을 얻을 수 있음 : 앙상블 학습(Ensemble Learning)
- 일반적으로 머신러닝 기법들을 Ensemble 시켜주면 성능이 향상되는 효과가 있음
- Random Forest는 Decision Tree의 Ensemble을 의미, Robust, 좋은 예측 성능
- 투표 기반 분류기 : majority vote
Weak Learner & Strong Learner
- 다수결 투표 분류기는 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다도 정확도가 높을 경우가 많다.
- 각 분류기가 약한 학습기(Weak Learner)이어도 충분하게 많고 다양하다면 앙상블은 강한 학습기(Strong Learner)가 될 수 있다.
- 모든 분류기가 완벽하게 독립적이고, 오차에 상관관계가 없다는 가정이 있어야 한다.
- 이런 가정이 맞지 않은 경우가 많고, 분류기들이 같은 종류의 오차를 만들기 쉬워서 실제 앙상블 정확도는 이론 정확도에 비해 낮아진다.
- 다양한 머신러닝 방법에 손쉽게 적용이 가능하다.
다양한 분류기
- 각기 다른 훈련 알고리즘을 사용
- Training 데이터의 subset을 무작위로 구성하여 분류기를 다르게 학습
- Bagging : Bootstrap Aggregating : Training 데이터에서 중복을 허용하여 샘플링하는 방식
- random forest == bagged tree
- Pasting : 중복을 허용하지 않고 샘플링
Out-of-Bag 평가
배깅을 이용하면 어떤 샘플은 여러 번 샘플링되고, 어떤 것은 전혀 선택되지 않을 수 있다.
- m번 반복되면, e^-1=0.368로 수렴. -> 한번도 뽑히지 않을 확률 거의 37%
Ch8. Principal Component Analysis
- 지도학습
- 비지도 학습 : 차원축소(PCA), 군집화
차원축소
자료에 중복된 정보가 많을 경우, 자료가 갖는 차원보다 더 작은 수의 차원으로도 자료에 내재한 정보를 설명할 수 있을 것이다.
주성분분석 Principal Component Analysis
각각의 성분은 다른 성분과는 상관이 없고, 이후 회귀 분석과 같은 종속관계 분석을 할 때 다중공선성(multicollineartiy)을 없애는 이점을 준다.
- MNIST 데이터는 Matrix, Array, Tensor들로 구성이 되어 있다.
- 이미지 파일은 28x28 구조로 고차원의 데이터이다
- 이 고차원을 차원축소해서 분포를 살펴보거나 할 수 있다.
PCA 원리
런닝머신과 수영 점수 예제
- 산점도에서 하나의 차원(체력)이 수영점수와 런닝머신 점수에 내재하는 정보의 대부분을 갖고 있다.
- 분산을 크게 하는 수영점수와 런닝머신 점수의 선형결합을 첫 주요한 성분으로 얻을 수 있다.
- 선형결합은 2차원의 공간에 있는 점들을 하나의 축 상으로 투영하는 것의 의미한다.
수식
고차원 데이터의 차원축소 원리
선형변환 행렬 이용
- Xnp : 가지고 있는 기본 데이터
- Wpk : PC축. [p]가 K개가 있다.
Wpk를 어떻게 찾는가?
공분산 행렬(covariance matrix
- 대칭행렬
- eigenvector 분산이 가장 큰 걸 표현하게 되는 벡터
Step1. 데이터 정규화
각 변수 값들의 평균 = 0 으로 만들어준 다음, 그 바탕으로 새로운 축을 찾아야 한다.
Step2. 최적화 문제 정의
데이터 X를 새로운 축 w에 사영(project)시킨 Z의 분산을 최대화하는 w를 찾는 것이 목표
Step3. 최적해 도출
Lagrangian multiplier를 사용하여 제약식을 목적식에 추가한 새 목적식 생성
새 목적식을 미분하여 기울기가 0이 되는 점에서 최적해 발생
Step4. 고유벡터(eigenvector)들을 고유값(eigenvalue) 기준으로 내림차순 정렬
Step5. 변수추출을 통한 데이터 변환 : z1(PC1) = w1^TX, z2(PC2) = w2^TX
Step6. 추출된 변수 중 일부만을 사용하여 데이터 역변환 : X' = w(w^TX)
Plot
- Scree Plot
- Elbow 포인트를 기준으로 몇 차원까지 설정할 것인지 결정
- Loading Plot
- 기존 데이터 X의 각 변수가 주성분을 만들 때 기여하는 정도
댓글