관리 메뉴

DeseoDeSeo

[Machine Learning] 일반화, 과소, 과대, knn 본문

Python

[Machine Learning] 일반화, 과소, 과대, knn

deseodeseo 2023. 8. 29. 16:34
모델의 신뢰도를 측정하고 성능을 확인하기 위한 개념들
목표 : 일반화 구간을 찾는 것  !! 
  • 과대적합 :  train학습을 너무 맞춰서 하다보니 규칙이 복잡해져서 test에 대한 성능은 떨어지는 상태

                            (test예측을 못하는  상태)

  • 과소적합: train 학습이 제대로 되지 않아서 test성능도 떨어지는 상태  (예측을 못하는 상태)
  • 일반화:  train에 대한 학습도 적당히 잘되고 test대한 성능도 어느정도 잘 나오는 상태

                        => 어떤 데이터가 들어와도 예측이 잘 됨.

 

 

KNN( K-nearest Neighbors)

 

     :   k-최근접 이웃 알고리즘 ,  k개의 최근접 이웃 알고리즘

 

  • 유사한 점이 서로 가까이에서 발견될 수 있다는 가정.
  • 분류와 회귀에 모두 사용 가능. 특정 데이터 포인트와 가장 가까운 이웃 데이터 포인트를 찾아 이웃과 동일한 클래스로 분류.
  • k값이 작을수록 모델의 복잡도가 상대적으로 증가
  • 반대로 k값이 커질수록 모델의 복잡도가 낮아짐. (= 성능이 떨어짐.)
  • 복잡도가 증가(=> 복잡하다. 과대적합)
  • k는 이웃의 수를 의미
  • 이웃의 수 값이 작으면 과대적합이 높음.
  • 적당한 이웃의 수를 찾아야함. --> 일반화!

 

 새로운 테스트 데이터 세트가 들어오면 훈련 데이터 세트와의 거리를 계산.
 metrics : 유클리디안 거리 방식. n_neighbors: 이웃의수
 오류 데이터가 결과값에 크게 영향을 미치지 않음.
 훈련 데이터 세트가 크면(특성, 샘플의 수) 예측이 느려짐.