Python多项式特征将数据转换为与原始数据不同的形状

Python多项式特征将数据转换为与原始数据不同的形状,python,machine-learning,scikit-learn,polynomials,Python,Machine Learning,Scikit Learn,Polynomials,我使用sklearn的多项式特征将数据预处理为各种程度的变换,以便比较它们的模型拟合度。 下面是我的代码: 从sklearn.linear\u模型导入线性回归 从sklearn.preprocessing导入多项式特征 从sklearn.model\u选择导入列车\u测试\u拆分 np.random.0 x和y是原始数据 n=100 x=np.linspace0,10,n+np.random.randn/5 y=np.sinx+n/6+np.random.randn/10 使用.多项式特征和f

我使用sklearn的多项式特征将数据预处理为各种程度的变换,以便比较它们的模型拟合度。 下面是我的代码:

从sklearn.linear\u模型导入线性回归 从sklearn.preprocessing导入多项式特征 从sklearn.model\u选择导入列车\u测试\u拆分 np.random.0 x和y是原始数据 n=100 x=np.linspace0,10,n+np.random.randn/5 y=np.sinx+n/6+np.random.randn/10 使用.多项式特征和fit_变换将原始数据转换为2次 poly1=多项式特征梯度=2 x_D2_poly=poly1.fit_transformx 看看他们的尺寸 x、 形状
x_D2_poly.shape我认为你需要重塑你的x形

x=x.reshape(-1,1)
你的x的形状是100,而不是100,1,适合2维。 获得5151个特征的原因是,每个不同的特征对100*99/2=4950有一个特征,每个特征平方100有一个特征,每个特征100的一次幂有一个特征,而第0次幂有一个特征

对您编辑的问题的答复:
您需要调用转换您希望预测的数据

谢谢!我查看了文档,它说-1意味着新的形状应该与原始形状兼容,当输入整形-1,1时,它意味着我们希望Python计算出数组的长度和剩余维度,以便它与原始形状相对应。我的想法正确吗?使用-1意味着根据其他提供的维度计算出这个维度。在这种情况下,我们说我们需要1列和100/1行。我也回答了您编辑的问题,但既然我回答了您的第一个问题,您介意接受答案吗?再次感谢。我很抱歉没有早点投票给你,因为我有点忙于理解重塑的事情…:P