Scikit Learn - 逻辑回归



逻辑回归,尽管其名称如此,但它是一种分类算法而不是回归算法。基于一组给定的自变量,它用于估计离散值(0 或 1,是/否,真/假)。它也称为 logit 或 MaxEnt 分类器。

基本上,它通过使用其逻辑函数估计事件发生的概率来衡量分类因变量和一个或多个自变量之间的关系。

sklearn.linear_model.LogisticRegression 是用于实现逻辑回归的模块。

参数

下表列出了逻辑回归模块使用的参数:

序号 参数和描述
1

penalty − str, ‘L1’, ‘L2’, ‘elasticnet’ 或 none,可选,默认 = ‘L2’

此参数用于指定惩罚(正则化)中使用的范数(L1 或 L2)。

2

dual − 布尔值,可选,默认 = False

它用于对偶或原始公式,而对偶公式仅针对 L2 惩罚实现。

3

tol − 浮点数,可选,默认 = 1e-4

它表示停止标准的容差。

4

C − 浮点数,可选,默认 = 1.0

它表示正则化强度的倒数,必须始终为正浮点数。

5

fit_intercept − 布尔值,可选,默认 = True

此参数指定应向决策函数添加常数(偏差或截距)。

6

intercept_scaling − 浮点数,可选,默认 = 1

此参数在以下情况下有用:

  • 使用solver ‘liblinear’

  • fit_intercept 设置为 true

7

class_weight − dict 或 ‘balanced’,可选,默认 = none

它表示与类相关的权重。如果我们使用默认选项,则表示所有类都应该具有权重 1。另一方面,如果您选择 class_weight: balanced,它将使用 y 的值来自动调整权重。

8

random_state − int,RandomState 实例或 None,可选,默认 = none

此参数表示生成的伪随机数的种子,在洗牌数据时使用。以下是选项:

  • int − 在这种情况下,random_state 是随机数生成器使用的种子。

  • RandomState 实例 − 在这种情况下,random_state 是随机数生成器。

  • None − 在这种情况下,随机数生成器是 np.random 使用的 RandonState 实例。

9

solver − str, {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘saag’, ‘saga’},可选,默认 = ‘liblinear’

此参数表示在优化问题中使用哪个算法。以下是此参数下选项的属性:

  • liblinear − 对于小型数据集来说是一个不错的选择。它还处理 L1 惩罚。对于多类问题,它仅限于一对多方案。

  • newton-cg − 它只处理 L2 惩罚。

  • lbfgs − 对于多类问题,它处理多项式损失。它也只处理 L2 惩罚。

  • saga − 对于大型数据集来说是一个不错的选择。对于多类问题,它还处理多项式损失。除了 L1 惩罚外,它还支持 ‘elasticnet’ 惩罚。

  • sag − 它也用于大型数据集。对于多类问题,它还处理多项式损失。

10

max_iter − int,可选,默认 = 100

顾名思义,它表示求解器收敛所采取的最大迭代次数。

11

multi_class − str, {‘ovr’, ‘multinomial’, ‘auto’},可选,默认 = ‘ovr’

  • ovr − 对于此选项,将为每个标签拟合一个二元问题。

  • multinomial − 对于此选项,最小化的损失是在整个概率分布中拟合的多项式损失。如果 solver = ‘liblinear’,则无法使用此选项。

  • auto − 此选项如果 solver = ‘liblinear’ 或数据为二元,则选择 ‘ovr’,否则选择 ‘multinomial’。

12

verbose − int,可选,默认 = 0

默认情况下,此参数的值为 0,但对于 liblinear 和 lbfgs 求解器,我们应将 verbose 设置为任何正数。

13

warm_start − bool,可选,默认 = false

将此参数设置为 True,我们可以重用先前对拟合的调用的解作为初始化。如果我们选择默认值 false,它将擦除先前的解。

14

n_jobs − int 或 None,可选,默认 = None

如果 multi_class = ‘ovr’,此参数表示在对类进行并行化时使用的 CPU 内核数。当 solver = ‘liblinear’ 时,它将被忽略。

15

l1_ratio − 浮点数或 None,可选,默认 = None

当 penalty = ‘elasticnet’ 时使用。它基本上是 Elastic-Net 混合参数,其中 0 < = l1_ratio > = 1。

属性

下表包含逻辑回归模块使用的属性:

序号 属性和描述
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%。

广告