如何对三维数据(x,y,z)执行多项式特征和线性回归?

2024-06-02 14:57:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助执行三维数据多项式功能,并执行线性回归,以创建一个三维多项式上的最佳拟合线

我有一个随机数据框,其中x、y和z列构成多项式散点图。 X和Y是相似的值,而z则大不相同。 例如:

X=(-3,9,-20,-8,-14)
Y=(-2,8,-19,-8,-13)
Z=(-960,110,4867,-149,1493)

我这样做是为了二维数据,而不是三维数据

poly=PolynomialFeatures(degree=2,include_bias=False)
X_poly=poly.fit_transform(X.reshape(-1,1)) 
X_poly[0]

但是,当我有x、y和z时,如何处理数据?我是否需要执行poly.fit_变换x和y

接下来我做了线性回归

from sklearn.linear_model import LinearRegression

LinReg = LinearRegression()
LinReg.fit(X_poly,z)

然后,当我为x和y创建测试数据并对z执行预测方法时,得到的线是线性的,而不是多项式

任何帮助都将不胜感激


Tags: 数据from功能falseincludetransform线性fit
2条回答

PolynomialFeatures表示fit_transform()方法需要xy时,这里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)

我终于明白了。我需要通过多项式特征传递一个只包含x和y的数据帧,然后在linreg.fit()中使用XY_poly和z。这将训练模型,以便我接下来的步骤创建多项式的最佳拟合线

相关问题 更多 >