逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。
其中,二元的分类问题是指判断标准只有两个值:0和1。标记为0的类叫做负类 (negative class),标记为1的类也叫做正类 (positive class)。举例来说, 0可能代表良性肿瘤,1可能标记一个恶性肿瘤。
问题是:什么样的算法可以进行分类?
我们那肿瘤分类进行说明。对于一个原始数据训练集,我们将线性回归用于这组数据,尝试用一条直线来拟合数据
线性模型可以预测连续值,而对于二元分类问题,我们可以假设:1. 当hθ大于等于0.5时,预测y=1;2. 当hθ小于0.5时,预测y=0。
对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。假使我们又观测到一个非常大尺寸的恶性肿瘤,也就是说在很远的右边那里将其作为实例加入到我们的训练集中来,这将使得我们获得一条新的直线。
这时,再使用0.5作为阀值来预测肿瘤是良性还是恶性便不合适了。可以看出,线性回归模型因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。
因此:逻辑回归模型的假设是:hθ(x)=g(θTX)我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在0和1之间。逻辑回归模型的假设是:
hθ(x)=g(θTX)
其中:
1. X代表特征向量
2. g代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数(Sigmoid function),公式为:
该函数的图像为:
从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0/1。这个性质使我们能够以概率的方式来解释。
一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单而合理。而逻辑回归模型所做的假设是:
这里的 g(h) 是上边提到的 sigmoid 函数,相应的决策函数为:
选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。
总结下:hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimatedprobablity),例如,如果对于给定的x,通过已经确定的参数计算得出hθ(x)=0.7,则表示有百分之70的概率y为正向类,相应地y为负向类的几率为1-0.7=0.3。
注意:这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。该结果往往用于和其他特征值加权求和,而非直接相乘。
那么逻辑回归与线性回归是什么关系呢?
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从 高斯分布。因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,算法就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。