logistic回归
logistic回归实际上并不是一种回归算法,而是一种分类算法,意思就是输出值是离散值(01或者更多类),而它叫这个名字完全是历史原因。我们可以从下图看出对于分类问题,如果我们采用传统的回归算法并不能获得很好的效果
假设称述
由于输出的值是0和1,因此我们很自然想到将假设函数的值映射到0-1之间,我们又sigmoid函数恰好能够很好的解决这个问题。也就是说我们将回归方法的假设函数作为sigmoid函数的输入
我们的假设函数的值实际上就是输出值取1的概率值
决策界限
对于这个假设函数我们同样需要一个决策界限(decision boundary)来判决输出的值,而这个值就是0.5
通过以下这个例子我们可以直观地理解这是什么意思
我们也可以通过多项式来模拟非线性的边界
代价函数
如果我们直接将应用回归方法的代价函数,那我们将会得到一个非凸的代价函数,很显然这种函数是我们非常不希望得到的,因此在此方法下利用梯度下降法将会收敛至局部最小值
由此我们提出了logistic回归的代价函数,我们可以证明这个函数是凸函数,并且这个函数很好地拟合了我们需要的性质
我们还可以对以上形式进行简化
梯度下降法
在我们对其应用梯度下降法的时候我们可以算出logistic回归的代价函数的偏导数与线性回归的情况非常相似,但是不同的是logistic回归的假设函数是不一样的,因此二者并不是同一个东西
高级优化
对于logistic回归,我们不仅有梯度下降法,我们还存在一些高级优化(advanced optimization)优化,这些方法更加复杂,但是能取得的效果更好
这些优化方法都集成在matlab中,一般我们只需要编写代价函数与代价函数偏导数的计算函数,再将其赋给fminunc函数即可进行优化
多元分类
上面我们主要讨论了二元的情况,即输出值只有0和1。实际上对于多元的情况也是类似的,我们只需要将多元看作多个二元情况的组合,再看哪个分类情况的假设函数输出最大即可得到最终结果