[机器学习复习笔记] Linear Regression 线性回归(最小二乘法求解析解)
Linear Regression
1. 一元线性回归
定义一个一次函数如下:
其中
只有 一个

2. 最小二乘法求解一元线性回归
2.1 损失函数
-
残差
首先引入 残差 的概念,实际指的就是 真实值 与 预测值 之间的 差值,公式如下:
其中
表示真实值, 表示预测值。

-
损失函数
对于机器学习中的回归问题,残差平方和 是最常用的 损失函数,即
(Sum of Squares for Error):其中
表示当前第 个样本数据的预测值, 表示当前预测值下的函数参数, 表示样本数据的数量。损失函数 是衡量回归模型误差的函数,函数值越小,则说明 拟合程度越高。
PS:选择残差平方和,是因为平方和可以消除负号。如果仅仅考虑差值之和,那么会出现 负数误差和正数误差抵消 的情况,此时的误差虽然接近于
,但明显是不对的;至于为什么不使用绝对值之和,主要是考虑 平方和的微分相对简单,所以一般都使用 残差平方和( )。
2.2 最小二乘估计
显然,要使得直线尽可能地拟合数据,需要使得
为了方便求微分,我们通常用
为了使得偏微分的形式较为美观,可以在 残差平方和
由以上几点,最终的损失函数
显然,损失函数

函数的最低点,也就是导数为0取到的点,此时函数值有最小值。所以,分别对
联立上述等式,求解可得:
推导过程如下:
通过上述推导出的解析解可以直接确定最终的一元线性回归模型。
3. 多元线性回归
在实际生活中,需要解决的问题很多时候是 多变量 的,此时就出现了多个特征,而每个特征也都有对于的参数
4. 最小二乘法求解多元线性回归
4.1 损失函数的向量化表示
令
由此可以将 损失函数向量化表示 为:
其中
4.2 最小二乘估计(多元线性回归)
将
令偏导数为0,得到多元线性回归的 解析解。但是涉及 求逆 操作,所以分为以下两种情况。
- 当
为 满秩矩阵 或 正定矩阵,则可以直接求得:
- 当
不是 满秩矩阵,一般是 学习问题包含了多余的特征 或者 存在过多特征 以至于 导致的。对于第一种情况一般的解决方法是 删除一些特征,对于第二章情况,可以删除一些特征,也可以使用 正则化 方法使得一定可逆(这里涉及 岭回归 的知识,暂时不拓展下去)。
通过上述推导求得 解析解
5. 线性回归(最小二乘法求解析解)核心代码
import numpy as np
from sklearn import datasets
X, y = ...
# 函数
def f(X, theta):
return np.dot(X, theta)
# 解析解
def linear_reg(X, y):
return (X.T * X).I * (X.T * y)
theta = linear_reg(X, y)
y_pred = f(X, theta)
参考文章
一切都是命运石之门的选择,本文章来源于博客园,作者:MarisaMagic,出处:https://www.cnblogs.com/MarisaMagic/p/17813449.html,未经允许严禁转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律