前言
多项式回归是升维手段---也是一种特征预处理的手段。
多项式回归的目的
解决欠拟合问题,也是为了提高模型准确率,因为当维度不够,对预测结果考虑因素少,就不能准确计算出模型。常见手段:将已知维度进行相乘构建新的维度。
多项式回归的通俗解释
多项式回归是升维的一种,机器学习的一种算法,不过和归一化一样一般算作数据预处理的手段。他的目的是将已有的维度相乘,包括自己和自己相乘,来组成二阶的甚至更高阶的维度。
为甚么叫线性回归?主要是因为在线性回归算法中用她比较多,因为线性回归是线性的模型,来你和X和y之间的线性变化关系,当数据呈现一种非线性关系的时候,即y不是随着X线性变化的时候。我们有两种选择一是选择使用非线性的算法(回归树,神经网络等)去拟合非线性的数据。二是铁了心使用线性算法,但是需要吧数据变成线性关系才能更好的让算法发挥功能。不要小看线性算法,毕竟线性算法有运算速度快是一大优势。
总结来说, 多项式回归就是为了扩展线性回归算法来适应更加广泛的数据集。
多项式回归公式
例如,标准回归模型如下所示:
如果我们想用抛物面来拟合数据而不是平面,我们可以用二阶多项式组合特征,这样模型看起来就像这样:
此时,我们令:
有了这个数据的重新标记,我们的问题就可以写出来了:
多项式回归代码示例
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
import numpy as np
model = Pipeline([('poly', PolynomialFeatures(degree=3)),
('linear', LinearRegression(fit_intercept=False))])
# fit to an order-3 polynomial data
x = np.arange(5)
y = 3 - 2 * x + x ** 2 - x ** 3
model = model.fit(x[:, np.newaxis], y)
print(model.named_steps['linear'].coef_)
多项式回归结果分析
从结果中可以看到我们对于多项式y = 3 - 2 * x + x ** 2 - x ** 3中每一项的系数的拟合结果都很不错。