目录
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曲线
详情参考:逻辑回归及其评价指标——自学第九篇
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参数