0%

logistic回归

什么是logistic回归

logistic回归又叫做对数几率回归,它是基于线性模型的一种分类模型。那么如何用线性回归得到的输出进行分类任务呢?只需找一个单调可微的函数将分类任务的真实标记y与线性回归模型的预测值联系起来。单调可微的目的是为了方便模型的求解。

例如对于二分类任务,其输出标记$y \in {0, 1}$,而线性回归模型产生的预测值$z = wx + b$是实值,于是,我们需要将实值转换为0/1值。最理想的是单位阶跃函数:

即若预测值$z$大于0就判为正例,小于0则判为反例,预测值为临界值0则可任意判别

但是,单位阶跃函数不连续,所以直接使用单位阶跃函数的话,该分类模型则将很难求解。

由于不能使用阶跃函数,所有我们希望找到能在一定程度上近似单位阶跃函数的“替代函数”,并希望它单调可微。对数几率函数(logistic function)正是这样一个常用的替代函数:

阶跃函数和对数几率函数的图像为:

logistic

从上图可以看出,对数几率函数是一种”Sigmoid函数”(即形似S的函数),对率函数是Sigmoid函数中最重要的代表。

将线性模型和对数几率函数结合得到最后的logistic回归的模型:

logistic模型求解

logistic模型求解就是求出最优的$w$和$b$。然而这里不能直接使用求解线性回归的方法进行求解,即不能定义目标函数为$argmin{(w,b)}\sum{i=1}^{m}(wx_i+b - y_i)^2$。因为在这里,数据集中的y只能取0和1(对于二分类来说),如果仍然使用均方误差来作为损失函数的话,那么在这里均方误差函数将不再是一个凸函数,所以我们要寻求另外的目标函数。

logistic回归中的对率函数的实际输出其意义为:样本为正例(即$y=1$)的概率。例如对于某个样例$x$,在参数为$w,b$的条件下的输出为0.7,则表示该样例有0.7的概率为正例。相反如果输出为0.3,则表示该样例为正例的概率为0.3,即为反例的概率有0.7。

则由此即有:

于是,可通过极大似然法来估计$w$和$b$。给定数据集${(xi, y_i)}{i=1}^{m}$,其中$y_i \in {0,1}$,则可得极大似然函数为:

其中$p(y_i|x_i,w,b)$可改写为$y_ip(y=1|x_i,w,b) + (1-y_i)p(y=0 | x_i,w,b)$,则似然函数可写为:

由于似然函数法的思想就是求出使得得出当前结果的概率最大的参数,$l(w,b)$的意义其实就是在参数为$w$和$b$的条件下,取值为当前数据集的y的概率再取对数。由于对数函数和原函数具有相同的单调性,当对数函数取最大值时,原函数也去最大值。所以最后我们的目标函数即为:

注意是argmax

最大化(1)式,等价于:

公式(2)是最常用的形式。这个公式相当于在说当$y_i = 1$时,损失函数为$ln\frac{1}{1 + e^{-(wx+b)}}$,当$y_i = 0$时,损失函数为$1-ln\frac{1}{1 + e^{-(wx+b)}}$。接下里就是利用梯度下降法或者其他方法求解最优解即可了。

利用极大似然估计法寻找目标函数也是常用的一种方法

总结

logistic回归虽然它的名字是“回归”,但实际上却是一个分类学习方法。这种方法有很多特点,它是基于线性回归模型的,具有很好的解释性。同时它是直接对分类可能性进行建模,无需要事先假设数据分布,这样就避免了假设分布不准确所带来的问题。

它不仅是预测出类别,而是可得到近似概率预测。此外,对率函数是任意阶可导的凸函数。