homework-0306-最小二乘法

#问题1.实现一元线性回归
#使用如下提供的数据求解
x=[300,400,400,550,720,850,900,950]
y=[300,350,490,500,600,610,700,660]
import numpy as np
x_array = np.array(x)
y_array = np.array(y)
x_mean = np.mean(x_array)
y_mean = y_array.mean()
print(x_mean, y_mean)

a=((x_array-x_mean).dot(y_array-y_mean))/((x_array-x_mean)@(x_array-x_mean))
b=y_mean-a*x_mean
print(a,b)
633.75 526.25
0.530960991635149 189.75347155122432
#问题2.使用问题1实现的一元线性回归绘制一条直线,同时绘制上述的x,y散点图
import matplotlib.pyplot as plt
plt.plot(x,y, "ro") #plt.plot(x_array,y_array, "ro") 
m = np.linspace(0, 1000, 100)
plt.plot(m, a*m+b)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("linear regression")
plt.show()

png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值