python多维数据_对Python中的多维数据样本应用非线性回归

这篇博客展示了如何使用Python对多维数据进行非线性回归分析。通过numpy库实现数据处理,利用scipy.optimize.leastsq进行拟合,并给出了详细步骤和示例代码,帮助理解如何估计输出和计算残差。
摘要由CSDN通过智能技术生成

尝试类似

编辑:增加了一个使用线性回归结果估计输出的示例函数。

import numpy as np

data =np.array(

[[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],

[0.042780748663101636, -0.0044771571786609945, -0.10506567946276074],

[0.542780748663101636, -0.005771571786609945, 0.30506567946276074],

[-0.342780748663101636, -0.0304077157178660995, 0.90506567946276074]])

coefficient = data[:,0:2]

dependent = data[:,-1]

x,residuals,rank,s = np.linalg.lstsq(coefficient,dependent)

def f(x,u,v):

return u*x[0] + v*x[1]

for datum in data:

print f(x,*datum[0:2])

其中给出

>>> x

array([ 0.16991146, -30.18923739])

>>> residuals

array([ 0.07941146])

>>> rank

2

>>> s

array([ 0.64490113, 0.02944663])

,并与您系数创建的功能给

0.115817326583

0.142430900298

0.266464019171

0.859743371665

更多信息可以在documentation我张贴作为评论被发现。

编辑2:将您的数据拟合到任意模型。

编辑3:使我的模型成为便于理解的函数。

编辑4:使代码更容易读取/更改模型为二次拟合,但您应该能够阅读此代码并知道如何使其最小化您现在想要的任何残差。

人为的例子:

import numpy as np

from scipy.optimize import leastsq

data =np.array(

[[-0.042780748663101636, -0.0040771571786609945, -0.00506567946276074],

[0.042780748663101636, -0.0044771571786609945, -0.10506567946276074],

[0.542780748663101636, -0.005771571786609945, 0.30506567946276074],

[-0.342780748663101636, -0.0304077157178660995, 0.90506567946276074]])

coefficient = data[:,0:2]

dependent = data[:,-1]

def model(p,x):

a,b,c = p

u = x[:,0]

v = x[:,1]

return (a*u**2 + b*v + c)

def residuals(p, y, x):

a,b,c = p

err = y - model(p,x)

return err

p0 = np.array([2,3,4]) #some initial guess

p = leastsq(residuals, p0, args=(dependent, coefficient))[0]

def f(p,x):

return p[0]*x[0] + p[1]*x[1] + p[2]

for x in coefficient:

print f(p,x)

给出

-0.108798280153

-0.00470479385807

0.570237823475

0.413016072653

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值