逻辑回归算法推导及Python实现

写在前面:

1、好多逻辑回归的算法推导要么直接省略,要么写的比较难以看懂,比如写成矩阵求导,繁难难懂,本文进行推导,会链式求导法则应当就能看懂

2、本文参考若干文章,写在附注处,如果参考未写引用,还望提出

2、本文后续可能不定时更新,如有错误,欢迎提出

一、最大似然估计(附1)

Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数。

  • 优点:计算代价不高,易于理解和实现。
  • 缺点:容易欠拟合,分类精度可能不高。
  • 使用数据类型:数值型和标称型数据

介绍逻辑回归之前,我们先看一问题,有个黑箱,里面有白球和黑球,如何判断它们的比例。

我们从里面抓3个球,2个黑球,1个白球。这时候,有人就直接得出了黑球67%,白球占比33%。这个时候,其实这个人使用了最大似然概率的思想,通俗来讲,当黑球是67%的占比的时候,我们抓3个球,出现2黑1白的概率最大。我们直接用公式来说明。

假设黑球占比为P,白球为1-P。于是我们要求解MAX(P*P*(1-P)),显而易见P=67%(求解方法:对方程求导,使导数为0的P值即为最优解)

我们看逻辑回归,解决的是二分类问题,是不是和上面黑球白球问题很像,是的,逻辑回归也是最大似然概率来求解。

假设我们有n个独立的训练样本{(x1, y1) ,(x2, y2),…, (xn, yn)},y={0, 1}。那每一个观察到的样本(xi, yi)出现的概率是: 

è¿éåå¾çæè¿°
 
上面为什么是这样呢?当y=1的时候,后面那一项是不是没有了,那就只剩下x属于1类的概率,当y=0的时候,第一项是不是没有了,那就只剩下后面那个x属于0的概率(1减去x属于1的概率)。所以不管y是0还是1,上面得到的数,都是(x, y)出现的概率。那我们的整个样本集,也就是n个独立的样本出现的似然函数为(因为每个样本都是独立的,所以n个样本出现的概率就是他们各自出现的概率相乘): 

è¿éåå¾çæè¿°

如上,根据最大似然估计我们得到了似然函数,上述这一段主要是要理解极大似然估计的思想。

附录2:

这样,在给定一定的样本之后,我们可以构造出似然函数,然后可以使用极大似然估计MLE的思想来求解参数。

但是,为了满足最小化风险理论,我们可以将MLE的思想转化为最小化风险化理论,最大化似然函数其实就等价于最小化负的似然函数。

对于MLE,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说是什么样的参数才能使我们观测到目前这组数据的概率最大。

二、算法推导过程:

分析:

三、程序源码

附1:

最大似然、代码
作者:a_achengsong 
来源:CSDN 
原文:https://blog.csdn.net/csqazwsxedc/article/details/69690655 
版权声明:本文为博主原创文章,转载请附上博文链接!

附录2:

算法推导
作者:jediael_lu 
来源:CSDN 
原文:https://blog.csdn.net/jediael_lu/article/details/77852060 
版权声明:本文为博主原创文章,转载请附上博文链接!

附录3:

猜你喜欢

转载自blog.csdn.net/bailixuance/article/details/83347001