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 )
string 类型,penalty ='l1' 或'l2', 默认:'l2' 。python
'newton-cg' ,'sag' 和'lbfgs' 求解器只支持l2 惩罚。算法
可选的L2 或L1 正规化(正则化)。dom
做为优化问题,二进制类L2惩罚逻辑回归 (二进制类L2惩罚逻辑回归 ) 使如下成本函数(成本函数 ) 最小化: 函数
相似地,L1正则化逻辑回归 ( L1正则化逻辑回归 ) 解决了如下优化问题: 学习
{'newton-cg' ,'lbfgs' ,'liblinear' ,'sag' ,'saga'} ,默认'liblinear' 。大数据
'liblinear' :坐标降低(坐标降低)(CD)算法。优化
0.17 版新加'sag' :随机平均梯度降低求解器随机平均梯度降低。spa
0.19 版新加'saga' 。rest
在Logistic Regression类中实现的solver(求解器)是“liblinear”,“newton-cg”,“lbfgs”“sag”和'saga'。(最优化算法)
“liblinear”使用坐标降低(坐标降低)(CD)算法,并依赖于与scikit-learn一块儿提供的优秀C ++ LIBLINEAR库。然而,在liblinear中实现的CD算法不能学习一个真正的多项式(多类)多类别分类模型;相反,优化问题以“one-vs-rest”一对多的方式分解,所以对全部类进行单独的二元分类。这发生在hood下,因此使用此求解器的Logistic回归实例表现为multiclass classifiers(多类别分类器)。对于L1惩罚,sklearn.svm.l1_min_c容许计算C的下限,以得到非“null”(全部特征权重为零)模型。
“lbfgs”,“sag”和“newton-cg”求解器仅支持L2惩罚(L2惩罚),而且发现某些高维度数据的收敛速度更快。这些求解器将多类设置为“multinomial”,能够学习一个真正的多项逻辑回归模型(多类别逻辑回归模型),这意味着它的几率估计应该比默认的“one-vs-rest”设置更好地校准。“lbfgs”,“sag”和“newton -cg“求解器不能优化L1-penalized(L1惩罚)模型,所以”multinomial“设置不会学习稀疏模型(稀疏模型)。
求解器“sag”使用Stochastic Average Gradient descent(随机平均梯度降低)。当样本数量和特征数量都很大时,它比其余大型数据集的求解器更快。
简而言之,可使用如下规则选择solver(求解器):
案件 |
求解 |
小数据集或L1惩罚 |
'liblinear' |
多项损失或大数据集 |
'sag','newton-cg' ,'lbfgs','saga' |
很是大的数据集 |
'sag' ,'saga' |
Float 型,默认值是1.0 。正则化参数。
必须是正数,越小的值表明更强的正则化。
布尔值,默认是假的。
当样本数量大于特征数量时,选择双=假。
当l2惩罚和liblinear solver时,选择dual = True。
float型,默认值1e-4。
迭代的收敛判断精度。
bool,布尔值,默认值是真的。
将常量(又名偏见或拦截)添加到决策函数中。
浮动,默认值是1
仅在使用求解器“liblinear” 且fit_intercept 参数设置为真时有用。
在这种状况下, x变为[x,intercept_scaling],即具备等于intercept_scaling的常数值的“合成”特征被附加到实例向量。截距变成了intercept_scaling * synthetic_feature_weight。
' dict' 或'balanced' ,默认值:无
{ int,RandomState instance or None } ,默认值是None。
在求解器是 '下垂' 或 'liblinear' 时使用。
若是是整型,则random_state是随机数生成器使用的种子;
若是是RandomState实例,则random_state是随机数生成器;
若是为无,则随机数生成器是np.random使用的RandomState实例。
int,默认值是100 。
在求解器是 'newton-cg','sag'和'lbfgs' 时使用,求解器收敛的最大迭代次数。
string 字符串类型,{'ovr','multinomial'},默认值是'ovr' 。
若是是'ovr',优化问题以“one-vs-rest”一对多的方式分解,所以对全部类进行单独的二元分类。
若是是'多项式',最小化损失是整个几率分布中的多项式损失拟合。不适用于liblinear求解器。
int,默认值是0 。
对于liblinear和lbfgs求解器,将冗长的设置为任何正数以表示详细程度。
bool,默认值是假。
当为真时,重用上一次调用的解决方案以适合初始化,不然,只需擦除之前的解决方案。对于liblinear解算器没用。
int,默认值是1 。
若是multi_class ='ovr',则在对类进行并行计算时CPU核使用数量。
当``solver``设置为 'liblinear' 时,无论 'multi_class' 是什么,都会忽略此参数。
若是给定值-1,则使用全部CPU核。