线性回归:线性模型是一种形式简单但包含机器学习主要建模思想的模型。线性回归是线性模型的一种典型方法
- 给定一组由输入x和输出y构成的数据集,线性回归就是通过训练学习得到一个线性模型来最大限度地根据输入拟合输出
y = w× +b线性回归学习的关键问题在于确定参数 w和 b,使拟合后的输出和真实的输出相接近
要求W和b的最小化参数,上式分别对w和b求一阶导数并令其为0,对w求导过程
对b求导过程
分别令其为0,得到w和b的最优解表达式
即最小二乘法
线性回归模型主体部分的代码实现
# 导入numpy模块
import numpy as np
### 定义模型主体部分
### 包括线性回归模型公式、均方损失函数和参数求偏导三部分
def linear_loss(X, y, w, b):
'''
输入:
X:输入变量矩阵
y:输出标签向量
w:变量参数权重矩阵
b:偏置
输出:
y_hat:线性回归模型预测值
loss:均方损失
dw:权重系数一阶偏导
db:偏置一阶偏导
'''
# 训练样本量
num_train = X.shape[0]
# 训练特征数
num_feature = X.shape[1]
# 线性回归预测值
y_hat = np.dot(X, w) + b
# 计算预测值与实际标签之间的均方损失
loss = np.sum((y_hat-y)**2) / num_train
# 基于均方损失对权重系数的一阶梯度
dw = np.dot(X.T, (y_hat-y)) / num_train
# 基于均方损失对偏置的一阶梯度
db = np.sum((y_hat-y)) / num_train
return y_hat, loss, dw, db
linear_loss函数的输入参数包括训练数据和权重系数,输出为线性回归模型预测值,均方损失,权重参数一阶偏导和偏置一阶偏导
然后在linear_loss函数的基础上,定义线性回归模型的训练过程。