注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。
在上一篇文章中介绍了线性回归,当然了,不难看得出线性回归的标记y是连续的,所以是比较适合做回归,但是对于分类问题的话不是很合适,以前我也有个误区,一直以为回归是样本的回归,后来才明白,其实回归是只参数的回归,如果各位也有这个误区,一定要查阅资料搞清楚这一点。
分类的问题y是离散的,也就是取固定的几个值而已,本文将会介绍一种很常用的并且很简单的分类算法Logistic回归。
首先我们要先了解sigmoid函数,sigmoid函数是可以将任何实数投射到[0,1]区间,从而方便我们做事情:
我们预测值代入进去:
对h(x)求偏导:
最终的结果还是满漂亮的,现在我们假定:
将求导结果代入:
其中倒第二步,是求所有样本的联合概率,我们对其取对数求对数似然:
对θ求导:
从结果看,我们会发现和线性回归的求到结果一样,Logistic回归参数学习过程:
当然了,既然是梯度下降,我们可以选择BGD、SGD、mini-batch GD来做,我在线性回归一文中介绍过。
我们不妨求一下事件发生的几率(发生的概率与不发生的比值):
由此我们可以看得出,之所以把Logistic也划归为线性回归,是因为Logistic是对数线性模型。
当然了,我们也可以写一下Logistic的损失函数,得到对数似然:
进一步推导:
进一步推导,得到NLL(负对数似然):
当然了,有的教材上y的取值为{-1,1},那么损失函数会有一些变化,但是思路是一样的,就不赘述了。
我们可以将Logistic推广到多分类,也就是Softmax回归。
假设第k类的参数为θk,组成二维矩阵θk×n,概率可以如下表示:
似然函数和对数似然:
随机梯度:
线性回归总结:
Logistic/Softmax回归是实践中十分常用的方法,优点是:简单、易于实现、效果好、易于解释。不仅可以做分类,还可以做推荐系统。
到此,线性回归已经介绍完了,欢迎批评指教!