![080265ae4626645154349dfd3aaa217a.png](https://i-blog.csdnimg.cn/blog_migrate/370d46505acf7b37dbb359896f7640f6.jpeg)
逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法,属于对数线性模型,即可以认为是被Sigmoid函数所归一化后的线性回归模型!
根本思想:逻辑斯谛回归的求解最后就是计算交叉熵,而交叉熵就是最大化极大似然函数,通常采用的优化方法是随机梯度下降。
先给出《统计学习方法》里的内容:
![b1b308157be4abde316c272f7acc6b9c.png](https://i-blog.csdnimg.cn/blog_migrate/6d7037106d1a65f2b4a30f9b47856f91.jpeg)
但我更喜欢李宏毅老师的版本,更加通俗易懂。根据李宏毅老师的课件,机器学习的算法都可以分为三个部分:
Step1:Function Set
![09c483c36e9b2197733c628693de8f88.png](https://i-blog.csdnimg.cn/blog_migrate/6fc4fa2f66bbae096895fc96e3240290.jpeg)
(由于公式不能输入,我只能贴图片了~~~,编辑了好久的公式)
![89628553d2871604e0cfc8c92f10845a.png](https://i-blog.csdnimg.cn/blog_migrate/1256e1a78aa72925f5256172cb5deb04.jpeg)
(是不是很像神经元。哈哈)
![a50d7058e507796e3aad1842da05e07b.png](https://i-blog.csdnimg.cn/blog_migrate/69e1c6d816462f7e535a5273770bc9c3.jpeg)
具体的公式推导如下:
![c0620f866e033fc84f910ff1ebb18253.png](https://i-blog.csdnimg.cn/blog_migrate/445a7edfc0025a79fd217ff8d8da715d.jpeg)
Step 2:判断一个函数的好坏
有了函数集后,我们的下一步目标就是判断一个函数的好坏!这个时候就需要一个训练集(train data)。假想这个训练集是由我们定义的概率生成模型所产生的,每一个X都有一个所属的类别C1或者C2,如下所示。
![1e9d76d931643ae9ee0244c0c28c272e.png](https://i-blog.csdnimg.cn/blog_migrate/90a43e68e123fc0ed067033a650029f9.jpeg)
给定一组w,b,其对应的概率生成模型就确定了,产生的训练集也相对应确定了。要产生上述的训练集,它的机率就通过下面这个公式计算:
![22caed9afbb0914309cd4e401ecacb10.png](https://i-blog.csdnimg.cn/blog_migrate/33fdcc11102bc3215a0df333f46226d0.jpeg)
![646b771ed9f9eabd2c56e565775469d0.png](https://i-blog.csdnimg.cn/blog_migrate/6e3340ddf449ae7d59d120fad8b68bbf.jpeg)
下面需要做一个数学的转换推导,详细内容如下:
![0c6e2157c3af1fc2986568fe3ac631e8.png](https://i-blog.csdnimg.cn/blog_migrate/844e028b6bd533540122fa371d358c05.jpeg)
Step 3:找到最好的function
当我们有了优化目标后,最后一步就是去找最好的function,优化方法自然是随机梯度下降。下面给出梯度的推导过程:
![469a869cfc20281b44acfda8f10403b6.png](https://i-blog.csdnimg.cn/blog_migrate/0995fa0c985f06419d8fa673092415db.jpeg)
根据随机梯度下降法,找到最好的参数。在这里,为了方便,将参数向量和输入向量加以扩充,仍然记作w,x,即w=(w(1),w(2),…,w(n),b)T,x=(x(1),x(2),…,x(n),1)T。
我在学习的时候是李宏毅老师的课程和《统计学习方法》一起学的,结果发现里面的公式居然不一样,心想:我擦,居然有2个不同的结果,也是难受。后来细想才发现,原来二者是一个东西,只是表达的方式不一样(我在怀疑是不是老师也需要查重,哈哈。所以才学我们论文查重时,一样的结果用不同的方式来表达)。
![7f07e0953c8652970b06eb4691d778a8.png](https://i-blog.csdnimg.cn/blog_migrate/e3a8f9525750f21ff597149318eb30ad.jpeg)
这两个公式,我都跑过程序,结果是一样的。
上面都是二分类的问题,对应到多分类其实也一样,李宏毅老师的课件上的例子非常好理解,这里直接贴出来给大家分享。用的是softmax函数算出的概率作为分类的标准,谁的概率大,就属于哪一类。
![afb1c44278bc6b1d0c648a6cb4bb3aca.png](https://i-blog.csdnimg.cn/blog_migrate/4bf1518e2400ff924e6dcd452095023a.jpeg)
![63b210e444a680df8a422f57fe843678.png](https://i-blog.csdnimg.cn/blog_migrate/23f8796dd64801b48b7e9863b7b3bf8d.jpeg)
下面是一个小的总结,也是逻辑斯谛回归的本质:逻辑斯谛回归的求解最后就是计算交叉熵,而交叉熵就是最大化极大似然函数,通常采用的优化方法是随机梯度下降。
![0f915a0eec2f9befa6252c99f84e9bf9.png](https://i-blog.csdnimg.cn/blog_migrate/8373be81e8d1142b3912af17556cb50d.jpeg)
这里也贴出代码,仅供参考!
![4c763057c3a679ecfdc4cc2165e18e2c.png](https://i-blog.csdnimg.cn/blog_migrate/595d4235b6b23f649f9aa42c332ea36e.jpeg)
![16c91a598b738c4401c795bfd91165c0.png](https://i-blog.csdnimg.cn/blog_migrate/32e420193428c798a89a71e33f040693.jpeg)
![4ba79d090fbec1131c03e594941aafa7.png](https://i-blog.csdnimg.cn/blog_migrate/7ecade6269cec4213c599be6b422ed37.jpeg)
![c44fdefbb4f09ea734cbf6ac3d25f3b5.png](https://i-blog.csdnimg.cn/blog_migrate/a279b757f3a44e2394f7f736d082086a.jpeg)
![8ccf98a757433ba7b999ca5776da434d.png](https://i-blog.csdnimg.cn/blog_migrate/42f02171045057c2ca72e13b23ae17a3.jpeg)
如有错误或者表述不当的地方,请大家一定指出来,相互学习,相互进步。
结束!(当然,点关注一波也是可以的。)
![dd16903bdcbbed337d06641c4f7e3cd5.png](https://i-blog.csdnimg.cn/blog_migrate/477cc91af6fce301da5554467db84d69.jpeg)