sklearn中的LogisticRegression模型

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)正则项及其系数的调整。

你可能感兴趣的:(sklearn,机器学习)