分享 | 机器学习算法之逻辑回归 LR - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linglingk
V2EX    算法

分享 | 机器学习算法之逻辑回归 LR

  •  
  •   linglingk 2018-12-22 17:36:44 +08:00 991 次点击
    这是一个创建于 2564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pic

    逻辑回归又称 LR,是一种广义的线性回归分析模型,它是分类中极为常用的手段,因此,掌握其内在原理是非常必要的。

    • 什么是逻辑回归?

    逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,最后测试验证这个求解模型的好坏。

    逻辑回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。

    回归模型中,y 是一个定性变量,比如 y = 0 或 1,logistic 方法主要应用于研究某些事件发生的概率。

    • 逻辑回归过程

    假设有一个二分类问题,输出为 y 属于 {0,1},而线性回归模型产生的预测值为 z = w^T * x + b 是实数值,我们希望有一个理想的阶跃函数来帮我们实现 z 值到 0/1 值的转化:

    pic1

    然而该函数不连续,我们希望有一个单调可微的函数来供我们使用,这时我们就可以使用 Sigmoid 函数来代替:

    pic2

    sigmoid 函数图像如下:

    pic3

    使用了 Sigmoid 函数之后,由于其取值在 [0, 1] 之间,我们就可以将其视为类 1 的后验概率估计 p(y=1|x)。通俗的说,就是如果有了一个测试点 x,那么就可以用 Sigmoid 函数算出来的结果来当做该点 x 属于类别 1 的概率大小。于是,在分类的时候,当计算的结果大于 0.5 时,我们则以高概率将其归为 1 类,否则则归为 0 类。

    • 逻辑回归的代价函数

    知道了什么是逻辑回归后,我们就需要训练模型,找到模型对应的参数,这时候我们就需要把模型对应的代价函数定义出来,以优化此目标函数。

    这里如果我们像线性回归一样,利用误差的平方和来作为代价函数:

    pic4

    这里的 i 代表第 i 个样本,如果将 sigmoid 函数代入此代价函数里会发现这是目标函数是一个非凸函数,这就意味着代价函数有着许多的局部最小值,这不利于我们的求解:

    非凸函数与凸函数函数图像如下:

    pic5

    这时候我们可以使用最大似然法去计算代价函数。前面,我们提到了 sigmoid 函数可以视为类 1 的后验估计,所以我们有:

    pic6

    其中,p(y = 1 | x;w) 表示给定 w,那么样本 x 为类 1 的概率大小。因此有:

    pic7

    接下来使用极大似然估计来根据给定的训练集估计出参数 w:

    pic8

    为了让训练出来的模型很好,则对于已知的样本,对于类 1 的样本,则以高概率偏向 1 ( sigmoid 函数值大),对于类 0 的样本,则以高概率偏向 0 ( 1 - sigmoid 函数的值大),这样则表示 L(w) 的值应该尽可能的大。

    为了简化计算,我们对上面的等式两边取一个对数:

    pic9

    我们现在要求的是使得 j(w) 取得最大值时的 w。这时候我们在 l(w) 前面加个负号就变成取最小值,这就是我们最终的代价函数:

    pic10

    • 利用梯度下降法求解参数

    对于 sigmoid 函数有一个很重要的性质,下面的推导会利用此性质:

    pic11

    这里我们要明确一点,梯度的负方向就是代价函数下降最快的方向。这样我们就可以使用梯度下降求解参数 w:

    pic12

    对于每一个参数,则有:

    pic13

    所以,在使用梯度下降法更新权重时,只要根据下式即可:

    pic14

    此式与线性回归时更新权重用的式子极为相似,也许这也是逻辑回归要在后面加上回归两个字的原因吧。

    当然,在样本量极大的时候,每次更新权重会非常耗费时间,这时可以采用随机梯度下降法,这时每次迭代时需要将样本重新打乱,然后用下式不断更新权重。 如是去掉了求和,针对每个样本点都进行更新,即:

    pic15

    pic16

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1071 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:28 PVG 07:28 LAX 15:28 JFK 18:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86