一、定义
逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 注意,这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。例如:将一个样本输入到我们学习到的函数中,输出0.7,意思就是这个样本有70%的概率是正例,1-70%就是30%的概率为负例
logistic回归是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。
二、基本原理
再来传送门
逻辑回归相当于是线性回归和sigmoid函数的组合,首先介绍什么是sigmoid函数:
如图,sigmoid函数的因变量y取值为[0,1]。而逻辑回归就是将y=ax+b和sigmoid函数的1/(1+e-1)组合起来,如上图即是将其他函数的结果代入sig函数,从而得出[0,1]的区间结果。按照下图即是将第一个公式的z代入第二个公式的z,从而形成一个新的等式求解。
输出结果是样本预测为正例的概率(0到1之间的小数)。接下来第二个步骤:选定一个阈值。
例如当我选阈值为0.5,那么小于0.5的一定是负例,哪怕他是0.49。此时我们判断一个样本为负例一定是准确的吗?其实不一定,因为它还是有49%的概率为正例的。但是即便他是正例的概率为0.1,我们随机选择1w个样本来做预测,还是会有接近100个预测它是负例,误差都会存在的。所以我们选定阈值的时候就是在选择可以接受误差的程度。
sigmod函数预测结果为一个0到1之间的小数,选定阈值的第一反应,大多都是选0.5,其实实际工作中并不一定是0.5,阈值的设定往往是根据实际情况来判断的。假设此时我们的业务是做一个肿瘤的良性恶性判断,选定阈值为0.5就意味着如果一个患者得恶性肿瘤的概率为0.49,模型依旧认为他没有患恶性肿瘤,结果可能造成严重的医疗事故。此类情况我们应该将阈值设置的小一些,比如0.3,造成的结果就是这个人做一个全面检查,比起医疗事故来讲,这个更好。
三、优缺点
1、优点
(1)实现简单,广泛的应用于工业问题上
(2)分类时计算量非常小,速度很快,存储资源低
(3)便利的观测样本概率分数
(4)对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题
(5)计算代价不高,易于理解和实现
2、缺点
(1)当特征空间很大时,逻辑回归的性能不是很好
(2)容易欠拟合,一般准确度不太高
(3)不能很好地处理大量多类特征或变量
(4)只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分
(5)对于非线性特征,需要进行转换