当前位置:  开发笔记 > 编程语言 > 正文

简单的多维曲线拟合

如何解决《简单的多维曲线拟合》经验,为你挑选了1个好方法。

我有一堆数据,通常是a,b,c,...,y形式

其中y = f(a,b,c ......)

它们中的大多数是三个和四个变量,并且有10k到10M的记录.我的一般假设是它们本质上是代数的,例如:

y = P1 a ^ E1 + P2 b ^ E2 + P3 c ^ E3

不幸的是,我上次的统计分析课是在20年前.获得f近似值的最简单方法是什么?开源工具具有非常小的学习曲线(即我可以在一小时左右得到合适的近似值)是理想的.谢谢!



1> David Z..:

如果它有用,这里是一个Numpy/Scipy(Python)模板来做你想要的:

from numpy import array
from scipy.optimize import leastsq

def __residual(params, y, a, b, c):
    p0, e0, p1, e1, p2, e2 = params
    return p0 * a ** e0 + p1 * b ** e1 + p2 * c ** e2 - y

# load a, b, c
# guess initial values for p0, e0, p1, e1, p2, e2
p_opt = leastsq(__residual,  array([p0, e0, p1, e1, p2, e2]), args=(y, a, b, c))
print 'y = %f a^%f + %f b^%f %f c^%f' % map(float, p_opt)

但是,如果您真的想了解正在发生的事情,那么您将不得不花时间来扩展某些工具或编程环境的学习曲线 - 我真的认为没有办法解决这个问题.人们通常不会专门编写专门用于执行3期权力回归的工具.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有