LR与Sigmod函数

        在使用LR时,经常用Sigmod函数来表示一个概率,为什么LR可以使用Sigmod函数呢?

        首先,LR的假设只有一个,就是两个类别的特征服从均值不等、方差相等的高斯分布。为什么假设它服从高斯分布?一方面,高斯分布容易理解;另一方面,从信息论的角度看,当均值和方差已知时,高斯分布是熵最大的分布。当熵分布最大时,可以平摊风险。就如二分查找法,每次都将中间作为查找点,目的就是为了平摊风险。

        自定义“风险”:

R(y=0|x) = \lambda _{00}P(y=0|x) + \lambda _{01}P(y=1|x)

R(y=1|x) = \lambda _{10}P(y=0|x) + \lambda _{11}P(y=1|x)

式中,R(y=0|x)表示样本预测为0的风险,R(y=1|x)表示样本预测为1的风险,\lambda _{ij}表示预测为i,实际为j所带来的风险。

        在LR算法中,它认为,预测正确不会带来风险,即\lambda _{00}\lambda _{11}都为0,另外,认为标签为0,而预测为1和认为标签为1,而预测为0,两者所带来的风险是一样的,所以\lambda _{01}\lambda _{10}统一用\lambda来表示。

        上面的“风险”化简为:

R(y=0|x) = \lambda P(y=1|x)

R(y=1|x) = \lambda P(y=0|x)

        对于某一个样本,应该根据风险最小化来预测其类别,即比较两个条件概率,并把样本分配到概率最大的那个类中。

如:\frac{P(y=1|x)}{P(y=0|x)}

将上式取对数,再利用朴素贝叶斯公式展开,得到:

lg{\frac{P(y=1|x)}{P(y=0|x)}}

= lg(\frac{P(x,y=1)}{P(x,y=0)})

= lg {\frac{P(x|y=1)P(y=1)}{P(x|y=0)P(y=0)}}

=lg{\frac{P(x|y=1)}{P(x|y=0)}} + lg {\frac{P(y=1)}{P(y=0)}}

由于P(y=1)P(y=0)是常数,可以用常数C_1代替,套入高斯公式,

lg{\frac{P(x|y=1)}{P(x|y=0)}} + lg {\frac{P(y=1)}{P(y=0)}}

= - \frac{(x-\mu _1)^2}{2\sigma ^2} + \frac{(x-\mu _0)^2}{2\sigma ^2} + C_1 = \frac{\mu _1 - \mu _2}{\sigma ^2}x + C_2 = wx

两边取指数,得到:

P(y=1|x) = \frac{1}{1+exp(-wx)}

        综上,LR算法可以使用Sigmod函数来进行计算分析。

posted @ 2019-09-28 08:23  KamShing  阅读(376)  评论(0编辑  收藏  举报