프로그래밍/인공지능

[혼공머신] Chapter3-1 k-최근접 이웃 회귀

도치! 2025. 1. 17. 01:11

지도 학습 알고리즘

1. 분류 : 샘플을 몇 개의 클래스 중 하나로 분류

2. 회귀 : 임의의 어떤 숫자를 예측

 

k-최근접 이웃 회귀

예측하려는 샘플에 가장 가까운 샘플 k개의 수치를 보고

그 수치의 평균을 통해 타깃을 예측하는 방법이다.

 

농어의 데이터를 입력하고, 산점도를 측정했다.

농어가 커질수록 산점도는 늘어나도록 생겼다.

사이킷 런을 이용하여 훈련 세트와 데이터 세트를 나누고,

2차원 배열을 필요로 하는 사이킷 런이기에 reshape() 메서드를 이용한다.

 

데이터.reshape(2,2)

[1,2,3,4] [[1,2]
 [3,4]]

행과 열에 맞춰서 바뀌게 된다.

이때 원소의 개수가 맞지 않으면 에러가 발생한다.

 

메소드를 이용하여 데이터를 1차원에서 2차원으로 바꾼다.

이때. -1은 열을 1로 하는 숫자를 자동으로 이용하라는 의미이다.

 

KNeighborsRegressor

k-최근접 이웃 회귀 알고리즘으로 객체를 생성하고 fit() 메서드로 회귀 모델을 훈련하였다.

 

결정계수(R²) : 1- ((타깃-예측)² 의 합 / (타깃-평균)² 의 합) 으로서

앞으로 정확도와 비슷한 개념이다

타깃이 평균에 가까우면 0으로 가고, 예측에 가까우면 1로서 나오게 된다.


mean_absolute_error

:타깃과 예측의 절댓값 오차를 평균하여 반환한다.

이를 이용하면 어느 정도 예측이 벗어났는지 가늠하기 좋다

19프로정도 타깃값과 다르다.


과대적합 : 훈련 세트에서 점수가 좋았는데, 테스테 세트에서는 점수가 나쁘다.

과소적합 : 훈련 세트보다 테스트 세트의 점수가 높거나 두 점수가 모두 너무 낮다.

모델이 너무 단순하여 훈련 세트에 적절히 훈련되지 않는 경우

이 모델은 과소적합이 나왔다. 

이를 해결하는 방법은 모델을 조금 더 복잡하게 만들면 된다.

보통의 기본 k값은 5 이지만, 이를 3으로 바꿈으로서 국지적인 패턴에 민감해져 R²(결정계수)의 값이 높아졌다.

이를 통해 과소적합 문제를 해결했다.


확인문제2