教程目录
阅读:
最小二乘法(线性回归)详解版
对于线性回归模型,假设训练集中有 m 个训练样本,每个训练样本中有 n-1 个特征,可以使用矩阵的表示方法,预测函数可以表示为:
其损失函数可以表示为:
其中,标签 Y 为 m×1 的矩阵,训练特征 X 为 m×n 的矩阵,回归系数 W 为 n×1 的矩阵。在最小二乘法中,对 W 求导,即:
令其为 0,得到:
现在让我们一起利用 Python 实现最小二乘的解法,在最小二乘法的求解过程中,需要用到矩阵的计算,因此,我们需要导入 Python 的矩阵计算模块:

若矩阵 X 是一个方阵,且矩阵 X 的行列式 |X|≠0,则矩阵 X 的逆 X-1 存在,即对于满秩矩阵 X,其逆矩阵存在。如果矩阵 X 不是方阵,可以求矩阵 X 的 Moore-Penrose 广义逆 X†。Moore-Penrose 广义逆具有很好的性质,如 Moore-Penrose 广义逆存在而且唯一,则回归系数可以表示为:

其损失函数可以表示为:

其中,标签 Y 为 m×1 的矩阵,训练特征 X 为 m×n 的矩阵,回归系数 W 为 n×1 的矩阵。在最小二乘法中,对 W 求导,即:

令其为 0,得到:

现在让我们一起利用 Python 实现最小二乘的解法,在最小二乘法的求解过程中,需要用到矩阵的计算,因此,我们需要导入 Python 的矩阵计算模块:
import numpy as np最小二乘的具体实现如下所示:
def least_square(feature, label): '''最小二乘法 input: feature(mat):特征 label(mat):标签 output: w(mat):回归系数 ''' w = (feature.T * feature).I * feature.T * label return w程序中,函数 least_square 实现了线性回归模型的最小二乘解法,函数的输入是训练数据的特征和标签,其输出是线性回归模型的回归系数。回归系数的求解如程序中的 w 所示,其与上述的公式一致。
广义逆的概念
对于线性回归的模型,其预测函数的矩阵表示为:
