1.1.11.逻辑回归
尽管叫做逻辑回归,但是它是一个分类而不是一个线性回归。逻辑回归在文献中也被称为logit回归,最大熵模型(MaxEnt)或者是对数线性分类器。在这个模型中,描述单个实验的可能结果的概率使用逻辑函数来进行建模。
可以在scikit-learn中的LogisticRegression类中实现逻辑回归。这个可以用在二分类问题上,一对一,或者多元逻辑回归,可以使用L2或者L1正则化。
作为一个优化问题,L2惩罚的逻辑回归需要最小化的损失函数为:
同样的,L1正规化的逻辑回归优化方差为:
在逻辑回归中实现的分类器有“liblinear”,“newton-cg”,“lbfgs”,“sag”和“saga”:
liblinear使用的是位置下降算法,依赖于优秀的LIBLINEAR(c++库),然后liblinear实现的算法无法解决真正的多元回归。相反,要想以优化一个一对一的方式,那么可以对所有的数据集进行单独的二分类。在这种情况下,使用逻辑回归可以进行多元分类。对于L1惩罚,sklearn.svm.l1_min_c
允许计算C的下限,从而获得非空(所有的特征权重为零)模型
“lbfgs”,“sag”和“newton-cg”求解器仅支持L2惩罚,并且发现对于某些高维数据更快收敛。使用多元模型可以设置为multionmial,这样可以得到真正的多项逻辑回归,这意味这它的概率估计应该比默认的一对一设置的效果更好一点。
‘sag’使用随机平均梯度下降,当数据集和特征都很大的时候,它计算的更快。
‘saga’是‘sag’的升级,也支持l1惩罚,所有,这是稀疏多元逻辑回归的解决方式。
简言之,可以按照下面的方式选择:
Case | Solver |
---|---|
L1 penalty | “liblinear” or “saga” |
Multinomial loss | “lbfgs”, “sag”, “saga” or “newton-cg” |
Very Large dataset (n_samples) | “sag” or “saga” |
‘saga’通常情况下是最好的选择,由于历史的原因,默认使用 的是‘liblinear’
对于达到数据集,可以考虑使用SGDClassifier和‘log’损失。
例子
- L1 Penalty and Sparsity in Logistic Regression
- Path with L1- Logistic Regression
- Plot multinomial and One-vs-Rest Logistic Regression
- Multiclass sparse logisitic regression on newgroups20
- MNIST classfification using multinomial logistic + L1
和liblinear的不同:
逻辑回归于liblinear和linearSVC以及外部线性库直接得到的分数可能存在差异,当fit_intercept=False且拟合coef_的预测数据为零时。这时因为对于具有decision_function零的样本,线性回归和LinerSCV预测负类,而线性预测正面的类。 请注意,fit_intercept = False并且具有多个decision_function为零的样本的模型很可能会是一个不合适的模型,建议你设置fit_intercept = True并增加intercept_scaling。
注意:使用稀疏逻辑回归特征选择
具有L1惩罚的逻辑回归产生稀疏模型,因此可用于执行特征选择,详见基于L1的特征选择。
LogisticRegressionCV实现了交叉验证找到最佳参数C,在高维情况下使用“newton-cg”, “sag”, “saga” 和“lbfgs”效果更好。在多元情况下,如果回归选择的是‘ovr’,那么每一个类都是改最优化C,如果是multionmial则是通过最小交叉熵获得最优C。
参考
[5] | Christopher M. Bishop: Pattern Recognition and Machine Learning, Chapter 4.3.4 |
[6] | Mark Schmidt, Nicolas Le Roux, and Francis Bach: Minimizing Finite Sums with the Stochastic Average Gradient. |
[7] | Aaron Defazio, Francis Bach, Simon Lacoste-Julien: SAGA: A Fast Incremental Gradient Method With Support for Non-Strongly Convex Composite Objectives. |