'''多项式回归:若希望回归模型更好的拟合训练样本数据,可以使用多项式回归器。
一元多项式回归:
数学模型:y = w0 + w1 * x^1 + w2 * x^2 + .... + wn * x^n
将高次项看做对一次项特征的扩展得到:
y = w0 + w1 * x1 + w2 * x2 + .... + wn * xn
那么一元多项式回归即可以看做为多元线性回归,可以使用LinearRegression模型对样本数据进行模型训练。
所以一元多项式回归的实现需要两个步骤:
1. 将一元多项式回归问题转换为多元线性回归问题(只需给出多项式最高次数即可)。
2. 将1步骤得到多项式的结果中 w1,w2,w3,...,wn当做样本特征,交给线性回归器训练多元线性模型。
选择合适的最高次数其模型R2评分会高于一元线性回归模型评分,如果次数过高,会出现过拟合现象,评分会低于一元线性回归评分
使用sklearn提供的"数据管线"实现两个步骤的顺序执行:
import sklearn.pipeline as pl
import sklearn.preprocessing as sp
import sklearn.linear_model as lm
model = pl.make_pipeline(
# 10: 多项式的最高次数
sp.PolynomialFeatures(10), # 多项式特征扩展器
lm.LinearRegression()) # 线性回归器
过拟合和欠拟合:</