美文网首页
数据挖掘干货总结(七)-- LR回归算法

数据挖掘干货总结(七)-- LR回归算法

作者: ShaunXi | 来源:发表于2022-04-27 09:57 被阅读0次

    本文共计1234字,预计阅读时长八分钟


    回归算法

     

    回归的本质

    发现y和x的规律,以预测新情况下的y值

    回归算法的分类

    1. 线性回归(Linear Regression)

    1)一元线性回归

    • 输入

    一元自变量x,一元因变量y

    • 回归模型

    模型输出:y= wx + b

    模型参数:w, b

    • 损失函数

    对每个样本,预测值y' = wx + b, 误差:ε = y - y'

    损失函数,即最小化误差平方和:minΣε=minΣ(wx+b-y)

    令导数等于0,求出上式的w, b 即可

    2)多元线性回归

    • 输入

    自变量是一个向量x,因变量数值y

    • 回归模型

    模型输出:

    模型参数:w(向量)

    • 损失函数

    对每个样本,预测值y' = wx , 误差:ε = y - y'

    损失函数,即最小化误差平方和:

    令导数等于0,则 

    2. 非线性回归(none-Linear Regression)

    如果回归模型的因变量是自变量的非一次函数形式,回归规律在图形上表现为形态各异的各种曲线,称为非线性回归。下面主要介绍机器学习中常见的一种非线性回归——逻辑回归(Logistic Regression)

    • 输入

    自变量x,因变量y

    注:y不再是连续值,而是离散值{0,1}

    目标:根据特征x,预测发生概率p(y=1|x)和p(y=0|x),哪个概率大,y就取哪个值

    • 回归模型

    模型输出:此时不能再设y= wx,因为y只能为0或1,所以我们需要换个思路

    令:

    因为左右两边的值域都是 [0,+∞),左边的可以这么理解,

    那么,

    得到形似sigmoid的函数:

    故,将模型设为:

    模型的参数:w(向量)

    • 损失函数(本篇的精华)

    ① 因为模型的结果是两个概率,无法计算y的误差。关于概率的问题我们需要换个思路——最大似然估计当从模型总体随机抽取n组样本观测后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大。

    看不懂对吧?我的理解,就是通过后验概率求先验概率的原理

    一个袋子中有20个球,只有黑白两色,有放回的抽取十次,取出8个黑球和2个白球,计算袋子里有白球黑球各几个。那么我会认为我所抽出的这个样本是被抽取的事件中概率最大的。p(黑球=8)=p* (1-p), 让这个值最大。求导便得到p=0.8,即我们认为袋子中黑球占了80%。

    ② 最大似然对数似然

        因为在算法上幂和连乘不好处理(聚合函数里没有连乘,只有连加sum),我们可以加个对数,巧妙地避开了这个麻烦。

    对数似然负对数似然

    在机器学习需要迭代的算法中,都会有个损失函数,当损失函数小于某个值时,停止迭代,刚才的对数似然是在求最大值,此时加个负号就变成最小值。这样,又巧妙地满足了这个套路。

    注:这里负对数似然原则上不再叫损失函数,而是有另外一个专有名词——代理函数。

    ④ 梯度下降法求解

    为了计算得到这个负对数似然函数L(w)的最小值,需要借助梯度下降法

    我们可以模拟这样的一个过程:你来到一个盆地,刚好晚上起雾了,能见度很差,如果规定不能坐缆车,只能步行下山,想要尽快到达盆地底部,正常人都会遵循的三个原则:

    1.每次选择坡度最陡的方向前进(即梯度的反方向);

    2.越接近底部,步频会越小,否则很有可能错过最低点;

    3.连续走了几步发现在海拔上并没有太大的变化,基本就可以判断到达了盆地底部。

    所以梯度下降法的核心类似:

    1.设置初始w,计算L(w)

    2.计算梯度d = ▽L(w)

    得到下降方向选择:dir = -d

    3.调用line search得到下降后的w'和L(w')

    i) 设定初始步长c>0,容许度0<b<1,折半因子0<a<1

    ii) w' = w+c*dir, 计算得到L(w')

    4.迭代与停止条件

    i)  令w = w', L(w) = L(w'), c = a*c, 继续第2步;

    ii) 如果L(w') - L(w) < b*c,停止(为了避免死循环,设置一个迭代次数k,达到k次也可以停止)。



    (个人总结,欢迎指正)


    相关文章

      网友评论

          本文标题:数据挖掘干货总结(七)-- LR回归算法

          本文链接:https://www.haomeiwen.com/subject/jdvkyrtx.html