逻辑回归和线性回归的区别
1)线性回归要求变量服从正态分布,logistic回归对变量分布没有要求。
2)线性回归要求因变量是连续性数值变量,而logistic回归要求因变量是分类型变量。
3)线性回归要求自变量和因变量呈线性关系,而logistic回归不要求自变量和因变量呈线性关系
4)logistic回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系
可以认为逻辑回归的输入是线性回归的输出,将逻辑斯蒂函数(Sigmoid曲线)作用于线性回归的输出得到输出结果。线性回归y = ax + b, 其中a和b是待求参数;
逻辑回归p = S(ax + b), 其中a和b是待求参数, S是逻辑斯蒂函数,然后根据p与1-p的大小确定输出的值,通常阈值取0.5,若p大于0.5则归为1这类。
逻辑回归的原理
1. LR
LR模型可以被认为就是一个被Sigmoid函数(logistic方程)所归一化后的线性回归模型!
逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星。
2 直观表述
逻辑回归模型是一种分类模型,用条件概率分布的形式表示
P
(
Y
∣
X
)
P
(
Y
∣
X
)
P(Y|X)P(Y|X)
P(Y∣X)P(Y∣X),这里随机变量 X 取值为 n 维实数向量,例如
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
n
)
)
x=(x(1),x(2),...,x(n))
x=(x(1),x(2),...,x(n)),Y 取值为 0 或 1。即:
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
⋅
x
+
b
)
/
(
1
+
e
x
p
(
w
⋅
x
+
b
)
)
P(Y=1|x)=exp(w⋅x+b)/(1+exp(w⋅x+b))
P(Y=1∣x)=exp(w⋅x+b)/(1+exp(w⋅x+b))
P
(
Y
=
0
∣
0
)
=
1
/
(
1
+
e
x
p
(
w
⋅
x
+
b
)
)
P(Y=0|0)=1/(1+exp(w⋅x+b))
P(Y=0∣0)=1/(1+exp(w⋅x+b))
假设有一个二分类问题,输出为
y
∈
0
,
1
y∈{0,1}
y∈0,1,二线性回归模型
z
=
w
T
x
+
b
z=wTx+b
z=wTx+b是个实数值,我们希望有一个理想的阶跃函数来帮我什么实现z值到0/1值的转化,于是找到了Sigmoid函数来代替:
g
(
z
)
=
1
/
(
1
+
e
−
z
)
g(z)=1/(1+e−z)
g(z)=1/(1+e−z)
有了 Sigmoid 函数之后,由于其值取值范围在[0,1]。就可以将其视为类 1 的后验概率估计 p ( y = 1 ∣ X ) p(y=1|X) p(y=1∣X)。说白了,就是如果有了一个测试点 x,那么就可以用Sigmoid函数算出来的结果当作该点 x 属于类别 1 的概率大小。
于是,非常自然地,我们把 Sigmoid 函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:
逻辑回归算法的损失函数
在逻辑回归中,代价函数是一个非凸函数(non-convexfunction),而这意味着代价函数有许多局部最优解,这会影响梯度下降算法寻找去全局最优解。
通过重新定义代价函数:
其中:
这样构建的原因也很简单,当实际y=1时,误差为零,误差随着假设函数变小而变大,相反亦然。
简化:
代入代价函数得到
继而用梯度下降法来优化参数:
求导过程:
求导后得到:
正则化与模型评估指标
正则化:
在实际应用算法时,经常会遇到过拟合问题(over-fitting),处理方法可以是:
1.丢弃那些误差较大的特征,可以选择手工保留或者用一些模型算法实现(PCA)
2.正则化,保留所有特征,但是减少参数的大小或者复杂程度
**模型评估指标:
为了评价模型以及在不同研究者之间进行性能比较,统一采用最广泛的二维混淆矩阵(Confusion matrix)
- 准确率(Accuracy):表示正确分类个数占总数的比例
-召回率(Recall),也叫查全率,表示正确分类的正例个数占实际正例个数的比值
-
精确率(Precision),也叫查准率,表示正确分类的正例个数占分类为正例的实例个数比值
-
F1-score,基于召回率(Recall)与精准率(Precision)的调和平均,即将召回率和精准率综合起来评价
-
Fβ加权调和平均:Fβ是F1度量的一般形式,能让我们表达出对查准率、查全率的不同偏好
-
其中,β>0度量了查全率对查准率的相对重要性。β=1时退化为标准的F1;β>1时查全率有更大影响;β<1时查准率有更大影响。 -
ROC曲线(ROC Curve):度量分类中的非均衡性工具
TPR(True Positive Rate)表示在所有实际为阳性的样本中,被正确地判断为阳性的比率,即:TPR=TP/(TP+FN); FPR( False Positive Rate)表示在所有实际为阴性的样本中,被错误地判断为阳性的比率,即:FPR=FP/(FP+TN)。 -
ROC曲线是以FPR作为X轴,TPR作为Y轴。FPR越大表明预测正类中实际负类越多,TPR越大,预测正类中实际正类越多。ROC曲线如下图所示:
逻辑回归的优缺点
优点:
1 适合使用分类的应用场景,且实现简单
2 计算成本代价不高,可执行性高
3 对较小的噪声有很好的鲁棒性
缺点:
1 准确率不高
2 很难处理数据不均衡的问题
3 自身无法筛选特征
样本不均衡问题的解决方法
类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况,在现实应用中经常会遇到类别不平衡问题,目前有三类做法:
1 欠采样,即去除一些反例使得正、反例数目接近,然后在进行学习
2.对训练集里的正类样例进行“过采样”,即增加一些正例使得正、反例数目接近,然后再进行学习
3 直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将
y
/
(
1
−
y
)
y/(1-y)
y/(1−y)嵌入到决策过程中,称为“阈值移动(threshold-moving)”
正则化选择参数
LogisticRegression和LogisticRegressionCV默认就带了正则化项。penalty参数可选择的值为"l1"和"l2".分别对应L1的正则化和L2的正则化,默认是L2的正则化。在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑L1正则化。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。
penalty参数的选择会影响我们损失函数优化算法的选择。即参数solver的选择,如果是L2正则化,那么4种可选的算法{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}都可以选择。但是如果penalty是L1正则化的话,就只能选择‘liblinear’了。这是因为L1正则化的损失函数不是连续可导的,而{‘newton-cg’, ‘lbfgs’,‘sag’}这三种优化算法时都需要损失函数的一阶或者二阶连续导数。而‘liblinear’并没有这个依赖。