logisticregressionpython参数设置_LogisticRegressi。。。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)
默认的参数值:
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)
参数详解:
1.penalty:正则化项的选择。正则化主要有两种:L1和L2,LogisticRegression默认选择L2正则化。
‘liblinear’ ⽀持L1和L2,但‘newton-cg’, ‘sag’ 和‘lbfgs’ 只⽀持L2正则化。
2.dual:bool(True、False), default:False
如果为True,则求解对偶形式,只有在penalty='l2' 且solver='liblinear' 时有对偶形式;通常样本数⼤于特征数的情况下,默认为False,求解原始形式。
停⽌标准,误差不超过tol时,停⽌进⼀步的计算。
4.C :float,default:1.0
正则化强度(正则化系数λ)的倒数; 必须是⼤于0的浮点数。 与⽀持向量机⼀样,较⼩的值指定更强的正则化,通常默认为1。
5.fit_intercept:bool(True、False),default:True
是否存在截距,默认存在。
6.intercept_scaling :float,default :1.0
仅在使⽤solver为“liblinear”且fit_intercept=True时有⽤。 在这种情况下,x变为[x,intercept_scaling],即具有等于
intercept_scaling的常数值的“合成”特征被附加到实例⽮量。 截距变成了intercept_scaling * synthetic_feature_weight. 注意: 合成特征权重与所有其他特征⼀样经受l1 / l2正则化。 为了减⼩正则
化对合成特征权重(并因此对截距)的影响,必须增加intercept_scaling。相当于⼈造⼀个特征出来,该特征恒为 1,其权重为b。random python
7.class_weight :dict or ‘balanced’,default:None
class_weight参数⽤于标⽰分类模型中各种类型的权重,可以不输⼊,即不考虑权重,或者说所有类型的权重⼀样。如果选择输⼊的话,可以选择balanced让类库⾃⼰计算类型权重,或者我们⾃⼰输⼊各个类型的权重,⽐如对于0,1的⼆元模型,我们可以定义class_weight= {0:0.9, 1:0.1},这样类型0的权重为90%,⽽类型1的权重为10%。
如果class_weight选择balanced,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越⾼。当class_weight为balanced时,类权重计算⽅法如下:n_samples / (n_classes * np.bincount(y))
8.random_state:int,RandomState instance or None,optional,default:None
在随机数据混洗时使⽤的伪随机数⽣成器的种⼦。 如果是int,则random_state是随机数⽣成器使⽤的种⼦; 如果是RandomState实例,则random_state是随机数⽣成器; 如果为None,则随机数⽣成器是np.random使⽤的RandomState实例。 在求solver
是'sag’或’liblinear’时使⽤。
9.solver :‘newton-cg’,‘lbfgs’,‘liblinear’,‘sag’,'saga',default:liblinear
liblinear:使⽤了开源的liblinear库实现,内部使⽤了坐标轴下降法来迭代优化损失函数。
lbfgs:拟⽜顿法的⼀种,利⽤损失函数⼆阶导数矩阵即海森矩阵来迭代优化损失函数。
newton-cg:也是⽜顿法家族的⼀种,利⽤损失函数⼆阶导数矩阵即海森矩阵来迭代优化损失函数。
sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅⽤⼀部分的样本来计算梯度,适合于样本数据多的时候。
saga:线性收敛的随机优化算法。
对于⼩型数据集,‘liblinear’是⼀个不错的选择,⽽’sag’和’saga’对于⼤型的更快。对于多类问题,只有’newton-
cg’,‘sag’,'saga’和’lbfgs’处理多项损失;'liblinear’仅限于⼀项损失。 ‘newton-cg’,'lbfgs’和’sag’只处理L2惩罚,⽽’liblinear’和’saga’处理L1惩罚。“sag”和“saga”快速收敛仅在具有⼤致相同⽐例的要素上得到保证, 可以使⽤
sklearn.preprocessing中的缩放器预处理数据。
10.max_iter:int ,default:100
仅适⽤于newton-cg,sag和lbfgs求解器。 求解器收敛的最⼤迭代次数。
11.multi_class:str,{‘ovr’, ‘multinomial’},default:‘ovr’
'ovr' :采⽤ one-vs-rest 策略,'multinomial':直接采⽤多分类逻辑回归策略。
多类选项可以是’ovr’或’multinomial’。 如果选择的选项是’ovr’,那么⼆进制问题适合每个标签。 另外,最⼩化损失是整个概率分布中的多项式损失拟合。 不适⽤于liblinear解算器。
12.verbose:int,default:0
对于liblinear和lbfgs求解器,将verbose设置为任何正数以表⽰详细程度。⽤于开启/关闭迭代中间输出的⽇志。
13.warm_start:bool(True、False),default:False
如果为True,那么使⽤前⼀次训练结果继续训练,否则从头开始训练。对于liblinear解算器没⽤。
14.n_jobs:int,default:1
如果multi_class =‘ovr’,则在对类进⾏并⾏化时使⽤的CPU数量。 ⽆论是否指定’multi_class’,当solver设置为’liblinear’时,都会忽略此参数。 如果给定值-1,则使⽤所有CPU。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。