目录
逻辑回归算法梳理
一、逻辑回归与线性回归的联系与区别
1.1 联系
逻辑回归于线性回归实际上有很多相似之处,它们都属于一个族群,即广义线性模型。
这一模型中的形式基本差不多,基于模型中数据的特征进行建模,所解决的问题均以数据为导向的连续或者分类的结果。逻辑回归的第一步建立的模型其实就是线性回归模型,之后在这个基础上通过一个sigmoid函数将结果映射到 {0,1}区间内。
1.2 区别
1.2.1 线性回归
线性回归解决的是连续值预测的问题,利用数理统计中回归分析,确定两个或者以上变量间相互依赖的定量关系的一种统计分析方法。
一元线性回归分析表达式: y = ax + b,只包含一个因变量和自变量,二者的关系可以近似的用一条直线表示
多元线性回归分析: h(x) = c1x1 + c2x2 + … + cnxn,包括两个或以上的因变量,并且因变量和自变量是线性关系。
下图可展示多元线性回归在解决问题上面优化的曲线
1.2.2 逻辑回归
与线性回归不同的是,逻辑回归主要解决分类的问题。
举个例子,恶性肿瘤与良性肿瘤的判断。假如用线性回归来解决,那么这条直线会变成这样:
在离散点增加的时候,此线就会偏移。
而逻辑回归作为分类问题如下:
我们可以清晰的从图中判断出两个模型的好坏,明显在分类问题上逻辑回归做出的预测优于比线性回归。而这个区别主要是因为在于Sigmoid函数,将任意输入映射到了[0, 1]区间。
1.3 逻辑回归损失函数
1.3.1 定义
逻辑回归一般使用交叉熵作为损失函数,我们先给出公式:
J
(
θ
)
=
−
1
m
[
∑
i
=
1
m
(
y
(
i
)
log
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta) = -\frac{ 1 }{ m }[\sum_{ i=1 }^{ m } ({y^{(i)} \log h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1-h_\theta(x^{(i)})})]
J(θ)=−m1[i=1∑m(y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
首先解释一下损失函数的定义:
1)假设有训练样本(x, y),模型为h, 参数为θ。h(θ) = θTx (θT表示θ的转置)。简单来说,任何能够衡量模型预测出来的预测值与真实值y之间的差异的函数都可以叫做损失函数,因此得出:
- 损失函数不唯一
- 损失函数是θ的函数
- 多个样本的损失函数J(θ)取值求均值,可以用来衡量模型好坏,损失函数越小说明模型和参数越符合训练样本,当然还要注意过拟合的问题。
- J(θ) 是一个标量
2)当我们确定模型h,那么要做的事情就是训练模型参数θ,基于损失函数的存在,我们的过程就是寻找一个使损失函数J取最小值
3)而在优化过程中,最常用的就是梯度下降法
1.3.2 交叉熵
在逻辑回归中,最常用的损失函数就是交叉熵。
此处参考:交叉熵详解
1.4 优缺点
优点:
- 适合解决多分类问题,尤其是二分类
- 计算代价不高,容易实现
- 对于噪声的鲁棒性很好
缺点:
- 容易欠拟合,分类精度不高
- 特征工程做的不好的时候表现效果不好
1. 5 样本不均衡解决方法
- 正则化惩罚
- 使用多分类分类器
- 将不平衡的二分类问题转换为异常点检测
- 改变正负样本在模型中的权重,相当于对于交叉熵来说,通过修改在某一个阙值判断正负样本在改进模型
- 对模型进行交叉验证和对数据进行混淆矩阵对稀有样本扩充
二、正则化与模型评估
正则化是结构风险最小化策略的实现,实在经验风险上加上一个正则项或惩罚项以避免过拟合。
2.1 正则化常见策略
2.1.1 L1正则化
l1正则化也成为Lasso回归,在原始的损失函数后面加一个L1正则化项,所有权重 w w w的绝对值之和,乘以 λ n \frac{λ}{n} nλ
l2正则化也成为权重衰减,是所有参数 w w w的平方的和,除以训练集样本大小n
2.2 评估指标
2.2.1 混淆矩阵
混淆矩阵是监督学习中可视化工具,用于比较分类结果和实例的真实信息。表中每一行表示实例的预测类别,每一列表示实例的真是类别
真正(True Positive , TP):被模型预测为正的正样本。
假正(False Positive , FP):被模型预测为正的负样本。
假负(False Negative , FN):被模型预测为负的正样本。
真负(True Negative , TN):被模型预测为负的负样本。
真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2
一般而言都是计算准确率来评估指标,更深的目前还接触不到,就不过多介绍了。
参考的是:模型评估参考