逻辑斯蒂回归(Logistic Regression)模型是广义线性模型的一种,属于线性分类模型。
对于图中所示的线性可分问题,需要找到一条直线,能够将两个不同类别区分开,这条直线称为超平面。
对于上述的超平面,可以使用如下的线性函数表示:
Wx+b=0
W为权重,b为偏置。如果是多维的情况,W和b为向量。
LR算法中,通过对训练样本的学习,得到这个超平面,将数据二分类。
使用阈值函数,将样本映射到不同的类别中,常用的是Sigmoid函数。
形式为:
从Sigmoid函数的图像可以看出,其值域为(0,1)
在 x=0 附近变化较大
在二分类问题中,为什么弃用传统的线性回归模型,改用逻辑斯蒂回归?
线性回归用于二分类时,首先想到下面这种形式,P是属于类别的概率:
P = Wx+b
P = w1x1+w2x2+...+wnxn+b
存在的问题:
1)等式两边的取值范围不同,右边是负无穷到正无穷,左边是[0,1],此分类模型的存在问题。
2)实际中的很多问题,都是当x很小或很大时,对于因变量P的影响很小,当x达到中间某个阈值时,影响很大。即实际中很多问题,概率P与自变量并不是直线关系。
Sigmoid函数能将分类任务的真实标记y和线性回归模型的预测值联系起来。
二分类输出的标记为
而线性回归模型产生的预测值 z = wTx+b 是实值。
我们需要将实值 z 转换为0/1值,所以可以考虑使用Sigmoid函数!
Sigmoid函数:
线性函数的值越接近正无穷,概率值就越接近1,线性函数的值越接近负无穷,概率值就越接近0,这就是逻辑斯蒂回归模型。
将式子变换为:
如果 y 视为样本 x 相对可能性,对几率取对数则得到“对数几率”。
由此看出,上式是用线性回归模型的预测结果去逼近真实标记的对数几率,所以模型称为“对数几率回归”(亦称 logit regression),虽然它的名字是“回归”,但它是一种分类学习方法。
LR回归是在线性回归模型的基础上,使用sigmoid函数,将线性模型 wTx+b 的结果压缩到[0,1] 之间,使其拥有概率意义。
如果将
式子中的 y 视为类后验概率 p(y = 1 | x),意思为在样本 x 条件下,类别为 1 的概率。
则上式可重写为:
又因为:P(Y=1 | x)= f(x),P(Y=1 | x)+ P(Y=0 | x)= 1
得:
参数W的确定:
给定训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}
其中 xiRn,yi {0,1},可以用极大似然估计法估计模型参数
设P(Y=1 | x)=f(x) , P(Y=0 | x)=1 - f(x)(概率相加为1)
似然函数:
yi个1类别,1-yi个0类别
对数似然函数为:
对L(w)求极大值,就能得到w的估计值。
采用L(w)对w求偏导,令其为0,求解出w
L(w)为上凸函数,上式乘以-1,变成下凸函数,就可以使用梯度下降来求最小值,乘1/N是为了方便计算:
令:
α:学习速率参数
用随机梯度下降法更新参数w:
j从1~N:
repeat:
对于每一次更新参数,不必遍历所有的训练集合,仅仅使用了一个数据,来变换一个参数。
在我们的应用中,如果需要作出分类的数据拥有很多有意义的特征,每个特征(我们假设这些特征都是有效的)都对最后的分类结果又或多或少的影响,那么最简单最有效的办法就是将这些特征线性加权,一起参与到作出决策的过程中。比如预测广告的点击率,又比如从原始数据集中筛选出符合某种要求的有用的子数据集。
逻辑斯蒂回归还有一个优点,那就是它不是硬性地将分类结果定为0或者1,而是给出了0和1之间的概率。这就相当于对每条数据的分类结果给出了一个打分。打分越高的数据越是我们想要的。如果我们要从一个数据集中筛选出一批数据(比如100个),就只要选出打分排名前100的数据就可以了。我们也可以根据实际情况设定一个阀值,大于这个阀值的归为一类,小于这个阀值的归为另一类。
这就是逻辑回归的算法原理部分~
【人工智能社群】已经成立,旨在打造真正有价值,能交流,一起学习成长的社群,并且每月送书不断!现备注城市+昵称+研究方向,扫码添加好友后立即进群。
▲长按扫码