ทฤษฎี
การถดถอยพหุนามเป็นกรณีพิเศษของการถดถอยเชิงเส้น ด้วยแนวคิดหลักว่าคุณจะเลือกคุณสมบัติของคุณอย่างไร มองไปที่การถดถอยหลายตัวแปร 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 เรียนรู้
คุณไม่จำเป็นต้องทำทั้งหมดใน 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_)