- 분류하고자 하는 새로운 데이터와 가장 가까운 k개의 학습데이터를 클래스 분류
- 주로 속한 클래스로 ! : majoritiy voting
- '가까움'은 데이터들의 입력변수를 이용해 결정
가까움의 정의
- 유클리디안 : 가장 일반적임 (점-점)제곱의 합
- 마할라노비스 : 분산값으로 나눠줘서 scale조정
- 코사인 유사도 : (각의 값)
가까움의 정의(연속값)
- 민코프스키 (Lp)거리 - 시그마 |Xi-Yi|^p
- p=1일경우 맨하튼 distance
- p=2일경우 유클리디안
- p=무한대일경우, x-y값
가까움의 정의(이산값)
- 해밍거리 : 서로 다른 성분의 수
- issues
: scale이 다른 겨우, 필요에 따라 scaling
: 고차원의 경우 차원의 저주로 계산 무ㅢ미
: 차원 축소등의 방법을 사용해야함
k값 결정
- k값은 새로운 데이터 분류 위한 학습데이터의 수 (보통 홀수)
- 보통, validation set의 error통해 결정 (hyperparameter)
- 거리근접도 활용할 때도 있음
k값의 trade-off
- 지나치게 작은 k값은 overfitting
- 지나치게 큰 k값은 underfitting
k근접 이웃 회귀
- 연속값 예측하는 회귀분석 진행할 경우, 근접한 데이터의 값들을 평균으로 사용
- 이때, 거리에 반비례하는 가중치를 이용한 가중평균 방법또한 널리사용
장점
- 단순하고 직관적임
- 확률 분포 등 특별한 과정 불필요
- 복잡한 형태의 데이터에서 잘 작동
단점
- 테스트 데이터마다 거리 계산이 필요하여 분류 속도가 느림 : lazy learner
- Scaling, distance measure등 사용자 선택 필요
앙상블
- 여러 가설의 집합을 선택하고, 그들의 예측결과를 결합
- 분류오차를 감소 시킬수 있음
- 서로 다른 학습데이터를 사용
- 서로 다른 학습 알고리즘을 사용
- 서로 다른 분류기로부터 발생한 결과를 조합 - 독립적 (majority voting, weighted voting)
- 어떤 하나의 알고리즘도 모든경우에 좋을 수 없음.
- 여러 독립적이고 다양한 결과를 조합해, 무작위 오차들이 상쇄돼 좋은 결과!!!
ex) 1:100 청중평가단의 vote 평균~!
Homogeneous 앙상블
- 한종류의 알고리즘, 학습데이터 다양화
- 학습데이터의 변형에는 여러가지
1) Bagging: Resample Trainding data (다른 종류의 입력 변수)
2) Boosting : Reweight training data (같은 알고리즘이지만 서로 다른 모수 선택)
Bagging
- bootstrap aggregation : 학습데이터로부터 n개의 쌤블을 복원 추출
- unstable learner 들의 분산을 감소시킴으로 인하여 전체적인 오차를 감소
Boosting
- weeklearner(정확도 >무작위) 의 집합을 활용해 stronglearner(원하는 수준의 정확도) 만들기
- 샘플링 대신, 데이터들에 가중치 수정
- 매 iteration마다 새로운 가설이 해당 가중치활용해 학습
- 현재 가설에서 오분류된 데이터가 다음 가설에선 많이 바녕될 수 있도록!
- 최종 분류기는 weak classifier 들의 weighted vote
Adaptive Boosting
- 서로 다른 데이터의 분포
- 동일한 가중치로 시작해, 학습단계동안 오분류 데이터 가중치 증가, 정분류 데이터 가중치 감소
=> 이전단계에서 제대로 분류하지 못한 '어려운'데이터들에 집중!!!!
- Weighted Voting
- 좋은 weak classifier가 높은 가중치 부여받음
- 반복적으로 weak classifier추가 ! => 조합된 분류기의 성능을 지속적으로 향상
랜덤포레스트 개념
- 의사결정나무의 bagging!!
- 특정개수의 tree조합. 다만, pruning을 하지 않는다는 특징 있음!!
- 100개 있으면 50개 중복뽑아서 하나 만들고, 그다음 50개 또 뽑ㄱ고 +++ 해서 모델 만든거 조합!
랜덤포레스트 특징
- Increasing m
: Decision tree 들 간의 correlation 증가 (BAD)
: 각 tree의 정확도 증가 (GOOD)
- Tuning set 이용해 적절한 m결정가능
- Random forest는
: 빠른 속도
: 많은 수의 feature 처리 가능
: Over fitting방지
: 실제 문제에서 잘 작동 => 데이터 사이즈가 수천단위일때 RF제일 먼저~!~!~!~!~!!~!~!~
ex) 넷플릭스 추천시스템 +++