본문 바로가기
부트캠프(LIKELION AIS7)/수업

[AI스쿨 7기, 10주차] Ch7. Ensemble(weak learner, strong learner, bagging, random forest, out-of-bag), Ch8. 주성분분석(차원축소, 다중공선성, 공분산행렬, eigenvector, screeplot, loading plot)

by aimaimee 2023. 5. 10.

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의 각 변수가 주성분을 만들 때 기여하는 정도

댓글