class sklearn.linear_model.LogisticRegression(penalty='l2', class_weight=None,solver='liblinear',multi_class='ovr')
这里只列出了几个经常设置的参数
1. penalty
正则化参数:’l1’,’l2’.默认是’l2’。
在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑L1正则化。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。
penalty参数的选择会影响我们损失函数优化算法的选择。即参数solver的选择。
2. solver
‘newton-cg’:坐标轴下降法来迭代优化损失函数
‘lbfgs’:, ‘liblinear’:牛顿法变种
‘sag’:随机梯度下降
其中‘newton-cg’, ‘lbfgs’, ‘sag’只适用于L2惩罚项的优化,liblinear两种都适用。因为L1正则化的损失函数不是连续可导的,而{‘newton-cg’, ‘lbfgs’,‘sag’}这三种优化算法时都需要损失函数的一阶或者二阶连续导数。而‘liblinear’并没有这个依赖。
当样本数目比较大时,使用sag效果较好,因为它只使用一部分样本进行训练。
3. multi_class
{‘ovr’, ‘multinomial’}, default: ‘ovr’
OvR的思想很简单,无论你是多少元逻辑回归,我们都可以看做二元逻辑回归。multinomial相对复杂。