2024-11-18 学习人工智能的Day28 线性回归

打印 上一主题 下一主题

主题 928|帖子 928|积分 2784

线性回归

线性回归是统计学和机器学习中的一种根本猜测模子,用于分析和建模目的变量(连续型数据)与一个或多个自变量(解释变量)之间的关系。
线性回归概述

线性回归模子假设目的变量 y 与自变量 X 之间存在线性关系。这种关系可以用以下公式表示:
                                         y                            =                                       β                               0                                      +                                       β                               1                                                 X                               1                                      +                                       β                               2                                                 X                               2                                      +                            …                            +                                       β                               n                                                 X                               n                                      +                            ϵ                                  y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_n X_n + \epsilon                     y=β0​+β1​X1​+β2​X2​+…+βn​Xn​+ϵ
此中:


  • y 是目的变量。
  • X_1, X_2, \ldots, X_n 是自变量。
  • β_0, β_1,β_n 是回归系数,必要通过数据估计。
  • ε 是偏差项,表示模子无法解释的随机变异。
线性回归范例


  • 简单线性回归:只有一个自变量和一个因变量。
  • 多元线性回归:包含两个或更多自变量。
损失函数

线性回归通常使用最小二乘法来估计模子参数,即最小化现实观测值和模子猜测值之间的平方差之和。损失函数定义为:
                                         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=n1​i=1∑n​(yi​−y^​i​)2
此中:


  • n 是样本数目。
  • y_i 是第 i 个观测值。
  • y_i是模子猜测值。
参数估计

最小二乘法通过求解以下方程来估计参数:
                                                                ∂                                  MSE                                                      ∂                                               β                                     j                                                             =                            0                                  \frac{\partial \text{MSE}}{\partial \beta_j} = 0                     ∂βj​∂MSE​=0
这通常通过矩阵运算实现:
                                                    β                               ^                                      =                            (                                       X                               T                                      X                                       )                                           −                                  1                                                            X                               T                                      y                                  \hat{\beta} = (X^T X)^{-1} X^T y                     β^​=(XTX)−1XTy
此中:


  • X 是设计矩阵,包含自变量的值。
  • y 是目的变量的向量。
  • β 是估计的参数向量。
梯度下降法

梯度下降是一种优化算法,用于最小化损失函数。在每次迭代中,参数按照梯度的反方向更新:
                                                    β                                           (                                  t                                  +                                  1                                  )                                                 =                                       β                                           (                                  t                                  )                                                 −                            α                                       ∇                               β                                      MSE                            (                                       β                                           (                                  t                                  )                                                 )                                  \beta^{(t+1)} = \beta^{(t)} - \alpha \nabla_\beta \text{MSE}(\beta^{(t)})                     β(t+1)=β(t)−α∇β​MSE(β(t))
此中:


  • α是学习率。
  • β 是损失函数相对于参数的梯度。
正则化

为了防止过拟合,线性回归模子可以参加正则化项,如岭回归(L2正则化)和Lasso回归(L1正则化):


  • 岭回归
                                                       Loss                                  =                                  MSE                                  +                                  λ                                               ∑                                                   j                                        =                                        1                                                  n                                                           β                                     j                                     2                                                      \text{Loss} = \text{MSE} + \lambda \sum_{j=1}^{n} \beta_j^2                           Loss=MSE+λj=1∑n​βj2​
  • Lasso回归
                                                       Loss                                  =                                  MSE                                  +                                  λ                                               ∑                                                   j                                        =                                        1                                                  n                                              ∣                                               β                                     j                                              ∣                                          \text{Loss} = \text{MSE} + \lambda \sum_{j=1}^{n} |\beta_j|                           Loss=MSE+λj=1∑n​∣βj​∣
此中 λ 是正则化强度参数。
应用

线性回归广泛应用于各种猜测任务,如房价猜测、股票价格分析、销售猜测等。尽管线性回归模子简单,但它提供了对数据关系的根本理解,而且可以作为更复杂模子的基准。
线性回归模子的实现和应用通常依赖于统计软件或机器学习库,如Python的scikit-learn库,它提供了简单而强大的接口来练习和评估线性回归模子。
末了先容一下sklearn库中的接口
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. w = np.linspace(-10,20,100)
  4. # print(w)
  5. def loss(w):
  6.      return (w-3.5)**2-4.5*w+10
  7. def dloss(w):
  8.     return 2*(w-3.5)-4.5
  9. plt.plot(w,loss(w)) # 当该直线与x轴相交,表示损失为0,拟合曲线与所有已知点重合,
  10. # 且该曲线无法出现小于0的值,因为该曲线是由均方误差算的
  11. # 梯度下降
  12. # 学习率
  13. learning_rate = 0.01
  14. # 初始化一个w值
  15. np.random.seed(1)
  16. w = np.random.randint(-10,20) # 随机给一个w值:-5
  17. e = loss(w) # 初始化的w为-5时的loss值
  18. x = [w]
  19. y = [e]
  20. # 用循环来多级下降
  21. for i in range(100):
  22.     w = w-learning_rate*dloss(w)
  23.     e = loss(w)
  24.     x.append(w)
  25.     y.append(e)
  26.    
  27. # 单次下降
  28. # # 第一次梯度下降
  29. # w = w-learning_rate*dloss(w)
  30. # e = loss(w)
  31. # x.append(w)
  32. # y.append(e)
  33. # # 第二次梯度下降
  34. # w = w-learning_rate*dloss(w)
  35. # e = loss(w)
  36. # x.append(w)
  37. # y.append(e)
  38. # # 第三次
  39. # w = w-learning_rate*dloss(w)
  40. # e = loss(w)
  41. # x.append(w)
  42. # y.append(e)
  43. plt.scatter(x,y)
  44. plt.show()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表