【机器学习笔记】回归算法

回归算法

文章目录

  • 回归算法
    • [1 线性回归](#1 线性回归)
    • [2 损失函数](#2 损失函数)
    • [3 多元线性回归](#3 多元线性回归)
    • [4 线性回归的相关系数](#4 线性回归的相关系数)

1 线性回归

  1. 回归分析(Regression)

    回归分析是描述变量间关系的一种统计分析方法

    例:在线教育场景

    • 因变量 Y:在线学习课程满意度

    • 自变量 X:平台交互性、教学资源、课程设计

    预测性的建模技术,通常用于预测分析,预测的结果多为连续值(也可为离散值,二值)

  2. 线性回归 (Linear regression)

    因变量和自变量之间是线性关系,就可以使用线性回归来建模
    y = b + m 1 x 1 + m 2 x 2 + ... + m n x n y = b + m_1x_1 + m_2x_2 + \ldots + m_nx_n y=b+m1x1+m2x2+...+mnxn

    其中 $m_1, m_2, \ldots, m_n $ 是各个特征的权重,$ x_1, x_2, \ldots, x_n $是对应的特征值。

    线性回归的目的即找到最能匹配(解释)数据的截距和斜率

  3. 如何拟合数据

    假设只有一个因变量和自变量,每个训练样例表示 (𝑥𝑖 , 𝑦𝑖)

    用 y ^ i \hat y_i y^i 表示根据拟合直线和 x𝑖 对 𝑦𝑖 的预测值: y ^ i = b 1 + b 2 x i \hat y_i=b_1+b_2x_i y^i=b1+b2xi

    定义 e i = y i − y ^ i e_i=y_i-\hat y_i ei=yi−y^i 为误差项

    目标:得到一条直线使得对于所有训练样例的误差项尽可能小

  4. 线性回归的基本假设

    • 自变量与因变量间存在线性关系;
    • 数据点之间独立;
    • 自变量之间无共线性,相互独立;
    • 残差独立,等方差,且符合正态分布。

2 损失函数

  1. 损失函数(loss function)

    损失函数(Loss Function)是用于衡量模型预测值与实际值之间差异的函数。

    • 均方误差(Mean Squared Error,MSE) :用于回归问题,计算预测值与实际值之间的平方差的平均值。
      MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)2

    • 平均绝对误差(Mean Absolute Error,MAE) :也用于回归问题,计算预测值与实际值之间的绝对差的平均值。
      MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1∑n∣yi−y^i∣

  2. 最小二乘法(Least Square, LS)

    为了求解最优的截距和斜率,可以转化为一个针对损失函数的凸优化问题,称为最小二乘法
    min ⁡ b 1 , b 2 : ∑ i = 1 n ( y i − y ^ i ) 2 = ∑ i = 1 n ( y i − b 1 − b 2 x ) 2 \min_{b_1,b_2}:\sum_{i=1}^n(y_i - \hat{y}i)^2=\sum{i=1}^n(y_i - b_1-b_2x)^2 b1,b2min:i=1∑n(yi−y^i)2=i=1∑n(yi−b1−b2x)2

    为求最小值,将上事对 b 1 b_1 b1, b 2 b_2 b2求偏导,得到:
    b 2 = ∑ i = 1 n ( x i − x ^ ) ( y i − y ^ ) ∑ i = 1 n ( x i − x ^ ) 2 b 1 = y ^ − b 2 x ^ b_2=\frac{\sum_{i=1}^n(x_i-\hat x)(y_i-\hat y)}{\sum_{i=1}^n(x_i-\hat x)^2}\\b_1=\hat y-b_2\hat x b2=∑i=1n(xi−x^)2∑i=1n(xi−x^)(yi−y^)b1=y^−b2x^
    x ^ \hat x x^ 和 y ^ \hat y y^ 分别表示自变量和因变量的均值。

  3. 梯度下降法(Gradient Descent, GD)

    沿着损失函数的梯度方向,通过不断更新模型参数来减小损失函数的值,直到达到损失函数的局部最小值或收敛到某个停止条件。

    • 初始化参数: 随机初始化模型的参数(权重 b 2 b_2 b2 和偏置 b 1 b_1 b1)。

    • 计算梯度: 计算当前参数下损失函数关于每个参数的梯度(导数)。
      KaTeX parse error: Undefined control sequence: \part at position 8: \frac{\̲p̲a̲r̲t̲ ̲\sum_{i=1}^ne_i...

    • 更新参数: 沿着梯度的反方向调整参数,通过学习率 α \alpha α 控制每次更新的步长。
      KaTeX parse error: Undefined control sequence: \part at position 19: ...b-\alpha \frac{\̲p̲a̲r̲t̲ ̲\sum_{i=1}^ne_i...

    • 重复: 重复步骤2和3,直到满足停止条件,例如达到最大迭代次数或梯度接近零。

    • 输出: 返回最终的模型参数。

3 多元线性回归

  1. 多元线性回归(Multiple Linear Regression)

    当因变量有多个时,我们可以用矩阵方式表达
    Y = X β + e Y=X\beta +e Y=Xβ+e
    Y Y Y 为输出, X X X 为输入矩阵, β \beta β 为回归系数, e e e 是误差项(残差)。

  2. 损失函数

    误差项 e = y − X β e=y-X\beta e=y−Xβ

    损失函数 ∑ i = 1 n e i 2 = e ⊤ e \sum_{i=1}^ne_i^2=e^\top e ∑i=1nei2=e⊤e, e ⊤ e^\top e⊤表示转置

    求解得到 β = ( X ⊤ X ) − 1 X ⊤ y \beta =(X^\top X)^{-1}X^\top y β=(X⊤X)−1X⊤y

  3. 实例:家庭花销预测

    记录了25个家庭每年在快销品和日常服务上总开销( Y Y Y),每年固定收入( X 2 X_2 X2) ,持有流动资产( X 3 X_3 X3)

    可以构建如下线性回归模型:
    y i = β 1 + β 2 x i 2 + β 3 x i 3 + ϵ i y_i=\beta_1 +\beta_2x_{i2}+\beta_3x_{i3}+\epsilon_i yi=β1+β2xi2+β3xi3+ϵi

    带入 β = ( X ⊤ X ) − 1 X ⊤ y \beta =(X^\top X)^{-1}X^\top y β=(X⊤X)−1X⊤y ,计算得到 β 1 = 36.789 \beta_1=36.789 β1=36.789, β 2 = 0.332 \beta_2=0.332 β2=0.332, β 3 = 0.125 \beta_3=0.125 β3=0.125。

    预测:如果一个家庭每年固定收入为 50K、持有流动资产 100K,则 预计一年将会花费
    y ^ i = 36.79 = 0.332 ∗ 50 + 0.125 ∗ 100 = 65.96 K \hat y_i=36.79=0.332*50+0.125*100=65.96K y^i=36.79=0.332∗50+0.125∗100=65.96K

  4. 以"误差平方和"为损失函数的优缺点

    • 优点
      • 损失函数是严格的凸函数,有唯一解
      • 求解过程简单且容易计算
    • 缺点
      • 结果对数据中的"离群点"(outlier)"非常敏感
      • 损失函数对于超过和低于真实值的预测是等价的

4 线性回归的相关系数

  1. 相关系数r

    定义因变量和自变量之间的相关系数 r
    r = 1 n − 1 ∑ i = 1 n ( x i − x ^ s x ) ( y i − y ^ s y ) r=\frac{1}{n-1}\sum_{i=1}^n(\frac{x_i-\hat x}{s_x})(\frac{y_i-\hat y}{s_y}) r=n−11i=1∑n(sxxi−x^)(syyi−y^)

    其中 $ \hat x$ 是 X X X 的均值, S x S_x Sx 是 X X X 的标准差 1 n − 1 ∑ ( x i − x ^ ) 2 \sqrt{\frac{1}{n-1}\sum (x_i-\hat x)^2} n−11∑(xi−x^)2 。

    协方差为 ( x i − x ^ s x ) ( y i − y ^ s y ) (\frac{x_i-\hat x}{s_x})(\frac{y_i-\hat y}{s_y}) (sxxi−x^)(syyi−y^),描述两个变量和Y的线性相关程度。

    相关系数r的绝对值越接近1,线性相关程度越高。

  2. 决定系数(coefficient of determination)

    决定系数 R 2 R^2 R2 ,也称作判定系数、拟合优度。

    决定系数衡量了模型对数据的解释程度,y的波动有多少百分比能被x的波动所描述。
    R 2 = 1 − MSE VAR = ∑ i ( y i − y ^ ) 2 ∑ i ( y i − y ˉ ) 2 R^2=1-\frac{\text{MSE}}{\text{VAR}}=\frac{\sum_i (y_i-\hat y)^2}{\sum_i(y_i-\bar y)^2} R2=1−VARMSE=∑i(yi−yˉ)2∑i(yi−y^)2
    y i y_i yi 为真实值, y ^ i \hat y_i y^i 为预测值, y ˉ i \bar y_i yˉi 为均值。 MSE \text{MSE} MSE 是均方误差, VAR \text{VAR} VAR是方差。

    R 2 R^2 R2越接近1,表示回归分析中自变量对因变量的解释越好

    特别注意:变量相关 ≠ 存在因果关系。

相关推荐
菜♕卷几秒前
深度学习-03 Pytorch
人工智能·pytorch·深度学习
明明真系叻1 分钟前
第十二周:机器学习笔记
人工智能·机器学习
跟着大数据和AI去旅行18 分钟前
使用肘部法则确定K-Means中的k值
python·机器学习·kmeans
&AtTiTuDe;27 分钟前
如何使用IIC外设(硬件IIC)
经验分享·笔记·stm32·单片机·嵌入式硬件·硬件工程
QuantumYou29 分钟前
【对比学习串烧】 SWav和 BYOL
学习·机器学习
快把我骂醒37 分钟前
S-Procedure的基本形式及使用
笔记
AI王也1 小时前
ChatGPT搭上langchain的知识库RAG应用,效果超预期
人工智能·chatgpt·langchain·aigc
沧穹科技1 小时前
音频北斗定位系统有什么用?
人工智能
学不会lostfound1 小时前
一、机器学习算法与实践_03概率论与贝叶斯算法笔记
算法·机器学习·概率论·高斯贝叶斯
Bruce小鬼2 小时前
最新版本TensorFlow训练模型TinyML部署到ESP32入门实操
人工智能·python·tensorflow