然后我们来实际的操作一下看看,多项式升维的作用,其实就是为了,来对,非线性的数据进行拟合.
我们直接看代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
X=np.linspace(-1,11,num=100) 从-1到11中获取100个数,是等差数列
y=(X-5)**2+3*X-12+np.random.randn(100)
这个是(x-5)的平方+3x-12 ,然后加上扰动因素,这里的扰动因素,注意,是用np.random.randn(100) 这个来算的,但是这里要注意,这里是一个一元二次方程对吧,之前我们都是多元一次方程,现在我们这个是一元二次方程,这个时候要注意他的图形,就是曲线了,不是线性,直线了.
然后还需要注意,这里的np.random.randn(100),这里因为没有用np.random.randn(100,1)所以这里会由于python中的广播机制,这个矩阵变成了,100,100的形状,这个时候我们需要用
X.reshape(-1,1) 重定义一下形状
#数据就是二维数据,机器学习,算法要求
X.reshape(-1,1)
是 Python 中 NumPy 库的一个命令,用于改变数组的形状。在这个例子中,-1
是一个特殊的值,表示该维度的大小应该自动计算以保持元素总数不变。具体来说,reshape
函数将一个具有 N