一元线性回归实现与可视化

import numpy as np
from matplotlib import pyplot as plt

def calculate_w(x_data,y_data):#求解w的函数
    x_data_mean=np.mean(x_data)
    x_data_sum=np.sum(x_data)
    x_data_quadratic_sum=0
    for i in range(len(x_data)):
        x_data_quadratic_sum+=x_data[i]**2
    w_denominator=x_data_quadratic_sum-1/len(x_data)*(x_data_sum**2)#分母
    w_numerator=0;              #分子                            
    for i in range(len(x_data)):
        w_numerator+=y_data[i]*(x_data[i]-x_data_mean);
    return w_numerator/w_denominator
    
def calculate_b(x_data,y_data,w):#求解b的函数
    b=0
    for i in range(len(x_data)):
        b+=y_data[i]-w*x_data[i]
    b=b/len(x_data)
    return b
   

x_data=list([10,13,22,37,45,48,59,65,66,68,68,71,84,88,89,89])
y_data=list([19,60,71,74,69,89,146,130,153,144,128,123,127,125,154,150])

w=calculate_w(x_data,y_data)
b=calculate_b(x_data,y_data,w)
print(w)
print(b)

plt.scatter(x_data,y_data,color='g')
x=np.linspace(0,100,10000)
y=w*x+b
plt.plot(x,y,color='k')
plt.show()

本代码自己实现了一元线性回归

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值