sql 머신러닝 교육 2일차.

ilysm·2023년 3월 14일

이진분류를 세번하여 세가지의 클래스를 분류 할 수 있음

one vs all, one va rest
보라색이 아니다 맞다, 노란색이 아니다 맞다, 청록색이 아니다 맞다
(세가지의 모델들을 다 돌려보고 예측치가 가장 높은 것을 선택 노란색이다 아니다를 하면 아니다가 높게 나올 것임.)

one vs one - 이진분류를 세가지 만듬
초록색이다 보라색 이다, 노란색이다 보라색이다, 초록색이다 노란색이다
(초록색을 구분하는 모델을 구현하고자 한다. 두개의 분류기에서 초록색이다 라는게 높게 나왔으므로 초록색이다라고 예측할 수 있음.)

gini(불순도)

  • 불순도를 측정하는 지표 (분리가 잘 됐는지)
  • 0에 가까울 수록 해당 클래스에 섞인 다른 클래스의 양이 적음을 의미함.
  • 노드안에 들어간 개수에 따라 다른 클래스들이 섞여있다면 불순도가 높게 나타남

결정나무

하이퍼파라미터

  • 모델을 커스터마이징 하는 것 (규제하는 인자 값들을 바꿔줌)

min_samples_leaf는 5로 주어서 오른쪽과 같은 결과를 줌
max_leaf_node 너무 많으면 언더피팅 될 수도 있음
max_features 결정트리 분할에 몇개 피쳐를 사용할지

KNN

빨간 점을 구분하기 위해 주변 데이터를 살펴본다.

앙상블 (편향과 분산을 줄인 모델 구현)

  • 편향: 예측값과 정답이 떨어져 있는 정도 (학습이 덜 된 정도)
  • 분산: 입력 샘플의 작은 변동에 반응하는 정도

편향이 크다- 학습이 덜 되어 정답으로 떨어져있다
분산이 크다- 정답에 맞추는 것이아니라 트레인셋에 몰려있음 과대 적합

앙상블

  • 여러개의 분류기를 생성하여 예측을 결합하여 정확한 예측 도달
  • 보팅 배깅 부스팅

보팅

  • 보팅의 경우 서로 다른 모델 사용

하드 보팅

  • 총 4개의 분류기 모델에서 3개 모델의 예측값으로 놓은 결정을 하는것

소프트 보팅

  • 확률 평균을 구하여 가장 높은 확률 선택

배깅

  • 배깅의 경우 모두 같은 모델 사용
  • 같은 모델이지만 학습데이터를 다른 데이터로 하여 셋이 다르게 학습됨
  • 최빈 예측값을 최종 값으로 선택

배깅 장점
1. 표본의 다양성을 많이 추가하여 분산이 줄어드는 효과
(데이터들의 특성을 쪼개서 확인이 가능하므로 새로운 데이터가 들어와도 알맞은 학습 가능.)
2. 데이터를 랜덤으로 뽑아 학습하니 일반화 성능이 올라감

랜덤 포레스트

  • 결정나무의 배깅 기법

부스팅

  • 여러개의 분류기가 순차적으로 학습을 진행하여 이전 결과를 갖고 보완(앞 분류기를 기반으로 가중치를 부여하여 학습)
  • 훈련을 동시에 진행하지 못하므로 시간이 오래 걸림

에이다 부스팅

  • 하나의 모델을 훈련 시킨 후 잘 못 예측된 샘플을 보다 강조하면서 해당 모델을 다시 훈련 가중치

그래디언트 부스팅

  • 이전 예측기과 실제 값의 오차를 분석 오차에 대한 새로운 예측기를 학습시킴

스태킹

  • 배깅 방식 응용
  • 여러 예측 값을 학습 데이터로 활동하는 예측기를 학습시킴
  • 예측값을 활용하기 때문에 데이터가 많아지고 많은 경우의 수를 모델에 반영 할 수 있음.
profile
한걸음씩 배워나갑니다

0개의 댓글