一、简介
逻辑回归(Logistic Regression),简称LR,是一种十分简单,又十分好用的二分类算法。
既然是二分类算法,你可能在想能研究多分类问题呢?答案当然是可以,比如要分为A、B、C三类,可以首先分为A类和非A类(二分类),然后对非A类(B和C类)进行分类,这就解决了多分类问题。整理不易,还望点个赞,谢谢
二、区别
逻辑回归虽然和线性回归一样,都带有“回归”字段,可是线性回归是做回归预测,而逻辑回归是做分类的算法。例如,线性回归可以探索房价和房屋面积的关系;而逻辑回归可以将邮件分类为垃圾邮件和非垃圾邮件。
三、求解步骤
逻辑回归的求解步骤可以分为以下三步:
1.预测函数:选择预测函数,对值属于哪一类进行预测;
2.损失函数:通过损失函数的选择,来判断预测值和真实值之间的差别大小;
3.梯度下降:最后通过梯度下降法来对损失函数中的参数进行求解。
四、预测函数
前面我们分享过线性回归的原理,那我们是否能过通过线性回归来进行分类呢?答案是可以的,比如,我们将线性回归的预测值大于某个值则定为A类,小于某个值则定位B类。那为什么不这样用呢?因为线性回归对异常值十分敏感。
例如下面这个网友分享的例子:客户的收入和发生债务违约的情况,正常理想是下图。
而当出现一个异常值之后,如下图:
你会发现仅仅是因为一个异常值的出现,导致整个预测出现了新的结果。为了避免这种情况,我们就需要找到一个合适的预测函数。
怎么改进呢?首先需要知道一个问题,怎么用连续值去预测离散标签?
这里有两个方法:
(1)刚刚提到的,假设如果预测值大于某个阈值(比如0),设置标签为A类,否则为B类,这种方法就是机器学习中常见的感知机。
(2)第二个方法就是我们不直接去预测标签A,而是预测标签A发生的概率,如果概率大于0.5,则认为属于A类,否则属于B类。这就是逻辑回归的原理了。
线性函数的问题在于,其预测值y的区域为 ( − ∞ , + ∞ ) (-∞,+∞) (−∞,+∞),而概率需要在0到1之间,所以我们可以找和函数将预测函数值得区间进行有效的转换。很幸运,Sigmoid函数刚好可以实现这个需求,Sigmoid函数当x趋近+∞时,y趋近于1,当x趋近于-∞时,y趋近于0。
Sigmoid函数:
决策边界
在确定预测函数之前,要先确定决策边界,决策边界包括线性决策边界和非线性决策边界。如下图所示:
本文以线性决策边界继续展开:
将其套入sigmoid函数,将区间映射至0到1之间得到:
五、损失函数
损失函数是用来衡量真实值和预测值之间的差别的。这里通过两种方法得到最终的损失函数,虽然实现过程思想不一样,但是最终结果是一样的。
1.首先通过概率来推导损失函数
假设只有两个标签1和0,即 y n ∈ y_n∈ yn∈{0,1}。假设将任意一个样本当作一个事件的话,事件发生的概率为p,这里假设模型y的值为等于标签1的概率。即:
P y = 1 = 1 1 + e − θ T x = p P_{y=1}=\frac{1}{1+e^{-\theta^Tx}}=p Py=1=1+e−θTx1=p
这里是二分类问题,由于y为1的概率为p,因此y为0的概率为(1-p),即这个样本发生的概率为:
p ( y ∣ x ) = { p , if y=1 1