博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sklearn中的LogisticRegression模型
阅读量:4041 次
发布时间:2019-05-24

本文共 2507 字,大约阅读时间需要 8 分钟。

LogisticRegression是一种广义线性分类模型,其可通过模拟数据的伯努利分布(对于二分类问题)和多项式分布(对于多分类问题)参数,对样本所属各分类的概率值进行预测。

1. 模型的主要参数

在sklearn中, LogisticRegression模型的主要参数包括:

模型参数     Parameter含义     备注
penalty     正则项     广义线性模型的正则项,可选值包括L1正则项'l1'、L2正则项'l2'、复合正则'elasticnet'和无正则项None,默认值为'l2'。值得注意的是,正则项的选择应与优化求解器相匹配(详见`solver`参数)。
l1_ratio     正则权重系数     L1正则和L2正则的权重系数,取值空间为0-1。若为0,则相当于为L2正则;若为1,则为L1正则,否则为Elasticnet正则。
dual     对偶问题     默认值False,可设为True将问题转换为对偶问题(详见本博客SVM问题中原问题-对偶问题的推导),仅适用于采用L2正则化且求解器为'liblinear’的情况。当样本数少于特征数时,推荐为True。
tol     迭代阈值     求解器迭代求解时,停止迭代的目标函数改变阈值。
C     正则化系数倒数     注意,其值与正则化强度相反,即C值越小,正则化程度越大。其值必须为正,且默认值为1
fit_intercept     是否预设偏置     控制广义线性模型中是否预设偏置值
intercept_scaling     预设偏置值     广义线性模型中预设的偏置值,仅当求解器为'liblinear'同时fit_intercept时生效。**注意**:该偏置值会作为新的特征计算其系数,因此也会计入L1和L2正则。
class_weight     样本权重     用于处理样本不均衡问题。默认值为None,即各类别样本权重一样,可通过设置字典定义权重系数,或设为'balanced',即根据样本数自动计算权重。若在fit函数中设置`sample_weight`参数,两者作用会叠加。
random_state     随机状态     LR模型中的随机性主要体现在求解器迭代时对样本的随机选取,适用于当求解器为'liblinear'或'sag'时。
solver     求解器     sklearn中共提供了5种优化求解器,分别为'liblinear'、'sag'、'saga'、'newton-cg'和'lbfgs'。各求解器的适用条件不同,具体见后文。默认值为'liblinear'。
max_iter     最大迭代步数     ‘newton-cg’、'sag'和'lbfgs' 求解器所需要的最大迭代步数
multi_class     多分类策略     取值可为'ovr'、'multinomial'和'auto'。'ovr'即采用'one vs rest'策略对二分类模型进行集成;'multinomial'即采用'multinomial loss'直接求解多分类问题。默认为'auto',其会在两分类问题或求解器为'liblinear'时选择'ovr',而其它情况下选择'multinomial'。默认值为'auto'
由上可见,LogisticRegression模型参数中很大一部分都和**优化求解器**的选择有关,其具体差别和特点见下表的整理:
求解器类型     对应参数     liblinear     sag     saga     newton-cg     lbfgs
求解机制     solver     开源的liblinear库,采用坐标轴下降法     随机平均梯度下降     线性收敛的随机平均梯度下降,特别适用于稀疏多项逻辑回归     牛顿法     拟牛顿法
正则化适用性     penalty,C,l1_ratio     适用于L1和L2正则     仅适用于L2正则     适用于L1和L2正则     仅适用于L2正则     仅适用于L2正则
偏置项适用性     fit_intercept,ntercept_scaling     适用     ----     ----     ----     ----
数据适用性     ----     小数据集     大数据集,小数据集会采样过少     大数据集     中等数据集     中等数据集
多分类适用性     multi_class,class_weight     仅适用'ovr'策略     'ovr'策略和'multinomial loss'策略均适用,推荐后者
收敛性     max_iter     ----     需设置     ----     需设置     需设置
对偶问题转换     dual     当L2正则,且数据量小于特征数时适用     ----     -----     ----     ----
随机性     random_state     有作用     有作用     -----     ----     ----
其它     ----     ----     支持增量学习     -----     ----     ----
2. 模型的主要方法
模型方法     Parameter含义     备注
fit     模型训练     可通过sample_weight参数来设置权重。
predict     预测结果     返回预测数据的各分类预测值
predict_prob     概率预测     返回预测数据的各分类概率预测值
predict_log_proba     对数概率预测     返回预测数据的各分类对数概率预测值
3. 模型的主要属性
模型属性     Parameter含义     备注
classes_     预测分类     各样本的分类预测值
coef_     线性系数     各特征前的线性系数,若有偏置项也包括该项前的系数。在样本做归一化的前提下,可视作特征的重要性。
intercept_     偏置项     当求解器为'liblinear'时,可输出此值
n_iter_     最大迭代次数     当求解器为'sag','newton-cg'或'lbfgs'时,可输出此值
4. 模型的调参

LogisticRegression模型的调参主要涉及两个层面:

(1)求解器及相关参数的选择;

(2)正则项及其系数的调整。
————————————————
版权声明:本文为CSDN博主「guofei_fly」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guofei_fly/article/details/103669419

你可能感兴趣的文章
IDEA Properties中文unicode转码问题
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>