sklearn.linear_model.LogisticRegression接口参数

sklearn.linear_model.LogisticRegression接口参数

sklearn.linear_model.LogisticRegression接口参数

  • 参数列表
    class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, 
    fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None,
    solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)
Parameters Type Decriptions
penalty str, ‘l1’ or ‘l2’, default: ‘l2’ 用于指定惩罚中使用的规范。 ‘newton-cg’,'sag’和’lbfgs’解算器只支持l2惩罚。
dual bool, default: False 双重或原始配方。 双配方仅用于利用liblinear解算器的l2惩罚。 当n_samples> n_features时,首选dual = False。
tol float, default:1e-4 停止标准,误差不超过tol时,停止进一步的计算
C float defult:1.0 正则化强度的倒数; 必须是大于0的浮点数。 与支持向量机一样,较小的值指定更强的正则化
fit_intercept bool,default:True 指定是否应将常量(a.k.a. bias或intercept)添加到决策函数中。
intercept_scaling float defaul:1. 仅在使用求解器“liblinear”且self.fit_intercept设置为True时有用。 在这种情况下,x变为[x,self.intercept_scaling],即具有等于intercept_scaling的常数值的“合成”特征被附加到实例矢量。 截距变成了intercept_scaling * synthetic_feature_weight. 注意: 合成特征权重与所有其他特征一样经受l1 / l2正则化。 为了减小正则化对合成特征权重(并因此对截距)的影响,必须增加intercept_scaling。
class_weight dict or ‘balanced’, default: None class_label:weight形式的类相关联的权重。如果没有给出,所有的类都应该有一个重量。“平衡”模式使用y的值自动调整与输入数据中的类频率成反比的权重n_samples / (n_classes * np.bincount(y)) 请注意,如果指定了sample_weight,这些权重将与sample_weight(通过fit方法传递)相乘。
random_state int, RandomState instance or None, optional, default: None 在随机数据混洗时使用的伪随机数生成器的种子。 如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。 在求解器=='sag’或’liblinear’时使用。
solver {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default:'liblinear’在优化问题中使用的算法。 - 对于小型数据集,‘liblinear’是一个不错的选择,而’sag’和’saga’对于大型的更快。 - 对于多类问题,只有’newton-cg’,‘sag’,'saga’和’lbfgs’处理多项损失; 'liblinear’仅限于一对其他方案。 - ‘newton-cg’,'lbfgs’和’sag’只处理L2惩罚,而’liblinear’和’saga’处理L1惩罚。 请注意,“sag”和“saga”快速收敛仅在具有大致相同比例的要素上得到保证。 可以使用sklearn.preprocessing中的缩放器预处理数据。
max_iter int default:100 仅适用于newton-cg,sag和lbfgs求解器。 求解器收敛的最大迭代次数。
multi_class str, {‘ovr’, ‘multinomial’}, default: ‘ovr’ 多类选项可以是’ovr’或’multinomial’。 如果选择的选项是’ovr’,那么二进制问题适合每个标签。 另外,最小化损失是整个概率分布中的多项式损失拟合。 不适用于liblinear解算器。
verbose int, default: 0 对于liblinear和lbfgs求解器,将verbose设置为任何正数以表示详细程度。
warm_start bool, default: False 设置为True时,重用上一次调用的解决方案以适合初始化,否则,只需擦除以前的解决方案。 对于liblinear解算器没用。
n_jobs int, default: 1 如果multi_class =‘ovr’“,则在对类进行并行化时使用的CPU核心数。 无论是否指定’multi_class’,当solver设置为’liblinear’时,都会忽略此参数。 如果给定值-1,则使用所有核心。
coef_ array, shape (1, n_features) or (n_classes, n_features) 决策函数中的特征系数。当给定问题是二进制时,coef_具有形状(1,n_features)。
intercept_ array, shape (1,) or (n_classes,) 截距(a.k.a. bias)添加到决策函数中。如果fit_intercept设置为False,则截距设置为零。 当问题是二进制时,intercept_是形状(1,)。
n_iter_ array, shape (n_classes,) or (1, ) 所有类的实际迭代次数。 如果是二进制或多项式,则只返回1个元素。 对于liblinear解算器,只给出了所有类的最大迭代次数。

logistic 回归

logistic 回归,虽然名字里有 “回归” 二字,但实际上是解决分类问题的一类线性模型。在某些文献中,logistic 回归又被称作 logit 回归,maximum-entropy classification(MaxEnt,最大熵分类),或 log-linear classifier(对数线性分类器)。该模型利用函数 logistic function 将单次试验(single trial)的可能结果输出为概率。

scikit-learn 中 logistic 回归在 LogisticRegression 类中实现了二分类(binary)、一对多分类(one-vs-rest)及多项式 logistic 回归,并带有可选的 L1 和 L2 正则化。
作为优化问题,带 L2 罚项的二分类 logistic 回归要最小化以下代价函数(cost function):

![代价函数](https://img-blog.csdn.net/20180924200645412?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeXVhbnNodW9fbnVj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
类似地,带 L1 正则的 logistic 回归解决的是如下优化问题:
![](https://img-blog.csdn.net/20180924200706212?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeXVhbnNodW9fbnVj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
在 LogisticRegression 类中实现了这些优化算法: “liblinear”, “newton-cg”, “lbfgs”, “sag” 和 “saga”。 “liblinear” 应用了坐标下降算法(Coordinate Descent, CD),并基于 scikit-learn 内附的高性能 C++ 库 LIBLINEAR library 实现。不过 CD 算法训练的模型不是真正意义上的多分类模型,而是基于 “one-vs-rest” 思想分解了这个优化问题,为每个类别都训练了一个二元分类器。因为实现在底层使用该求解器的 LogisticRegression 实例对象表面上看是一个多元分类器。 sklearn.svm.l1_min_c 可以计算使用 L1 罚项时 C 的下界,以避免模型为空(即全部特征分量的权重为零)。

猜你喜欢

转载自blog.csdn.net/liyuanshuo_nuc/article/details/82831633
今日推荐