[파이썬 머신러닝 가이드] 회귀 - 다항 회귀와 과(대)적합/과소적합 이해

다항 회귀 이해

다항 회귀란,

회귀가 독립변수의 단항식이 아닌 2차, 3차 방정식과 같은 다항식으로 표현되는 것을 다항(polynomial) 회귀라 함,

**** 다항 회귀는 선형 회귀임!!

회귀에서 선형 회귀 / 비선형 회귀를 나누는 기준은 회귀 계수w 가 선형/비선형인지에 따른 것이지 독립변수 x의 선형/비선형 여부와는 무관함,

위 식에서 새로운 변수인 Z를 z=[x1,x2, x1x2, x1제곱, x2제곱]이라 한다면 y=w0+w1z1+w2z2+w3z3+w4z5+w5z5와 같이 표현할 수 있기에 여전히 선형 회귀.

 

사이킷런에서,

비선형 함수를 선형 모델에 적용시키는 방법으로 구현

PolynomialFeatures 클래스를 통해 피처를 Polynomial(다항식) 피처로 변환함.

ex) PolynomialFeatures(degree=2)하면 2차 다항값 [1, x1, x2, x1제곱, x1x2, x2제곱]으로 변환함.

but, 피처 변환과 선형 회귀 적용을 각각 별도로 하는 것보다는 사이킷런의 pipeline객체를 이용해 한 번에 다항 회귀를 구현하는 것이 코드를 더 명료하게 작성하는 방법.

 

다항 회귀를 이용한 과소적합 및 과적합 이해

Degree 1 → 과소적합, 고편향성

Degree 4 → MSE 가장 작고, 가장 뛰어난 예측 성능 보이고 있음

Degree 15 → 과적합. 고분산성

데이터 세트의 변동 잡음 값까지 지나치게 반영한 결과, 예측 곡선이 학습 데이터 세트만 정확히 예측하고, 테스트 값의 실제 곡선과는 와전히 다른 예측곡선.

MSE 아주 높게 나옴.

 

편향-분산 트레이드 오프

전 게시물의 과녁 그래프 참고.

일반적으로 편향과 분산은 한쪽이 높으면 한쪽이 낮아지는 경향이 있음.

→ 편향이 높으면 분산은 낮아지고(중심에서 떨어져 있는데, 특정 부분에 집중돼 있음) - 편향이 너무 높으면 전체 오류가 높음.

분산이 높으면 편향이 낮아짐.(중심에는 모여있는데, 데이터들끼리 떨어져있음)

 

전체 오류가 가장 낮아지는 골디락스 지점에서 모델을 구축하는 것이 가장 효율적!