python局部加权回归

对于有确定的大概求值范围来说,局部加权回归能更好的拟合数据

简化的公式

参考文献:[]https://blog.csdn.net/z_feng12489/article/details/80213739

代码:

import numpy as np
import matplotlib.pyplot as plt
x=[[400],[450],[484],[500],[510],[525],[540],[549],[558],[590],[610],[640],[680],[750],[900]]
y=[[80],[89],[92],[102],[121],[160],[180],[189],[199],[203],[247],[250],[259],[289],[356]]
plt.plot(x,y,'ks')
end=[[0],[0]]
for i in range(len(x)):
    x[i].insert(0,1)
xx=np.mat(x)#转成矩阵
yy=np.mat(y)
end=np.mat([0,0])
end=end.T#矩阵转逆
k=2#加权参数
weight=np.mat(np.eye((len(x))))
for j in range(len(x)):
    diff=x[6]-xx[j,:]
    weight[j,j]=np.exp(diff*diff.T/(-2*k**2))
end=(xx.T*(weight*xx)).I*(xx.T*(weight*yy))
end=end.getA().tolist()#矩阵转成列表
print(end)
X=[400,900]
Y=[]
Y.append(end[0][0]+end[1][0]*X[0])
Y.append(end[0][0]+end[1][0]*X[1])
plt.plot(X,Y,'g-')
plt.show()

结果图:

转载于:https://www.cnblogs.com/chenminyu/p/10609342.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值