逻辑回归与线性回归的联系与区别
-
虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。
-
这主要是由于线性回归在整个实数域内敏感度一致,而分类范围,需要在[0,1]之内。而逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线如下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。
1、LR在线性回归的实数范围输出值上施加sigmoid函数将值收敛到0~1范围, 其目标函数也因此从差平方和函数变为对数损失函数, 以提供最优化所需导数(sigmoid函数是softmax函数的二元特例, 其导数均为函数值的f*(1-f)形式)。请注意, LR往往是解决二元0/1分类问题的, 只是它和线性回归耦合太紧, 不自觉也冠了个回归的名字(马甲无处不在). 若要求多元分类,就要把sigmoid换成大名鼎鼎的softmax了。
2、首先逻辑回归和线性回归首先都是广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。
3、逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
逻辑回归给出离散的输出结果,然而线性回归给出的是连续的输出结果
原文:https://blog.csdn.net/erciyuan_/article/details/88912109
逻辑回归的原理
线性回归模型产生的预测值是实值y_hat,而考虑二分类问题,输出标记y∈{0,1},可以把线性回归产生的预测值y_hat转化成0/1值,找到一个单调可微函数将分类任务的预测值y_hat转化成0和1。对数几率函数即“sigmoid"函数,可以讲预测值y_hat转化为一个接近0或1的y_p概率值。该函数表示为:
当h(x)>0时,Sigmoid函数大于0.5;当h(x)<0时,Sigmoid函数小于0.5。所以,我们可以将拟合曲线的函数值带入Sigmoid函数,观察h(x)与0.5的大小确定其类标号。
逻辑回归损失函数推导及优化
损失函数
所谓的(损失函数)代价函数Cost Function,其实是一种衡量我们在这组参数下预估的结果和实际结果差距的函数,比如说线性回归的代价函数定义为:
4、 正则化与模型评估指标
正则化
为防止过拟合,提升模型泛化能力,我们需要对所有特征参数(除θ0θ0外)进行惩罚,即保留所有特征,减小参数θθ的值,当我们拥有很多不太有用的特征时,正则化会起到很好的作用。
模型评估指标
- 召回率、准确率
在二分类问题中,常用的分类器性能评价指标是精确率和召回率
- RoC曲线、AUC值
纵坐标—>灵敏度(true positive rate ):TPR=TP/(TP+FN),预测的正类中实际正实例占所有正实例的比例
横坐标—>特异度(false positive rate):FPR=FP/(FP+TN),预测的正类中实际负实例占所有负实例的比例
曲线下方的面积,就是模型准确率的度量。
5.逻辑回归的优缺点
优点:
1)经过了Sigmoid函数的映射,鲁棒性好,并且预测结果是界于0和1之间的概率;
2)可以适用于连续性和类别性自变量;
3)容易使用和解释;
4)训练速度快。
缺点:
1)由于sigmoid函数的特性,接近0/1的两侧概率变化较平缓,中间概率敏感,波动较大;导致很多区间特征变量的变化对目标概率的影响没有区分度,无法确定临界值;
2)容易欠拟合;
3)特征空间很大时效果不好。
6.样本不均衡问题解决办法
分类算法,有一个基本假设,即不同类别的训练样本数目相当,如果不同类别的训练样本数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。类别不平衡就是指分类任务中不同类别的训练样本数目差差别很大的情况。解决方法:
第一类:直接对训练集里的反类样例进行欠采样,即去除一些反例使得正反例数目接近,然后再进行学习。
第二类:对训练集里的正类样例进行过采样,即增加一些正例使得正反例数目接近,然后在进行学习。
第三类:直接基于训练集进行学习,但在用训练好的分类器进行预测时,采取再缩放策略。
7.sklearn参数
fix(X,y[,sample_weight]):训练模型。
predict(X):用模型进行预测,返回预测值。
score(X,y[,sample_weight]):返回(X,y)上的预测准确率(accuracy)。
predict_log_proba(X):返回一个数组,数组的元素一次是 X 预测为各个类别的概率的对数值。
predict_proba(X):返回一个数组,数组元素一次是 X 预测为各个类别的概率的概率值。
sparsify():将系数矩阵转换为稀疏格式。
set_params(** params):设置此估计器的参数。
decision_function(X):预测样本的置信度分数。
densify():将系数矩阵转换为密集阵列格式。