gpt4 book ai didi

python - 通过矩阵代数拟合原点

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:47 25 4
gpt4 key购买 nike

通常我使用以下代码来进行线性拟合或二次拟合。有时需要使用权重=2 对模型进行 1/x2 加权。我想知道是否可以通过添加一些矩阵代数来强制模型通过原点(显然如果权重=0)。谢谢。

import numpy
from pylab import *
data=loadtxt('...')

degree=1
weight=0

x,y,w=data[:,0],data[:,1],1/data[:,0]**weight
n=len(data)
d=degree+1

f=zeros(n*d).reshape((n,d))
for i in range(0,n):
for j in range(0,d):
f[i,j]=x[i]**j

q=diag(w)
fT=dot(transpose(f),q)
fTx=dot(fT,f)
fTy=dot(fT,y)
coeffs=dot(inv(fTx),fTy)

最佳答案

对于weight=0在这种情况下,通过改变来消除特征向量中的常数项 for j in range(0,d)for j in range(1,d) .

对于 weight 的较大值术语,与 1/x^p 相关的权重项必须为零,这在普通最小二乘解中可能不会发生。

为了获得最佳的 numpy 实践,我建议您替换 zeros(n*d).reshape((n,d))zeros( (n,d) )dot(inv(fTx),fTy)linalg.solve(fTx,fTy) .

关于python - 通过矩阵代数拟合原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com