Datawhale任务二 逻辑回归算法梳理

逻辑回归算法梳理

一、逻辑回归与线性回归的联系与区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【搬运工】https://blog.csdn.net/weixin_38300566/article/details/80365022

二、逻辑回归的原理
逻辑回归的模型是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。
只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
另外它的推导含义:仍然与线性回归的最大似然估计推导相同,最大似然函数连续积(这里的分布,可以使伯努利分布,或泊松分布等其他分布形式),求导,得损失函数。
在这里插入图片描述
逻辑回归函数
在这里插入图片描述表现了0,1分类的形式。
应用举例:
是否垃圾邮件分类?
是否肿瘤、癌症诊断?
是否金融欺诈?

【搬运工】https://blog.csdn.net/viewcode/article/details/8794401

三、逻辑回归损失函数推导及优化
损失函数:对数似然损失函数
对于y=1 以及y=0有下列概率:
在这里插入图片描述
因此,综合以上两种情况:
在这里插入图片描述
损失函数原始形式:
在这里插入图片描述
(L表示所有训练样本的条件概率之积)
取对数得到损失函数:
在这里插入图片描述
目标是求得损失函数的最大值,即:最大似然估计。要得到损失函数的最大值,可转化为求其最小值
其最小值是:
在这里插入图片描述
即:
在这里插入图片描述
使用梯度下降法,求J的最小值。
由于:
在这里插入图片描述
因此:
在这里插入图片描述
更新过程:
在这里插入图片描述

四、正则化与模型评估指标
正则化:许多任务中,会遇到大量变量。当变量数多余样例数数时,可接触多个参数指,均可使均方误差最小化。选择哪个解作为最终输出,讲由学习算法的归纳偏好决定。常见的做法是引入正则化项。
正则化项将参数估计朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。常用的是L1、L2正则化。
其中,加入正则化项的逻辑回归损失为:
在这里插入图片描述
评估指标
1.分类指标
样本中存在两种两种标签:样本真实标签和模型预测标签。
根据这两个标签可以得到一个混淆矩阵:
每一行代表样本的真实类别,数据总数表示该类别的样本总数。
每一列代表样本的预测类别,数据总数表示该类别的样本总数。
分类模型的评价指标主要基于混淆矩阵。
2.混淆矩阵
在这里插入图片描述
3.正确率
用来表示模型预测正确的样本比例。
定义如下:
在这里插入图片描述
4.精度和召回率
精度和召回率是比正确率更好的性能评价指标,是对某个类别的评价。
精度:(查准率)是指正确预测的正样本占所有预测为正样本的比例:
在这里插入图片描述
召回率:(查全率)又称灵敏度和命中率,是指正样本中被正确预测的比例:
在这里插入图片描述
5.F1值
精度和召回率是负相关的:高精度往往对应召回率
F值即是综合考虑精度和召回率的一个指标:
在这里插入图片描述
其中为β正数,其作用是调整精度和召回率的权重。β越大,召回率的权重更大;β越小,则精度的权重更大。 当β正数为1时为F1值,精度和召回率权值一样。
6.ROC与AUC
ROC曲线和AUC是一个从整体上评价二分类模型优劣的指标,其中AUC是ROC曲线与其横轴之间的面积。AUC值越大说明模型越好。
ROC曲线通过真阳率和假阳率两个指标进行绘制:
真阳率是真实标签为正样本里预测也为正样本的比例,用TPR表示
假阳率是真实标签为负样本里预测为正样本的比例,用FPR表示

【搬运工】https://blog.csdn.net/jumdar/article/details/85796618

五、逻辑回归的优缺点
优点:
(模型)模型清晰,背后的概率推导经得住推敲。
(输出)输出值自然地落在0到1之间,并且有概率意义
(参数)参数代表每个特征对输出的影响,可解释性强。
(简单高效)实施简单,非常高效(计算量小、存储占用低),可以在大数据场景中使用。
(可扩展)可以使用online learning的方式更新轻松更新参数,不需要重新训练整个模型。
(过拟合)解决过拟合的方法很多,如L1、L2正则化。
(多重共线性)L2正则化就可以解决多重共线性问题。
缺点:
(特征相关情况)因为它本质上是一个线性的分类器,所以处理不好特征之间相关的情况。
(特征空间)特征空间很大时,性能不好。
(精度)容易欠拟合,精度不高。

【搬运工】https://zhuanlan.zhihu.com/p/54197906

六、样本不均衡问题解决办法
采样(上采样+下采样)
合成数据(采用已知样本,人为生成更多样本)
样本加权(不同类别分错代价不同)

七、Sklearn参数
penalty=’l2’, 参数类型:str,可选:‘l1’ or ‘l2’, 默认: ‘l2’。该参数用于确定惩罚项的范数
dual=False, 参数类型:bool,默认:False。双重或原始公式。使用liblinear优化器,双重公式仅实现l2惩罚。
tol=0.0001, 参数类型:float,默认:e-4。停止优化的错误率
C=1.0, 参数类型:float,默认;1。正则化强度的导数,值越小强度越大。
fit_intercept=True, 参数类型:bool,默认:True。确定是否在目标函数中加入偏置。
intercept_scaling=1, 参数类型:float,默认:1。仅在使用“liblinear”且self.fit_intercept设置为True时有用。
class_weight=None, 参数类型:dict,默认:None。根据字典为每一类给予权重,默认都是1.
random_state=None, 参数类型:int,默认:None。在打乱数据时,选用的随机种子。
solver=’warn’, 参数类型:str,可选:{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, 默认:liblinear。选用的优化器。
max_iter=100, 参数类型:int,默认:100。迭代次数。multi_class=’warn’, 参数类型:str,可选:{‘ovr’, ‘multinomial’, ‘auto’},默认:ovr。如果选择的选项是’ovr’,那么二进制问题适合每个标签。对于“多项式”,最小化的损失是整个概率分布中的多项式损失拟合,即使数据是二进制的。当solver  ='liblinear’时,‘multinomial’不可用。如果数据是二进制的,或者如果solver =‘liblinear’,‘auto’选择’ovr’,否则选择’multinomial’。
verbose=0, 参数类型:int,默认:0。对于liblinear和lbfgs求解器,将详细设置为任何正数以表示详细程度。
warm_start=False, 参数类型:bool,默认:False。是否使用之前的优化器继续优化。
n_jobs=None,参数类型:bool,默认:None。是否多线程

【搬运工】https://blog.csdn.net/redavid/article/details/88079974

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值