Scikit-Learn线性回归(二)

Scikit-Learn线性回归二:多项式回归

    • 1、多项式回归
    • 2、多项式回归的原理
    • 3、Scikit-Learn多项式回归
      • 3.1、Scikit-Learn多项式回归API
      • 3.2、Scikit-Learn多项式回归初体验
      • 3.3、Scikit-Learn多项式回归与Pipeline



1、多项式回归


本文接上篇:Scikit-Learn线性回归(一)

上篇中,我们详细介绍了线性回归的概念、原理和推导,以及通过由浅入深的案例,详解了Scikit-Learn线性回归模型的基本使用。本文主要介绍N阶多项式回归,它属于线性回归的特殊情况

线性回归研究的是一个自变量与一个因变量之间的回归问题。在实际应用中,并不是所有的情景都符合线性关系,大多数情况都是非线性的

例如,二阶曲线、三阶曲线等。这种该如何处理呢?

令人意想不到的是,其实你也可以用线性模型来拟合非线性数据。一个简单的方法就是为每个特征的幂次方添加为一个新特征,然后在这个拓展过的特征集上训练线性模型。这种方法被称为多项式回归

多项式回归的基本思想是:以线性回归为基础,拓展数据集特征空间的维度,且被拓展的特征空间维度上的数据是给定数据集相关项的多项式项

多选线性回归需要使用Scikit-Learn的PolynomialFeatures对X进行处理,它会将X转化为多个特征,分别对应x0、x1、x2、…

例如,我们使用二次方程y=ax2+bx+c生成一些非线性数据,Scikit-Learn预处理模块中的PolynomialFeatures类提供了这种支持:将训练数据(只有一个特征:x)进行转换,将每个特征的幂次方(此处为平方,即x2)作为新特征加入训练集,在新的数据集上进行线性拟合

PolynomialFeatures会在给定的多项式阶数下,添加所有的特征组合。例如,有两个特征x和y,阶数degree=3,PolynomialFeatures不只会添加特征x2、x3、y2和y3,还会添加组合xy、x2y及xy2。要小心特征组合的数量爆炸!

2、多项式回归的原理


假设我们的样本符合三次曲线:y=ax3+bx2+cx+d,根据线性回归方程定义,我们假设我们的模型函数为: f ( x 3 , x 2 , x 1 ) = a x 3 + b x 2   + c x 1 + d f(x_3,x_2,x_1)=ax_3+bx_2~+cx_1+d f(x3,x2,x1)=ax3+<

你可能感兴趣的:(#,人工智能与机器学习,#,Python,scikit-learn,线性回归,python)