데이터분석

[23.07.18] 머신러닝(k-최근접 이웃 회귀) - 33(2)

gmwoo 2023. 7. 18. 12:23

     <출처> 


<핵심 패키지 및 함수>

1. scikit-learn

 1) KNeighborsRegressor

   - k-최근접 이웃 회귀 모델을 만드는 사이킷런 클래스

   - n_neighbors 매개변수로 이웃의 개수를 지정 (default = 5)

 2) mean_absolute_error()

   - 회귀 모델의 평균 절댓값 오차를 계싼

   - 첫 번째 매개변수는 타깃, 두 번째 매개변수는 예측값을 전달

   - 이와 비슷한 함수로는 평균제곱오차(MSE) mean_squared_error()가 있음


<내용>

1. 분류 vs 회귀

  1) 분류

   - 미리 정의된, 여러 클래스 레이블 중 하나를 예측

   - 이진 분류와 다중 분류로 구분

   - ex) 이메일 중 스팸을 분류(이진 분류), 붓꽃 데이터(다중 분류)

 2) 회귀

   - 연속적인 값(실수)을 예측

   - ex) 어떤 사람의 교육수준, 나이, 주거지 등의 데이터를 바탕으로 연간 소득 예측 등

 

2. k-최근접 이웃 회귀

 1) 개념

   - 내 주변의 클래스를 바탕으로 나의 클래스를 분류하는 것과 달리, 내 주변의 값의 평균을 내어 나의 값을 예측

 2) 결정계수(R^2)

   -  '분류'에서는 정확도를 가지고 정답을 맞힌 개수의 비율로 나타냈지만, '회귀'는 예측이므로 정확한 수치로 나타내기에 어려움이 있음

   - 1에 가까울수록 좋고, 0에 가깝다면 성능이 나쁜 모델

   - 결정계수 식

결정계수 식

   - 3.1 예제 (회귀 - 결정계수 score)

from sklearn.neighbors import KNeighborsRegressor

knr = KNeighborsRegressor()
# k-최근접 이웃 회귀 모델을 훈련합니다
knr.fit(train_input, train_target)

knr.score(test_input, test_target)
# 출력 : 0.992809406101064

 

 3) 과대적합 vs 과소적합

   - 과대적합(overfitting): 너무 복잡한 모델을 만들어 훈련 세트에너무 가깝게 맞춰져서 새로운 데이터에 일반화 되기 어려운 경우

   - 과소적합(underfitting): 너무 간단한 모델을 만들어 데이터의 다양성을 잡아내지 못하는 경우

반응형