• 机器学习之线性回归详解


    机器学习之线性回归详解

    线性回归的算法:
    在这里插入图片描述
    重点介绍梯度下降算法。
    评估模型好坏的方法:损失函数(lost function)
    最简单常见的损失函数:最小均方差(mse)
    公式如下:
    预测房价

    预测房价数据,假如模型y=1,最终的值60132无实际意义,但是在对比之下,值越小越好。最好的最小均方差是尽量接近0的,但是根据数据样本不同,不可能等于0

    假如预测房价,特征值是面积,目标值是房价,需要拟合出一条线,计算出权重m和b
    在这里插入图片描述
    步骤一:假设m=0,即y=b,则b为唯一的可调参数,利用最小均方差公式,计算出最小的最小均方差,在此过程中拟合出一个最优的参数b
    在这里插入图片描述
    在这里插入图片描述
    从上得知,“最优”的b值应该是mse=612对应的241附近,这样的话较为符合房价的价格。(这个过程需要一个一个地找最小mse对应的b,比较麻烦,并且图中给的b是从1开始找的,因为不确定b的值,一旦b的值为负值就麻烦了)
    为了能尽快并且准确地找到最合适的b,需要引入一个新概念:学习速率(learning rate)
    先看一组图:
    在这里插入图片描述

    需要找到最小的mse对应的b点 ⬆

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    不管b从何值开始取,都需要让计算机根据线的趋势动态地找到最小mse值,即求导数,
    在这里插入图片描述
    在这里插入图片描述
    根据上图,求出的导最小值是-8,对应着最小均方差,此时b=241
    尽管如此,此时的b仍是我们用肉眼观察到的最小值,并且b的变化和取值是我们人工加上去的f,计算机可理解不了,我们需要根据一些信号量来调整b的变化。
    假如曲线很陡峭的话,例如图b,斜率的值会负的很离谱,那接下来的预测点就是在曲线的右边而不是左边;如果是图a情况,斜率会很大,应该让b往左边偏移 ,也就是说如果斜率为负值,那么接下来的猜测点应该往右移,如果为正值,应该往左移,直到曲线趋于平缓,导数接近于0.

    上面我们提到了学习速率(learning rate),它可以根据mse对b的导数,最快地找到最合适的b,如果导数负的越大,那么它就应该变化的越多,如果导数越小,越接近于0,那么它应该变化的越小。
    学习速率是一个值,例如0.0001,学习速率是这样用的:本次的b=上一个b - 上一个导数 * 学习速率,如此循环迭代下去,可以很快的找到最接近0的导数对应的b 。

    如果学习速率越小的话,例如0.000001,那么b的值变化的越慢,如果学习速率越大的话,例如0.1、0.8,b值变化的越快。变化的越慢就代表要进行大量的迭代,计算量大,不过最终求出的b值会越精确;变化的越快计算量也相应少了很多,但是b值可能不是最好的那个。

    如下图:当学习速率为0.00001、0.001,0.01、0.1时:
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    当learning rate 为0.2时,b慢慢的趋近于245,导数慢慢的趋近于0
    在这里插入图片描述

    learning rate的值不能太大,否则b只会离正确的点越来越远

    为了简化模型,以上便是y=mx+b,(m=0)情况下,求可调参数也就是权重b的值。(这是一种极端情况,正常情况下m≠0)

    所以一般情况下我们要对m和b分别求导:
    在这里插入图片描述

    同理,得出:
    在这里插入图片描述

  • 相关阅读:
    LeetCode动态规划经典题(一)
    NX二次开发-C++使用IDA Pro反编译dll,追踪查看里面使用的UFUN API函数(三部曲1)
    ARM CoreSight相关模块简介
    LabVIEW应用开发——控件的使用(一)
    [SWPU2019]Web1
    TCP特性的滑动窗口,流量控制
    ceph文件系统
    1688代采系统:解决全球化采购难题的技术创新
    STM32单片机入门学习(六)-光敏传感器控制LED
    Mysql内置函数整理--高级函数
  • 原文地址:https://blog.csdn.net/weixin_44346972/article/details/125507847