算法梳理(二)逻辑回归算法梳理

目录

1、逻辑回归与线性回归的联系与区别

2、逻辑回归的原理

3、逻辑回归损失函数推导及优化

4、 正则化与模型评估指标

5、逻辑回归的优缺点

6、样本不均衡问题解决办法

7、sklearn参数


1、逻辑回归与线性回归的联系与区别

联系:

逻辑回归与线性回归都属于广义线性回归模型。

逻辑回归往往是解决二元0/1分类问题的,之所以叫“回归”因为其本质还是线性回归。可以认为逻辑回归的输入是线性回归的输出,将逻辑斯蒂函数(Sigmoid曲线)作用于线性回归的输出得到输出结果。

线性回归y = ax + b, 其中a和b是待求参数;
逻辑回归p = S(ax + b), 其中a和b是待求参数, S是逻辑斯蒂函数,然后根据p与1-p的大小确定输出的值,通常阈值取0.5,若p大于0.5则归为1这类。

区别:

1、线性回归目标函数是最小二乘,而逻辑回归则是似然函数。也正是因为使用的参数估计的方法不同,线性回归模型更容易受到异常值(outlier)的影响,有可能需要不断变换阈值(threshold);
2、线性回归是在整个实数域范围内进行预测,敏感度一致。逻辑回归则将预测值限定为[0,1]间。因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。
3、线性回归中,独立变量的系数解释十分明了,就是保持其他变量不变时,改变单个变量因变量的改变量。逻辑回归中,自变量系数的解释就要视情况而定了,要看选用的概率分布是什么,如二项式分布,泊松分布等。

2、逻辑回归的原理

以二元逻辑回归为例

3、逻辑回归损失函数推导及优化

逻辑回归采用交叉熵作为代价函数,即对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function):

L(Y,P(Y|X))=−logP(Y|X)

对数损失函数能够有效避免梯度消失。

对于二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。这里推导出梯度下降法中θ每次迭代的公式。由于代数法推导比较的繁琐,我习惯于用矩阵法来做损失函数的优化过程,这里给出矩阵法推导二元逻辑回归梯度的过程。

4、 正则化与模型评估指标

逻辑回归的L1正则化的损失函数表达式如下,相比普通的逻辑回归损失函数,增加了L1的范数做作为惩罚,超参数α作为惩罚系数,调节惩罚项的大小。

模型评估指标:

  • 精准率
  • 召回率
  • F1 score
  • precision—recall的平衡(曲线)
  • ROC曲线

详情参考:逻辑回归及其评价指标——自学第九篇
https://blog.csdn.net/yh_1021/article/details/82765923

5、逻辑回归的优缺点

优点:

1、实现简单;

2、分类时计算量非常小,速度很快,存储资源低;

缺点:

1、容易欠拟合,一般准确度不太高;

2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

6、样本不均衡问题解决办法

处理样本不均衡数据一般可以有以下方法:

1、人为将样本变为均衡数据。

上采样:重复采样样本量少的部分,以数据量多的一方的样本数量为标准,把样本数量较少的类的样本数量生成和样本数量多的一方相同。

下采样:减少采样样本量多的部分,以数据量少的一方的样本数量为标准。

2、调节模型参数(class_weigh,sample_weight,这些参数不是对样本进行上采样下采样等处理,而是在损失函数上对不同的样本加上权重)

(A)逻辑回归中的参数class_weigh;

在逻辑回归中,参数class_weight默认None,此模式表示假设数据集中的所有标签是均衡的,即自动认为标签的比例是1:1。所以当样本不均衡的时候,我们可以使用形如{标签的值1:权重1,标签的值2:权重2}的字典来输入真实的样本标签比例(例如{“违约”:10,“未违约”:1}),来提高违约样本在损失函数中的权重。

或者使用”balanced“模式,sklearn内部原理:直接使用n_samples/(n_classes * np.bincount(y)),即样本总数/(类别数量*y0出现频率)作为权重,可以比较好地修正我们的样本不均衡情况。

7、sklearn参数

参考博客原文:https://blog.csdn.net/MY578719543/article/details/88093323

猜你喜欢

转载自blog.csdn.net/qq_35175666/article/details/88957842