zoukankan      html  css  js  c++  java
  • 机器学习算法之线性回归

    1 线性回归的模型

      线性回归的模型十分的简单,就是对回归问题中每一个特征X乘以一个系数,使其拟合到输出Y,线性回归模型就是找到这样一组系数。

      线性回归的模型如下:

      其中x是数据的特征,是一个d维的列向量,是权重系数,也是一个d维的列向量,y是模型的输出

    2 线性回归的损失函数

      在做回归问题的时候,模型的预测输出值和真实值总是存在一个误差,误差满足均值为0,标准差为的高斯分布,则线性归回的模型变为

      其中

      由于满足高斯分布,则其概率密度函数为:

      将带入上式密度函数中,得到:

      上式即为似然函数,为了使模型更好的拟合数据集,需要最大化似然函数:

      其中N使数据集的个数。

      为了计算方便,对上式取对数:

      

      其中const是一个常数,则最大化上式可等价于下式:

      

      则定义线性回归的损失函数为:

    3 优化线性回归模型

      由上一节得到线性归回的损失函数为:

      需要优化的问题是:找到一组,使上式的损失函数最小,即对损失函数求导:

      则参数 可通过迭代求解:

      

     

       其中为学习率。

      上式的迭代算法是批量梯度下降算法(BGD),每更新一次,需要计算所有样本上的梯度的平均值。

      下面是随机梯度下降(SGD),每更新一次,只是从样本数据中随机挑选一个样本来计算梯度值:

      最后一个为小批量随机梯度下降(Mini-Batch GD),每更新一次,从所有样本中随机挑选一批样本来计算这一批的梯度的平均值:

      其中Nk为小批量的个数。

    4 张量视角

                                                                           

      其中X为样本,n为样本的个数,d为样本的特征个数,即每一行为一个样本。是模型的参数,是一个d维的列向量。y是样本的标签,是一个n维的列向量。

      则,线性回归模型的矩阵形式为:

      线性回归的损失函数的矩阵形式为:

      上式对向量求梯度,即矩阵对向量求梯度,需要以下矩阵对向量的知识才能得出:

      则可求出J对的梯度为:

      让上式子等于零,可求出最优的参数

    5 线性回归模型的正则化

      线性回归模型的正则化可解决两个问题:

      1 可以解决模型的过拟合问题

      2 若奇异,即不可逆,则上节用最小二乘法就求不出解,加入正则化项则可解决这一问题

      加入L2正则化项的损失函数:

      

      求梯度:

      求解:

     

     

     

     

     

     

     

     

     

     

     

      

     

  • 相关阅读:
    关于MySQL中的TRUNCATE语句
    关于在如何linux上部署禅道
    关于Python中的for...else...语句格式
    关于python中身份标识"is"与值运算符"=="
    Vite Vue3.0 使用 SVG Icon (自定义Vite插件)
    Python 远程开发树莓派 点亮LED灯
    Vue 基于elementUI的电梯导航
    JavaScript 原生数字千分位格式化函数(多功能的toLocaleString)
    JavaScript IntersectionObserver 图片懒加载及文字动态划线
    JavaScript await 优雅的捕获异常
  • 原文地址:https://www.cnblogs.com/swenwen/p/11220539.html
Copyright © 2011-2022 走看看