Scikit Learn - 逻辑回归
尽管名为逻辑回归,但它实际上是一种分类算法,而非回归算法。它基于给定的一组自变量,用于估计离散值(0 或 1、是/否、真/假)。它也被称为 logit 或 MaxEnt 分类器。
本质上,它通过使用逻辑函数估计事件发生的概率来衡量分类因变量与一个或多个自变量之间的关系。
sklearn.linear_model.LogisticRegression 是用于实现逻辑回归的模块。
参数
下表列出了 逻辑回归 模块 − 使用的参数。
| 序号 | 参数 &说明 |
|---|---|
| 1 |
惩罚 − str,'L1'、'L2'、'elasticnet' 或 none,可选,默认值 = 'L2' 此参数用于指定惩罚(正则化)中使用的范数(L1 或 L2)。 |
| 2 |
双重 −布尔值,可选,默认值 = False 它用于对偶或原始公式,而对偶公式仅适用于 L2 惩罚。 |
| 3 |
tol − 浮点型,可选,默认值 = 1e-4 它表示停止标准的容差。 |
| 4 |
C −浮点型,可选,默认值 = 1.0 它表示正则化强度的倒数,必须始终为正浮点数。 |
| 5 |
fit_intercept − 布尔值,可选,默认值 = True 此参数指定应向决策函数添加一个常数(偏差或截距)。 |
| 6 |
intercept_scaling −浮点型,可选,默认值 = 1 此参数在以下情况下有用:
|
| 7 |
class_weight − dict 或 'balanced' 可选,默认值 = none 它表示与类别相关的权重。如果我们使用默认选项,则表示所有类别的权重都应该为 1。另一方面,如果您选择 class_weight: balanced,它将使用 y 的值自动调整权重。 |
| 8 |
random_state − int,RandomState 实例或 None,可选,默认值 = none 此参数表示生成的伪随机数的种子,用于对数据进行混洗。以下是选项
|
| 9 |
solver − str, {'newton-cg', 'lbfgs', 'liblinear', 'saag', 'saga'}, 可选,默认值 = 'liblinear' 此参数表示在优化问题中使用哪种算法。以下是此参数 − 下的选项属性。
|
| 10 |
max_iter − int,可选,默认值 = 100 顾名思义,它表示求解器收敛所需的最大迭代次数。 |
| 11 |
multi_class − str,{'ovr', 'multinomial', 'auto'},可选,默认值 = 'ovr'
|
| 12 |
verbose − int,可选,默认值 = 0 默认情况下,此参数的值为0,但对于liblinear和lbfgs求解器,我们应该将verbose设置为任意正数。 |
| 13 |
warm_start − bool,可选,默认值 = false 将此参数设置为 True,我们可以重用上一次调用 fit 的解作为初始化。如果选择默认值,即 false,则会清除上一次的解。 |
| 14 |
n_jobs − int 或 None,可选,默认值 = None 如果 multi_class = 'ovr',此参数表示在类上并行化时使用的 CPU 核心数。当solver = 'liblinear' 时,此参数会被忽略。 |
| 15 |
l1_ratio −浮点数或 None,可选,dgtefault = None 当 penalty = 'elasticnet' 时使用。它本质上是 Elastic-Net 混合参数,其中 0 < = l1_ratio > = 1。 |
属性
下表包含 逻辑回归 模块 − 使用的属性。
| Sr.No | 属性和说明 |
|---|---|
| 1 |
coef_ −数组,形状为 (n_features,) 或 (n_classes, n_features) 用于估计决策函数中特征的系数。当给定问题是二分类问题时,其形状为 (1, n_features)。 |
| 2 |
Intercept_ − 数组,形状为 (1) 或 (n_classes) 表示添加到决策函数中的常数,也称为偏差。 |
| 3 |
classes_ −数组,形状为 (n_classes) 它将提供分类器已知的类别标签列表。 |
| 4 |
n_iter_ − 数组,形状为 (n_classes) 或 (1) 它返回所有类别的实际迭代次数。 |
实现示例
以下 Python 脚本提供了一个在 scikit-learn 的 iris 数据集上实现逻辑回归的简单示例 −
from sklearn import datasets from sklearn import linear_model from sklearn.datasets import load_iris X, y = load_iris(return_X_y = True) LRG = linear_model.LogisticRegression( random_state = 0,solver = 'liblinear',multi class = 'auto' ) .fit(X, y) LRG.score(X, y)
输出
0.96
输出结果显示,上述逻辑回归模型的准确率为 96%。

