多项式回归
在简单线性回归当中,我们的数据与数据之间是有很大的线性关系。但是现实中很多样本是不成线性关系的。如何把非线性问题变成线性问题呢?多项式回归将原有的特征经过平方等变为新的特征增加进训练集内。例如y=ax+b 增加新的特征x2变为 y=ax2+bx+c,图像就会由线性变为非线性
scikit-learn
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2)#degree是次幂,这里是2次幂
poly.fit(X)
X2 = poly.transform(X)
原来X为
转换后
可以看到原来的一列元素变为了3列,第一列都为1,第二列为原数值,第三列为第二列的平方
如果X特诊不止一个呢?
当两个特征的时候
转变后
可以看到 第一列都为1,第二列和第三列为原列,第4列为第2列的平方,第6列为第2列的平方,那么第5列是什么呢?第5列其实是第2列和第3列的乘积,也就是源数据相乘