sklearn常用算法的参数说明:SVC,LogisticRegression

一、支持向量机SVC:主要调节参数:C、kernel、degree、gamma、coef0。7,8,9一般不考虑。
l,  C:C-SVC的惩罚参数C,默认值1.0,C值大,对误分类的惩罚大,趋向于训练集全分对的情况,准确率高,泛化能力弱。C值小,惩罚小,允许容错,泛化能力强。
2,  kernel :核函数,默认rbf,可选‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ 
3,  degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。
4,  gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认’auto’,选择1/n_features
5,  coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。
6,  probability :是否采用概率估计.默认False
7,  shrinking :是否采用shrinking heuristic启发式方法,默认true
8,  tol :停止训练的误差值大小,默认1e-3
9,  cache_size :制定核函数cache缓存大小,以MB为单位,默认200M
l0,  class_weight :每个类所占据的权重,不同的类设置不同的惩罚参数C, 默认自适应,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)
l1,  verbose :是否允许冗余输出
l2,  max_iter :最大迭代次数。-1为无限制。
l3,  decision_function_shape :‘ovo’ 一对一, ‘ovr’多对多  or None, 默认None
l4,  random_state :数据洗牌时的种子值,int值

二、逻辑回归LogisticRegression:主要调节参数:penalty、c
1,penalty:惩罚项规范,str类型,可选l1和l2,默认l2。newton-cg、sag和lbfgs需要损失函数的一阶或二阶连续导数,不支持没有连续导数的L1,只支持L2。liblinear和saga都支持。
    假设模型参数满足L1拉普拉斯分布,L2高斯分布,所谓范式就是加上对参数的约束,使得模型更不会过拟合(overfit),加约束的情况下,理论上可以获得泛化能力更强的结果。
2,dual:对偶或原始方法,bool类型,默认为False。对偶方法只用在求解线性多核(liblinear)的L2惩罚项上。当样本数量>样本特征的时候,dual通常设置为False。
3,tol:停止求解的标准,float类型,默认为1e-4。就是求解到多少的时候,停止,认为已经求出最优解。
4,c:正则化系数λ的倒数,float类型,默认为1.0。必须是正浮点型数。像SVM一样,越小的数值表示越强的正则化。
5,fit_intercept:是否存在截距或偏差,bool类型,默认为True。
5,intercept_scaling:仅在正则化项为”liblinear”,且fit_intercept设置为True时有用。float类型,默认为1。
7,class_weight:用于标示分类模型中各种类型的权重,一个字典或者’balanced’,默认不考虑权重,即为None。一般用于解决两类问题:a,误分类的代价很高。b,样本是高度失衡的。
    balanced权重计算方法:n_samples / (n_classes * np.bincount(y))。n_samples样本数,n_classes类别数,np.bincount(y)输出每个类的样本数。
8,random_state:随机数种子,int类型,可选参数,默认为无,仅在正则化优化算法为sag,liblinear时有用。
9,solver:优化算法选择参数,默认liblinear(适用于小数据集)。    可选算法:
    liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。
    lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
    newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
    sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。
    saga:线性收敛的随机优化算法的的变重。
    几点说明:sag每次仅使用了部分样本进行梯度迭代,样本量少时不要选它,大于10万,sag是第一选择。
    多分类时liblinear受限于一对剩余(OvR),须遍历所有类别进行分类;newton-cg,sag,saga和lbfgs能够处理多项损失。
    对于多元逻辑回归常见的有one-vs-rest(OvR)和many-vs-many(MvM)两种。MvM一般比OvR分类相对准确一些。liblinear只支持OvR,如需相对精确的多元逻辑回归尽量不选liblinear。
10,max_iter:算法收敛最大迭代次数,int类型,默认为10。仅在正则化优化算法为newton-cg, sag和lbfgs才有用,算法收敛的最大迭代次数。
11,multi_class:分类方式选择参数,str类型,可选参数ovr和multinomial,默认ovr。二元逻辑回归,ovr和multinomial并没有任何区别,区别主要在多元逻辑回归上。
12,verbose:日志冗长度,int类型。默认为0。就是不输出训练过程,1的时候偶尔输出结果,大于1,对于每个子模型都输出。
13,warm_start:热启动参数,bool类型。默认为False。如果为True,则下一次训练是以追加树的形式进行(重新使用上一次的调用作为初始化)。
14,n_jobs:并行数。int类型,默认为1。1的时候,用CPU的一个内核运行程序,2的时候,用CPU的2个内核运行程序。为-1的时候,用所有CPU的内核运行程序。

你可能感兴趣的:(PYTHON)