机器学习算法(一): 基于逻辑回归的分类预测
0. 前言
0.1 逻辑回归介绍
逻辑回归(Logistic regression/LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。
而对于逻辑回归而言,最为突出的两点就是其模型简单和模型的可解释性强。
逻辑回归模型的优劣势:
优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
缺点:容易欠拟合,分类精度可能不高
0.2 逻辑回归应用
- 医学:由Boyd 等人开发的创伤和损伤严重度评分(TRISS)被广泛用于预测受伤患者的死亡率,使用逻辑回归基于观察到的患者特征(年龄,性别,体重指数,各种血液检查的结果等)分析预测发生特定疾病(例如糖尿病,冠心病)的风险。
- 市场营销:预测客户购买产品或中止订购的倾向
- 经济学:预测一个人选择进入劳动力市场的可能性
- 商业:预测房主拖欠抵押贷款的可能性
- 其他:预测在给定的过程中,系统或产品的故障的可能性
- NLP:条件随机字段是逻辑回归到顺序数据的扩展,用于自然语言处理。
逻辑回归模型现在同样是很多分类算法的基础组件,比如 分类任务中基于GBDT算法+LR逻辑回归实现的信用卡交易反欺诈,CTR(点击通过率)预估等,其好处在于输出值自然地落在0到1之间,并且有概率意义。模型清晰,有对应的概率学理论基础。它拟合出来的参数就代表了每一个特征(feature)对结果的影响。也是一个理解数据的好工具。但同时由于其本质上是一个线性的分类器,所以不能应对较为复杂的数据情况。很多时候我们也会拿逻辑回归模型去做一些任务尝试的基线(基础水平)。
0.3 逻辑回归原理
当z≥0 时,y≥0.5,分类为1,当 z<0时,y<0.5,分类为0,其对应的y值我们可以视为类别1的概率预测值。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
σ ( z ) = 1 1 + e − z . \sigma(z) =\frac{1}{1+e^{-z}}. σ(z)=1+e−z1.
对应的函数图像可以表示如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5,5,0.01)
y = 1/(1+np.exp(-x))
plt.plot(x,y)
plt.xlabel('z')
plt.ylabel('y')
plt.grid()
plt.show()
通过上图我们可以发现 Logistic 函数是单调递增函数,并且在z=0
而回归的基本方程,
将回归方程写入其中为:
所以,
p ( y = 1 ∣ x , θ ) = h θ ( x , θ ) , p ( y = 0 ∣ x , θ ) = 1 − h θ ( x , θ ) p(y=1|x,\theta)=h_\theta(x, \theta), p(y=0|x, \theta)=1-h_\theta(x, \theta) p(y=1∣x,θ)=hθ(x,θ),p(y=0∣x,θ)=1−hθ(x,θ)
逻辑回归从其原理上来说,逻辑回归其实是实现了一个决策边界:对于函数 y = 1 1 + e − z y =\frac{1}{1+e^{-z}} y=