数据挖掘小白系列!逻辑回归!
本文章只用于学习交流不用于任何商业行为,所有知识点资料来源于网络,如有任何不当之处请私信联系,作者会及时改正
本文中总结自文档所有标注的页码都是附件参考文档中的页码
由于markdown不支持附件下载,附件链接如下
http://note.youdao.com/noteshare?id=05a144c93bd1f66d0a25881a5fe5ce65
逻辑回归网上说的太多了,就稍微说点偏实际应用的吧
牛逼模型很多,为啥还要逻辑回归?
线性回归对数据的要求很严格,比如标签必须满足正态分布,特征之间的多重共线性需要消除等等,而现实中很多真实情景的数据无法满足这些要求,因此线性回归在很多现实情境的应用效果有限。
但是,无论机器学习领域如何折腾,逻辑回归依然是一个受工业商业热爱,使用广泛的模型,因为它有着不可替代的优点:
-
逻辑回归对线性关系的拟合效果好到丧心病狂,特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据,都是逻辑回归的强项。虽然现在有了梯度提升树GDBT,比逻辑回归效果更好,也被许多数据咨询公司启用,
但逻辑回归在金融领域,尤其是银行业中的统治地位依然不可动摇 - 逻辑回归计算快,在大型数据上尤其能够看得出区别
- 逻辑回归返回的分类结果不是固定的0,1,而是以小数形式呈现的类概率数字而决策树和随机森林这样的分类器,可以产出分类结果,却无法帮助我们计算分数(当然,在sklearn中,决策树也可以产生概率,使用接口predict_proba调用就好,但一般来说,正常的决策树没有这个功能)。
sklearn中的逻辑回归
linear_model.LogisticRegression
重要参数penalty
说明:
指定使用哪一种正则化方式
作用:
控制过拟合方式
参数推荐:
一般L2,但也可以L1换着试试就行,一般跑C的学习曲线就行
注意点
若选择"l1"正则化,参数solver仅能够使用求解方式”liblinear"和"saga“,若使用“l2”正则
化,参数solver中所有的求解方式都可以使用,但L1正则化会将参数压缩为0,L2正则化只会让参数尽量小,不会取到0。
重要参数C
说明:
C是用来控制正则化程度的超参数
作用:
C越小,损失函数会越小,模型对损失函数的惩罚越重,正则化的效力越强,参数会逐渐被压缩得越来越小
参数推荐:
需要画学习曲线.必须是一个大于0的浮点数,不填写默认1.0,即默认正则项与损失函数的比值是1:1。
重要参数max_iter
说明:
指定最大迭代次数
作用:
迭代次数越多,学习率(步长越小)
参数推荐:
一般L2,但也可以L1换着试试就行,一般跑C的学习曲线就行
重要参数solver
说明:
求解器控制参数
作用:
控制求解损失函数的方式
参数推荐:
重要参数multi_class
说明:
分类方式控制参数
作用:
模型如何分类
参数推荐:
‘multinomial’:表示处理多分类问题,这种输入在参数solver是’liblinear’时不可用。
“auto”:表示会根据数据的分类情况和其他参数来确定模型要处理的分类问题的类型。比如说,如果数据是二分类,或者solver的取值为"liblinear",“auto"会默认选择"ovr”。反之,则会选择"nultinomial"。
重要参数class_weight
说明:
样本不平衡与参数
作用:
控制不平衡数据变平衡
参数推荐:
sklearn当中的参数class_weight变幻莫测,大家用模型跑一跑就会发现,我们很难去找出这个参数引导的模型趋势,或者画出学习曲线来评估参数的效果,因此可以说是非常难用。我们有着处理样本不均衡的各种方法,其中主流的是采样法,是通过重复样本的方式来平衡标签,可以进行上采样(增加少数类的样本),比如SMOTE,对于逻辑回归来说,上采样是最好的办法。在案例中,会给大家详细来讲如何
在逻辑回归中使用上采样。