Sklearn之sklearn.linear_model.LogisiticRegression参数详解

在pycharm中键入

from sklearn.linear_model import LogisticRegression

而后安装command点击LogisticRegression可以查看它的参数如下:

各参数的含义如下:
1.正则化选择参数:penalty也称作惩罚项。

LogisticRegression默认的正则化项是l2正则化。如果在调参时主要目的是解决overfitting,一般会选择l2正则化。但是当预测结果不好时,可选用l1正则化。

2.dual:对偶或者原始方法,默认为false(样本数量>样本特征)。对偶方法仅用于求解线性多核liblinear的l2惩罚项上。

3.tol:停止求解的标准,默认为1e-4,float类型,也即将设置的参数精度作为最优解。

4.c:正则化系数lambda的倒数,float类型,默认为1.0,必须是正浮点数类型,数值越小则反应正则化越强。

5.fit_intercept:是否存在截距或者偏差,默认为true,布尔类型。

6.intercept_scaling:当且仅当正则化项为liblinear且fit_intercept为true时有效。默认值为1,float类型。

7.class_weight:各种类型的权重,可以是字典或者字符串,默认值为None也就是不考虑权重。如果选择balanced,那么类库会根据驯良样本计算权重,某种类型的样本量越多,则权重越低;样本量越少,则权重越高。

8.random_state:随机种子,默认为none,仅在正则化项为sag或liblinear时有效。

9.solver:决定了对逻辑回归损失函数的优化方法。

  • liblinear:使用开源的liblinear库实现,使用坐标轴下降法来迭代优化损失函数。
  • lbfgs:拟牛顿法的一种,利用损失函数二阶导数也即海森矩阵来迭代优化损失函数。
  • newton-cg:利用损失函数二阶导数也即海森矩阵来迭代优化损失函数。
  • sag:随机平均梯度下降,与普通梯度下降法的区别时每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。

要注意的是:newton-cg、lbfgs以及sag三种方式均要求损失函数具有一阶或者二阶连续导数,因此不能用于没有连续导数的l1正则化,只能用于l2正则化。而liblinear则对正则化项l1和l2均适用。当样本总数非常大,超过10w时,sag是第一选择。

对于多元逻辑回归,当我们拿逻辑回归算法时,称之为多分类。对于多元逻辑回归常见的有one-vs-rest(OvR)和many-vs-many(MvM)

而liblinear仅支持OvR,所以当需要相对准确的分类时,一般不选择liblinear,也就是说多元逻辑回归时不选择l1正则化。

10.max_iter:算法收敛的最大迭代次数,默认为10。仅在正则优化算法为newton-cg、sag和lbfgs时有效。

11.multi_class:分类方式,分为上面提到的OvR和MvM。两者的区别主要在于多元逻辑回归。OvR相对简单,但是分类效果略差。而MvM则相对精确但分类速度不如OvR.

12.日志冗长度。默认为0,即不输出训练过程。为1时偶尔输出结果,大于1则对每一个子模型都输出。要注意的是它是int类型。

13.warm_start:热启动参数,布尔类型,默认false。如果为true,则下一次训练时,重新使用上一次的调用作为初始化。

14.n_jobs:并行数,默认为1,用1时使用cpu的一个内核运行程序;为2时使用cpu的2各内核运行程序;为-1时,适用所有的cpu内核运行程序。

猜你喜欢

转载自blog.csdn.net/LawenceRay/article/details/81836754
今日推荐