首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对三维数据(x,y,z)执行多项式特征和线性回归?

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

Stack Overflow用户
提问于 2021-02-19 08:14:57
回答 2查看 80关注 0票数 1

我需要帮助在3维数据上执行多项式功能和执行线性回归,以创建3维多项式上的最佳拟合直线。

我有一个以x、y和z为列的随机数据帧,它形成了一个多项式散点图。X和Y是相似的值,而z有很大的不同。示例:

代码语言:javascript
复制
X=(-3,9,-20,-8,-14)
Y=(-2,8,-19,-8,-13)
Z=(-960,110,4867,-149,1493)

我已经为2维数据这样做了,但不是3d。

代码语言:javascript
复制
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吗?

接下来,我做了线性回归。

代码语言:javascript
复制
from sklearn.linear_model import LinearRegression

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

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

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2021-02-19 08:39:25

PolynomialFeaturesfit_transform()方法需要xy时,这里的x是一个n维特性数组,y是可选的目标值。在您的情况下,我将执行以下操作:

代码语言:javascript
复制
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)

票数 0
EN

Stack Overflow用户

发布于 2021-02-19 11:57:53

我终于想通了。我需要通过多项式特征传递一个只包含x和y的DataFrame,然后在linreg.fit()中使用XY_poly和z。这将为我的下一步训练模型,以创建最适合多项式的直线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66270045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档