teori
Polinom regresyonu, özel bir doğrusal regresyon vakasıdır. Ana fikri ile özelliklerinizi nasıl seçersiniz. 2 değişkenli çok değişkenli regresyona bakarak: x1
ve x2
. Doğrusal regresyon şöyle görünecek:y = a1 * x1 + a2 * x2.
Şimdi bir polinom regresyonuna sahip olmak istiyorsunuz (hadi 2 derece polinom yapalım). Biz birkaç ek özellikler oluşturur: x1*x2
, x1^2
ve x2^2
. Böylece 'doğrusal regresyon'unuzu alacağız:
y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2
Bu , boyutsal bir kavramın lanetini güzel bir şekilde göstermektedir , çünkü yeni özelliklerin sayısı, polinom derecesinin artmasıyla doğrusaldan çok daha hızlı artmaktadır. Bu konsepte buradan bir göz atabilirsiniz .
Scikit-learn ile alıştırma yapın
Bunların hepsini scikit içerisinde yapmanız gerekmez. Polinom regresyonu zaten orada mevcut ( 0.15 versiyonunda. Nasıl güncelleyeceğinizi kontrol edin ).
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_)