Logistic Regression
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
API 参数 意义 备注
LogisticRegression的 parameters
Penalty Str类型,可选项为‘l1’和‘l2’,默认为‘l2’,用来确定惩罚项的规范。‘newton-cg’,‘sag’和’lbfgs’仅支持‘l2’惩罚项。 惩罚项是用来添加参数避免过拟合,可以理解为对当前训练样本的惩罚,用以提高函数的泛化能力。
dual
布尔类型,默认为‘False’,dual仅仅用在l2惩罚项的liblinear解法上。
Liblinear好像是线性多核,但不太清楚详细意思。
tol
float类型,默认为‘1e-4’,表示满足该精度时训练停止。
停止求解的标准,个人感觉应该是精度的意思。
C
float类型,默认为‘1.0’,正则化系数的倒数,取值必须为正浮点数。
例如在SVM中,值越小表示越强的正则化。
fit_intercept
布尔类型,默认为‘Ture’,确定是否有一个偏差或者截距应该被添加进决策函数。
intercept_scaling
float类型,默认为‘1.’,仅在解法‘liblinear’被使用且fit_intercept被置为True。
class_weight
字典类型或’balanced‘,默认为’None’,表示为各个类型样本的权重。如果没有给定,所有类型的权重为1。参数为‘balanced’则依照输入样本的频率自动调整权重。
‘balanced’参数的情况下,会按照比例调整比较多的类别的样本的权重降低,比较少样本的类别的样本权重依比提高。
random_state
int型,RandomState或None,默认为‘None',仅在算法为 ‘sag’ 或 ’liblinear’ 时使用。
solver
{’newton-cg’ , ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, 分别为几种优化算法。默认为‘liblinear’。
--小数据集中,liblinear是一个好选择,sag和saga对大数据集更快;
--多类别问题中,除了liblinear其它四种算法都可以使用;
--newton-cg,lbfgs和sag仅能使用l2惩罚项,liblinear和saga使用l1惩罚项。
max_iter
int类型,默认为‘100’,仅适用于newton-cg, sag和lbfgs算法。
表示算法收敛的最大次数。
multi_class
str类型,{‘ovr’, ‘multinomial’}为可选参数,默认为‘ovr’,如果是二元分类问题则两个选项一样,如果是多元分类则ovr将进行多次二分类,分别为一类别和剩余其它所有类别;multinomial则分别进行两两分类,需要T(T-1)/2次分类。
在多分类中,ovr快,精度低;
Multinomial慢,精度高。
verbose
int类型,默认为’0‘,为liblinear和lbfgs算法设置一个任意正整数作为冗余
0表示不输出训练过程;
1表示偶尔输出;
大于1,每个子模型都输出
warm_start
布尔类型,默认为’False‘,如果为Ture,则使用上次的训练结果作为初始化参数,否则擦除上次的训练结果。
对liblinear算法无效
n_jobs
int类型,默认为‘1’,当multi_class=‘ovr’ 时并行处理的CPU核数量,当solver被设置为liblinear时不论multi_class是否被设置都忽略此参数。
如果给定的值为-1表示所有的CPU核都被使用。
网友评论