首页 > 其他 > 详细

13.线性回归

时间:2020-11-26 00:11:59      阅读:28      评论:0      收藏:0      [点我收藏+]

实现 Simple Linear Regression

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(1, 6, dtype=float)
y = np.array([1., 3., 2., 3., 5.])

plt.scatter(x, y)
plt.axis([0, 6, 0, 6])

技术分享图片

 

 

x_mean = np.mean(x)
y_mean = np.mean(y)

num = 0.0
d = 0.0
for x_i, y_i in zip(x, y):
    num += (x_i - x_mean) * (y_i - y_mean)
    d += (x_i - x_mean)**2

a = num / d
b = y_mean -a * x_mean

 

求 a b 的向量化方式

# 求出数据集和标签的均值

x_mean = np.mean(x)
y_mean = np.mean(y)

# 向量化求解a b

num = (x_train - x_mean).dot(y_train - y_mean)
d = (x_train - x_mean).dot(x_train - x_mean)

a = num / d
b = y_mean -a * x_mean

y_hat = a * x + b
y_hat
array([1.2, 2. , 2.8, 3.6, 4.4])
plt.scatter(x, y)
plt.plot(x, y_hat, color="r")
plt.axis([0, 6, 0, 6])

技术分享图片

 

 

x_predict = 6
y_predict = a * x_predict + b
y_predict
5.2

 

13.线性回归

原文:https://www.cnblogs.com/waterr/p/14039534.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!