如何解决3D 数据点上的 Python 多项式回归
我的问题是,我有大约 50.000 个非线性数据点 (x,y,z),其中 z 取决于自变量 x 和 y。一方面,从二维的角度来看,数据点看起来像 7 次多项式。不幸的是,我无法显示这些数据。
我的目标是在 3D 中找到一个可以拟合这些数据的多项式,而无需事先知道多项式的次数。所以我想要一个函数 f(x,y) = ax^3 + bx^2 + cx^2y + dy^3 + ...
不幸的是,在 python 中,我只找到了表面拟合之类的东西,你需要事先获得学位。或者类似于使用 scikit-learn 将多项式问题转换为多变量线性问题。后者对我的数据集的结果非常糟糕。
有没有人知道解决这个问题的更好方法?非常感谢。
解决方法
就多项式拟合曲面而言,我认为最好的办法是尝试不同的多项式组并根据拟合度对它们进行排名,如here 所述。
如果您愿意尝试不同的曲面拟合方法,我建议您查看what scipy has to offer,particularly in the Multivariate,unstructured data section。例如,main.py
使用三次样条在数据点之间进行插值。请参阅以下代码以获取演示:
将 numpy 导入为 np
从 scipy.interpolate 导入网格数据
scipy.interpolate.griddata
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。