逻辑回归_1

sklearn.linear_model.LogisticRegression
penalty=l2, # 惩罚项,L1作用是产生少量的特征,而其他特征都是0,常用于特征选择;L2作用是选择较多的特征,使他们都趋近于0。
dual=False, # 对偶方法(原始问题和对偶问题),用于求解线性多核(liblinear)的L2的惩罚项上。样本数大于特征数时设置False  
tol=0.0001, # 迭代停止的条件,小于等于这个值停止迭代,损失迭代到的最小值。 
C=1.0, # 正则化系数λ的倒数,越小表示越强的正则化,默认为0。 
solver=’liblinear’, # 优化算法的参数,包括newton-cg,lbfgs,liblinear,sag,saga,对损失的优化的方法 
multi_class=’ovr’,# 多分类方式,有‘ovr','mvm'  




penalty:
         主要的目的只是为了解决过拟合,选择L2正则化。
如果还是过拟合,即预测效果差的时候,就可以考虑L1正则化。
如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。

          liblinear:坐标轴下降法来迭代优化损失函数
lbfgs:利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数
newton-cg:利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
sag:即随机平均梯度下降




multi_class:和

OVR(one-vs-rest):无论你是多少元逻辑回归,我们都可以看做二元逻辑回归。
对于第K类的分类决策,我们把所有第K类的样本作为正例,除了第K类样本以外的所有样本都作为负例,然后在上面做二元逻辑回归,得到第K类的分类模型。
其他类的分类模型获得以此类推。
MVM(many-vs-many):举MvM的特例one-vs-one(OvO)作讲解。如果模型有T类,我们每次在所有的T类样本里面选择两类样本出来,不妨记为T1类和T2类,
把所有的输出为T1和T2的样本放在一起,把T1作为正例,T2作为负例,进行二元逻辑回归,得到模型参数。我们一共需要T(T-1)/2次分类





L1 L2 OVR MVM

liblinear         是     是     是       否      

lbfgs 否 是 是 是

sag 否 是 是 是
newton-cg         否     是     是       是

二元 没区别

多元 有区别








 

 

 

 








 

posted on 2018-10-29 15:49  happygril3  阅读(154)  评论(0)    收藏  举报

导航