线性回归算法

1、简单线性回归

 一元一次方程,在机器学习中一元表示一个特征,b表示截距,y表示目标值

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 # 转化成矩阵
 4 X = np.linspace(0,10,num = 30).reshape(-1,1)
 5 # 斜率和截距,随机生成
 6 w = np.random.randint(1,5,size = 1)
 7 b = np.random.randint(1,10,size = 1)
 8 # 根据一元一次方程计算目标值y,并加上“噪声”,数据有上下波动~
 9 y = X * w + b + np.random.randn(30,1)
10 plt.scatter(X,y)
11 # 重新构造X,b截距,相当于系数w0,前面统一乘以1
12 X = np.concatenate([X,np.full(shape = (30,1),fill_value= 1)],axis = 1)
13 # 正规方程求解
14 θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2)
15 print('一元一次方程真实的斜率和截距是:',w, b)
16 print('通过正规方程求解的斜率和截距是:',θ)
17 # 根据求解的斜率和截距绘制线性回归线型图
18 plt.plot(X[:,0],X.dot(θ),color = 'green')
View Code

 

posted @ 2026-09-06 17:24  红酒人生  阅读(4)  评论(0)    收藏  举报