이론
다항식 회귀는 선형 회귀의 특수한 경우입니다. 기능 선택 방법에 대한 주요 아이디어 변수가 2 개인 다변량 회귀 분석 : x1
및 x2
. 선형 회귀는 다음과 같습니다.y = a1 * x1 + a2 * x2.
이제 다항식 회귀 분석을 원합니다 (2도 다항식을 만들어 봅시다). 우리는 몇 가지 추가 기능을 만드는 것 x1*x2
, x1^2
하고 x2^2
. 그래서 우리는 당신의 '선형 회귀'를 얻을 것입니다 :
y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2
이것은 다차원 의 정도가 증가함에 따라 새로운 기능의 수가 선형보다 훨씬 빠르게 증가하기 때문에 차원 의 중요한 개념 저주를 잘 보여줍니다 . 여기서이 개념에 대해 살펴볼 수 있습니다 .
scikit-learn으로 연습
scikit에서이 모든 것을 수행 할 필요는 없습니다. 다항식 회귀 분석 은 이미 0.15 버전 에서 사용할 수 있습니다 . 여기에서 업데이트 방법을 확인 하십시오 .
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model
X = [[0.44, 0.68], [0.99, 0.23]]
vector = [109.85, 155.72]
predict= [[0.49, 0.18]]
#Edit: added second square bracket above to fix the ValueError problem
poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X)
predict_ = poly.fit_transform(predict)
clf = linear_model.LinearRegression()
clf.fit(X_, vector)
print clf.predict(predict_)