프로그래밍/Python

[혼공머신러닝] 3장(최근접 이웃회귀, 선형회귀) 정리

Dibrary 2022. 7. 15. 09:50
반응형

안녕하세요 Dibrary입니다.

이번에는 혼자공부하는 머신러닝 책의 3 챕터, '회귀'에 대해 정리해보겠습니다.

 

회귀는 간단하게 클래스 중 하나로 분류하는 것이 아니라, 임의 숫자를 예측하는 것입니다.
두 변수 사이의 상관관계를 분석하는 방법이 회귀입니다.

 

1. k-최근접 이웃 회귀

예측하려는 샘플에 가까운 샘플 k개를 선택하는데, 샘플의 타겟은 '수치값'입니다.
간단히 예를 들자면, 이 수치값의 평균을 구하고 이를 예측 값으로 사용하는 것이 일종의 회귀 방법입니다.

 

2. 선형회귀

샘플 데이터들의 특성을 가장 잘 나타내는 직선을 구하고, 해당 선을 기준으로 예측값을 구하는 방법입니다.

 

과대적합 = 모델이 훈련에 너무 익숙해져 있는 상황입니다. 따라서, 실제 데이터가 주어지더라도 훈련과 다르면 틀리다고 판정을 해버리기 쉽상인 것이죠.

과소적합 = 모델이 훈련이 잘 안되어 있는 것이죠. 데이터가 부족하다거나 하는 이유로요. 

 


k-최근접 이웃 회귀 중에 이웃 갯수(k)에 따라 회귀 직선이 어떻게 바뀌는지를 살펴보겠습니다.

데이터는 교재에서 사용한 데이터를 사용했습니다. 

데이터 바로 밑에 train_test_split이라는 홀드아웃을 통해 train데이터와 test데이터를 구분했습니다.

 

데이터의 모양은 위와 같은데, 회귀 그래프는 어떻게 그려지는지 보겠습니다.

for문에서 n을 1, 5, 10으로 바꿔가면서 predict값이 달라지게 되고, 해당 바뀐 값을 plot으로 그려보면 아래와 같습니다.

n 값이 커질수록 직선이 좀 더 단순해지는 것을 볼 수 있습니다.

728x90
반응형