线性回归算法
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')


浙公网安备 33010602011771号