我需要帮助在3维数据上执行多项式功能和执行线性回归,以创建3维多项式上的最佳拟合直线。
我有一个以x、y和z为列的随机数据帧,它形成了一个多项式散点图。X和Y是相似的值,而z有很大的不同。示例:
X=(-3,9,-20,-8,-14)
Y=(-2,8,-19,-8,-13)
Z=(-960,110,4867,-149,1493)我已经为2维数据这样做了,但不是3d。
poly=PolynomialFeatures(degree=2,include_bias=False)
X_poly=poly.fit_transform(X.reshape(-1,1))
X_poly[0]但是,当我有x、y和z时,我该如何处理数据呢?我需要执行poly.fit_transform x和y吗?
接下来,我做了线性回归。
from sklearn.linear_model import LinearRegression
LinReg = LinearRegression()
LinReg.fit(X_poly,z)然后,当我为x和y创建测试数据并对z执行预测方法时,结果线是线性的,而不是多项式。
任何帮助都将不胜感激。
发布于 2021-02-19 08:39:25
当PolynomialFeatures说fit_transform()方法需要x和y时,这里的x是一个n维特性数组,y是可选的目标值。在您的情况下,我将执行以下操作:
X=(-3,9,-20,-8,-14)
Y=(-2,8,-19,-8,-13)
Z=(-960,110,4867,-149,1493)
foo = np.array([X, Y, Z])
foo = foo.transpose() # This transposes the array to bring it to shape (n, 3)
poly = PolynomialFeatures(3)
poly.fit_transform(foo)完成此操作后,您可以使用fit_transform(foo)。
发布于 2021-02-19 11:57:53
我终于想通了。我需要通过多项式特征传递一个只包含x和y的DataFrame,然后在linreg.fit()中使用XY_poly和z。这将为我的下一步训练模型,以创建最适合多项式的直线。
https://stackoverflow.com/questions/66270045
复制相似问题