s1223452840

2020-09-11   阅读量: 635

Python

如何使用numpy实现线性回归?

扫码加入数据分析学习群

#生成一系列线性相关的数据

dataset_size = 100000

#干扰幅度, 干扰越小, ab越准确

amplitute = 200

#预测 y = 2x+3 的线性函数

x = np.random.randint(0,1000,dataset_size)

y = 2 * x + 3 + np.random.normal(size=dataset_size)*amplitute




#使用最小二乘法求解线性回归

x_mean = np.mean(x)

y_mean = np.mean(y)


m1 = 0 #分母

m2 = 0 #分子

for x_i, y_i in zip(x, y):

m1 += (x_i - x_mean) * (y_i - y_mean)

m2 += (x_i - x_mean) ** 2

a = m1/m2

b = y_mean - a*x_mean

print(a,b)


#绘图


y_line = a*x + b

print(a,b)

plt.scatter(x[:50],y[:50])

plt.plot(x, y_line, color='r')

plt.axis([0,4000,0,4000])

plt.show()


55.5019 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子