天池机器学习训练营-task1-基于逻辑回归的分类预测笔记
一 逻辑回归的介绍
1.1 逻辑回归的介绍
逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。
而对于逻辑回归而且,最为突出的两点就是其模型简单和可解释性强。
逻辑回归模型的优劣势:
- 优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
- 缺点:容易欠拟合,分类精度可能不高
1.1 逻辑回归的应用
逻辑回归模型广泛用于各个领域,包括机器学习,大多数医学领域和社会科学。例如,最初由Boyd 等人开发的创伤和损伤严重度评分(TRISS)被广泛用于预测受伤患者的死亡率,使用逻辑回归 基于观察到的患者特征(年龄,性别,体重指数,各种血液检查的结果等)分析预测发生特定疾病(例如糖尿病,冠心病)的风险。逻辑回归模型也用于预测在给定的过程中,系统或产品的故障的可能性。还用于市场营销应用程序,例如预测客户购买产品或中止订购的倾向等。在经济学中它可以用来预测一个人选择进入劳动力市场的可能性,而商业应用则可以用来预测房主拖欠抵押贷款的可能性。条件随机字段是逻辑回归到顺序数据的扩展,用于自然语言处理。
逻辑回归模型现在同样是很多分类算法的基础组件,比如 分类任务中基于GBDT算法+LR逻辑回归实现的信用卡交易反欺诈,CTR(点击通过率)预估等,其好处在于输出值自然地落在0到1之间,并且有概率意义。模型清晰,有对应的概率学理论基础。它拟合出来的参数就代表了每一个特征(feature)对结果的影响。也是一个理解数据的好工具。但同时由于其本质上是一个线性的分类器,所以不能应对较为复杂的数据情况。很多时候我们也会拿逻辑回归模型去做一些任务尝试的基线(基础水平)。
二 逻辑回归的原理
1.1 Sigmoid函数
逻辑回归是建立在Sigmoid函数和自变量的线性回归模型之上(这可能也是为什么带有"回归"二字的原因),Sigmoid函数的函数形式为:
l o g i ( z ) = 1 1 + e − z logi(z)=\frac{1}{1+e^{-z}} logi(z)=1+e−z1
其对应的函数图像可以表示如下:
通过上图我们可以发现Sigmoid函数是单调递增函数,并且在z=0的时候取值为0.5,Sigmoid函数的取值范围为 ( 0 , 1 ) (0,1) (0,1)。
而回归的基本方程为 z = θ 0 + ∑ i N θ i x i z=\theta_0+\sum_i^N \theta_ix_i z=θ0+∑iNθixi,
将回归方程写入其中为:
p = p ( y = 1 ∣ x , θ ) = h θ ( x , θ ) = 1 1 + e − ( θ 0 + ∑ i N θ i x i ) p = p(y=1|x,\theta) = h_\theta(x,\theta)=\frac{1}{1+e^{-(\theta_0+\sum_i^N \theta_ix_i)}} p=p(y=1∣x,θ)=hθ(x,θ)=1+e−(θ0+∑iNθixi)1
所以,
p ( y = 1 ∣ x , θ ) = h θ ( x , θ ) p(y=1|x,\theta) = h_\theta(x,\theta) p(y=1∣x,θ)=hθ(x,θ),而
p ( y = 0 ∣ x , θ ) = 1 − h θ ( x , θ ) p(y=0|x,\theta) = 1-h_\theta(x,\theta) p(y=0∣x,θ)=1−hθ(x,θ)
逻辑回归从其原理上来说,逻辑回归其实是实现了一个决策边界:对于函数 y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+e−z1,当 z = > 0 z=>0 z=>0时, y = > 0.5 y=>0.5 y=>0.5, 分类为1,当 z < 0 z<0 z<0时, y < 0.5 y<0.5 y<0.5, 分类为0,其对应的 y y y值我们可以视为类别1的概率预测值.
对于模型的训练而言:实质上来说就是利用数据求解出对应的模型的特定的 w w w。从而得到一个针对于当前数据的特征逻辑回归模型。
而对于多分类而言,将多个二分类的逻辑回归组合,即可实现多分类。
扩展: 为什么逻辑回归要使用sigmoid函数?
关于逻辑回归, 大多数教程上基本都是直接给出了Sigmoid函数表达式和其中z的线性回归函数 z = θ 0 + ∑ i N θ i x i z=\theta_0+\sum_i^N \theta_ix_i z=θ0+∑iNθixi, 但却很少解释为什么, 为什么从刚开始就定义了
p ( y = 1 ∣ x , θ ) = h θ ( x , θ ) = 1 1 + e − θ T X = 1 1 + e − ( ∑ i N θ i x i + b ) p(y=1|x,\theta) = h_\theta(x,\theta)=\frac{1}{1+e^{-\theta^TX}}=\frac{1}{1+e^{-(\sum_i^N \theta_ix_i + b)}} p(y=1∣x,θ)=hθ(x,θ)=1+e−θTX1=1+e−(∑iNθixi+b)1
如果仅仅是为了将 X X X的线性回归结果 θ T X \theta^TX θTX从实数域通过逻辑回归模型映射到(0,1)的概率区间,应该有很多可以归一化的函数,为什么选了Sigmoid函数来做概率转换呢?
其实,
Sigmoid是推导出来的,不是假设出来的, LR的假设是两个类服从均值不等,方差相等的高斯分布,然后通过贝叶斯决策推导
为了解决这个问题,需要从Logistic Regression(下面简称LR)的推导说起,为了方便起见,这里只讨论二分类的情况。首先,LR的假设只有一个,就是两个类别的特征服从均值不等,方差相等的高斯分布,也就是
p ( x ∣ y = 0 ) ∼ N ( μ 0 , σ ) p(x|y = 0) \sim N(\mu_0, \sigma) p(x∣y=0)∼N(μ0,σ) p ( x ∣ y = 1 ) ∼ N ( μ