본문 바로가기
ML & DL/혼자 공부하는 머신러닝+딥러닝

k_최근접 이웃 회귀

by Glory_Choi 2022. 7. 21.
반응형

지도학습 알고리즘은 크게 분류와 회귀로 나뉘어집니다.

 

  • 분류 : 샘플을 몇개의 클래스 중 하나로 분류하는 문제
  • 회귀 : 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 문제

 

k- 최근접 이웃 분류 알고리즘

  • 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다.
  • 샘플들의 클래스를 확인하여 다수 클래스를 새로운 샘플의 클래스로 예측합니다.

 

k-최근접 이웃 회귀 알고리즘

  • 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다.
  • 회귀이기 때문에 이웃한 샘플의 수치들의 평균을 구하여 타깃값을 결정한다.

numpy를 임포트 하여 np.array를 통해 넘파이 배열로 데이터를 준비합니다. 이 데이터가 어떤 형태를 띠고 있는지 산점도를 그려보면 위와 같은 산점도를 그릴수 있습니다.

사이킷런 model_selection의 train_test_split을 임포트하고 훈련 세트와 테스트 세트로 나누어줍니다.

 

1차원 배열을 넣어 세트를 나누었기때문에 reshape를 사용해여 2차원 배열로 만들어주는데 이때 2차원 배열로 만들어주는 이유는 사이킷에 사용할 훈련 세트는 2차원 배열이여야 하기 때문입니다.

 

훈련세트와 테스트 세트가 준비가 됬으므로 모델을 훈련시킵니다.

첫번째 훈련을 시킨 결과를 보면 훈련 세트의 점수가 테스트 세트의 점수보다 낮으므로 테스트 세트의 신뢰가 떨어집니다.

때문에 훈련을 시킬때 이웃의 개수를 줄여 회귀 모델을 훈련합니다.

 

과대 적합

훈련 세트에서 점수가 굉장히 좋았는데 테스트 세트에서는 점수가 굉장히 나쁘다면 모델이 훈련 세트에 과대적합 되었다고 말합니다.

 

과소 적합

훈련 세트보다  테스트 세트의 점수가 높거나 두 점수가 모두 너무 낮은 경우는 과소적합 되었다고 합니다.

 

우리는 위에서 과소 적합의 문제를 해결하였습니다.

 

 

 

전체 소스코드

 

반응형