스터디

[스터디] 2일차 머신러닝-지도학습

거북이07 2024. 3. 22. 16:19

오늘은 1차에 이어서 머신러닝 지도학습 분류를 이어서 스터디하도록 하겠습니다😊ㅎㅎ

 

지도 학습의 알고리즘 종류

랜덤 포레스트(Random Forest)

랜덤 포레스트(Random Forest)는 앙상블(Ensemble) 학습 방법 중 하나입니다. 이 모델은 여러 개의 결정 트리(Decison Tree)를 조합하여 더 강력한 분류 모델을 구축한 것 입니다. 랜덤 포레스트는 과적합(Overfitting)을 줄이고 예측 성능을 향상 시키는데 효과적이지만 의사결정나무를 사용했기 때문에 과적합이 일어나기는 한다.

 

한마디로 랜덤 포레스트는 기존 의사결정 나무를 앙상블 기법을 이용하여 더 강력한 모델로 구축한 것이고 의사 결정 나무보다 과적합이 줄고 예측 성능이 향상된 모델이다.

 

 

장점

  • 다양한 종류의 데이터에 대해 높은 예측 성능을 보여준다.
  • 고차원 및 대량 데이터 처리에 효과적이다.
  • 개별 트리가 독립적으로 학습되기 때문에 학습 속도가 빠르다.
  • 각 특성의 중요도를 측정할 수 있어 데이터 이해에 도움이 된다.

 

 

단점

  • 랜덤 포레스트는 트리의 개수나 깊이를 조정하지 않으면 과적합이 발생할 수 있다.
  • 여러개의 의사 결정 나무가 결합되어있어 의사 결정 나무보다 해석이 어렵다.
  • 메모리 사용 및 계산 비용이 크다.
  • 불균형 데이터셋에서 예측 성능이 저하될 수 있다.
불균형 데이터란 예를들어 성별이라고 하면 남자가 80%, 여자가 20%등으로 데이터가 한쪽으로 쏠려있는 데이터를 의미한다.

불균형 데이터를 해결하려면 샘플링 기법등을 사용할 수 있다.

 

 

피처 중요도(Feature Importances)

  • 결정 나무에서 노드를 분기할 때 해당 피처(독립변수)가 클래스를 나누는데 얼마나 영향을 미쳤는지 표기하는 척도
  • 0에 가까울수록 클래스를 구분하는데 해당 피처의 영향이 거의 없다는 것이고 1에 가까우면 영향을 많이 줬다는 의미이다.
proba9 = rf9.predict_proba(X_test)
proba9
array([[0.98      , 0.02      ],
       [0.89143299, 0.10856701],
       [0.90935484, 0.09064516],
       ...,
       [0.27720266, 0.72279734],
       [0.93933333, 0.06066667],
       [0.25336042, 0.74663958]])

 

OOB(Out-of-Bag)

OOB는 BootStrap을 통해 랜덤으로 피처를 추출하여 학습 시켰을 때 학습 데이터에 속하지 않는 데이터를 말한다.
OOB 수치가 높을수록 안 좋은 거고 낮을수록 학습이 잘 되었다고 생각하면 된다.


앙상블(Ensemble)

앙상블(Ensemble) 기법이란 여러 개의 분류기를 생성하고 생성된 분류기의 예측을 결합하여 보다 정확한 예측을 도출해내는 기법이다. 강력한 모델을 하나 사용하는 것 보다 약한 모델을 여러 개를 조합하여 더 정확한 예측에 도움을 주는 방식이다.

 

앙상블 기법 종류

1️⃣보팅(Voting)

서로 다른 알고리즘을 가진 분류기 중 투표를 통해 최종 예측 결과를 결정하는 방식이다.여기서 알고리즘에는 흔히 알고 있는 의사 결정 트리나, KNN, 로지스틱 같은걸 의미한다고 합니다. 보팅은 소포트 보팅과 하드 보팅 두가지로 나뉘는데

 

소프트 보팅(Soft Voting)

분류기의 확률을 더하고 각각 평균을 내서 확률이 제일 높은 값으로 결과값을 선정하는 방식

 

하드 보팅(Hard Voting)

다수결의 원닉을 따르는 방식으로, 각각의 분류기의 결과값 중 가장 많은 걸 따르는 방식이다.

 

 

🖥️ 예시

암일 확률을 구하고싶다고 가정한다.

머신러닝을 통해 10개의 값이 나오고 1이면 암이다 0이면 암이 아니다 라고 했을 때 1이 6개 0이 4개로 나왔을 경우 하드 보팅은 1이 6개가 나왔으니까 다수결로 암이다 라는 결과가 나오고 소프트 보팅은 이 확률들을 다 더해서 평균이 60% 정도가 나오면 암이라고 판단하는게 소프트 보팅이다.
회귀는 하드 보팅이 없다. 무조건 소프트 보팅이다.

 

 

2️⃣배깅(Bagging)

배깅은 Bootstrap aggregating의 줄임말로 주어진 데이터에 대해서 여러 개의 bootstrap 샘플 데이터를 생성하고 샘플 데이터에 대해 모델을 구축 후 이를 결합하여 최종 예측 모델을 산출하는 방법이다. 보팅과 다른점은 다 같은 알고리즘을 사용한다는 점이다.

 

출처 https://codingsmu.tistory.com/151

 

3️⃣부스팅(Boosting)

부스팅(Boosting) 오분류된 개체들에 집중해 새로운 분류 규칙을 만드는 단계를 반복하는 방법이다. 즉 약한 예측 모형들을 결합하여 강한 예측 모형을 만드는 것이 부스팅 알고리즘이다 부스팅은 경사하강법을 사용한다. 그러나 배깅보다 오버피딩의 위험이 크고 직렬적으로 학습해서 속도가 느리다는 단점이 있다.

 

한마디로 잘못 예측된 샘플에 가중치를 부여하여 이를 보완하는 앙상블 학습 기법이다.

 

https://data-analysis-science.tistory.com/61

 

4️⃣ 스태킹(Staking)

스태킹은(Staking)은 개별 모델이 예측한 데이터를 다시 meta data set으로 사용해서 학습시키는 기법이다. 하지만 스태킹은 과적합이 잘 일어나기 때문에 교차검증(Cross Validation) 방식을 도입하여 사용한다.

참조 https://data-analysis-science.tistory.com/61