Sklearn 中的 LogisticRegression——天池机器学习训练营

本文介绍了Sklearn库中LogisticRegression模型的参数,包括penalty、dual、tol、C、fit_intercept等,并解释了它们的含义和作用。特别是对于大型数据集,'sag'和'saga'算法在优化问题上表现出更高的效率。同时,文章讨论了multi_class选项对多类问题的影响,以及如何通过warm_start参数进行模型训练的延续。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码地址

https://blog.csdn.net/sinat_40038284/article/details/111188024

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=0, solver='lbfgs', tol=0.0001,
          verbose=0, warm_start=False)

Logistics Regression参数名称

含义

penalty

字符串型,’l1’ or ‘l2’,默认:’l2’;正则化类型。

dual

布尔型,默认:False。当样本数>特征数时,令dual=False;用于liblinear解决器中L2正则化。

tol

浮点型,默认:1e-4;迭代终止判断的误差范围。

C

浮点型,默认:1.0;其值等于正则化强度的倒数,为正的浮点数。数值越小表示正则化越强。

fit_intercept

布尔型,默认:True;指定是否应该向决策函数添加常量(即偏差或截距)。

intercept_scaling

浮点型,默认为1;仅仅当solver是”liblinear”时有用。

class_weight

默认为None;与“{class_label: weight}”形式中的类相关联的权重。如果不给,则所有的类的权重都应该是1。

random_state

整型,默认None;当“solver”==“sag”或“liblinear”时使用。在变换数据时使用的伪随机数生成器的种子。如果是整数, random_state为随机数生成器使用的种子;若为RandomState实例,则random_state为随机数生成器;如果没有,随机数生成器就是’ np.random '使用的RandomState实例。

solver

{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’},默认: ‘liblinear’;用于优化问题的算法。

对于小数据集来说,“liblinear”是个不错的选择,而“sag”和’saga’对于大型数据集会更快。

对于多类问题,只有’newton-cg’, ‘sag’, 'saga’和’lbfgs’可以处理多项损失;“liblinear”仅限于“one-versus-rest”分类。

max_iter

最大迭代次数,整型,默认是100;

multi_class

字符串型,{ovr’, ‘multinomial’},默认:‘ovr’;如果选择的选项是“ovr”,那么一个二进制问题适合于每个标签,否则损失最小化就是整个概率分布的多项式损失。对liblinear solver无效。

verbose

整型,默认是0;对于liblinear和lbfgs solver,verbose可以设为任意正数。

warm_start

布尔型,默认为False;当设置为True时,重用前一个调用的解决方案以适合初始化。否则,只擦除前一个解决方案。对liblinear解码器无效。

n_jobs

整型,默认是1;如果multi_class=‘ovr’ ,则为在类上并行时使用的CPU核数。无论是否指定了multi_class,当将’ solver ’ '设置为’liblinear’时,将忽略此参数。如果给定值为-1,则使用所有核。

### sklearn库中LogisticRegression函数的用法 `LogisticRegression` 是 scikit-learn 库中的一个重要分类算法实现,适用于二分类或多分类问题。它通过拟合数据到逻辑回归模型来预测目标变量的概率分布。 #### 参数解释 以下是 `LogisticRegression` 的一些重要参数及其作用: 1. **penalty**: 正则化项的选择,默认为 `'l2'` 表示 L2 正则化。也可以设置为 `'l1'` 或 `'elasticnet'`[^2]。 2. **dual**: 是否采用对偶形式求解优化问题,默认为 `False`。当样本数量大于特征数时建议设为 `False`。 3. **C**: 控制正则化的强度,其值越小表示正则化越强,默认值为 `1.0`。 4. **fit_intercept**: 是否计算截距项,默认为 `True`。 5. **solver**: 用于优化问题的算法选项,常见的有 `'liblinear'`, `'lbfgs'`, `'newton-cg'`, `'sag'`, 和 `'saga'`。不同的 solver 对应于不同类型的 penalty 和多分类支持能力。 6. **max_iter**: 迭代的最大次数,默认为 `100`。 7. **multi_class**: 多分类策略选择,可选 `'ovr'`(一对其余)或 `'multinomial'`(多项式)。对于二分类问题默认为 `'auto'`。 #### 使用示例 下面是一个完整的例子展示如何使用 `LogisticRegression` 来训练并可视化决策边界: ```python from sklearn.linear_model import LogisticRegression import matplotlib.pyplot as plt from mlxtend.plotting import plot_decision_regions # 假定 X_train_lda 已经经过降维处理,y_train 是对应的标签 lr = LogisticRegression(solver='liblinear', C=1.0, random_state=1) lr = lr.fit(X_train_lda, y_train) # 绘制决策区域图 plot_decision_regions(X_train_lda, y_train, classifier=lr) plt.xlabel('LD 1') plt.ylabel('LD 2') plt.legend(loc='lower left') plt.show() ``` 上述代码片段展示了如何利用线性核的支持向量机方法构建一个简单的逻辑回归分类器,并绘制二维空间内的决策边界[^1]。 #### 数据集规模说明 在实际应用中,数据集大小会影响模型性能评估以及超参数调优过程。例如,在给定的数据集中提到词汇表大小为 43842,而训练集、验证集和测试集分别具有如下形状: - 训练集输入 `(25000,)` 输出 `(25000,)` - 验证集输入 `(10000,)` 输出 `(10000,)` - 测试集输入 `(6250,)` 输出 `(6250,)`[^3] 这表明该任务可能涉及自然语言处理领域的大规模文本分类场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值