支持向量机
SVC

SVC参数解释
- C: 目标函数的惩罚系数C,用来平衡分类间隔margin和错分样本的,default C = 1.0
- kernel:参数选择有RBF, Linear, Poly, Sigmoid,或者自定义一个核函数, 默认的是"RBF",即径向基核,也就是高斯核函数;而Linear指的是线性核函数,Poly指的是多项式核,Sigmoid指的是双曲正切函数tanh核。
- degree:degree决定了多项式核的最高次幂
- gamma:核函数的系数('Poly', 'RBF' and 'Sigmoid'), 默认是gamma = 1 / n_features,即核函数的带宽,超圆的半径
- coef0:核函数中的独立项,'RBF' and 'Poly'有效,即加在这两种核函数后面的bias值,次幂为0的项,默认是0.0,即认为多项式的核的常数项为0;
- probablity: 布尔取值,默认是false,指的是预测判定的时候是否采用概率估计;
- shrinking:是否进行启发式;
- tol(default = 1e - 3): svm结束标准的精度,即容忍1000分类里出现一个错误;
- cache_size: 制定训练所需要的内存(以MB为单位);
- class_weight: 正类和反类的样本数量是不一样的,这里就会出现类别不平衡问题,该参数就是指每个类所占据的权重,默认为1,即默认正类样本数量和反类一样多,也可以用一个字典dict指定每个类的权值,或者选择默认的参数balanced,指按照每个类中样本数量的比例自动分配权值。
- verbose: 在训练数据完成之后,会把训练的详细信息全部输出打印出来,可以看到训练了多少步,训练的目标值是多少;但是在多线程环境下,由于多个线程会导致线程变量通信有困难,因此verbose选项的值就是出错,所以多线程下不要使用该参数。
- max_iter: 最大迭代次数,这个是硬限制,它的优先级要高于tol参数,不论训练的标准和精度达到要求没有,都要停止训练。默认值是-1,指没有最大次数限制;
- decision_function_shape : 原始的SVM只适用于二分类问题,如果要将其扩展到多类分类,就要采取一定的融合策略,这里提供了三种选择。‘ovo’ 一对一,决策所使用的返回的是(样本数,类别数*(类别数-1)/2), ‘ovr’ 一对多,返回的是(样本数,类别数),或者None,就是不采用任何融合策略, 默认是ovr,因为此种效果要比oro略好一点。
- random_state :在使用SVM训练数据时,要先将训练数据打乱顺序,用来提高分类精度,这里就用到了伪随机序列。如果该参数给定的是一个整数,则该整数就是伪随机序列的种子值;如果给定的就是一个随机实例,则采用给定的随机实例来进行打乱处理;如果啥都没给,则采用默认的 np.random实例来处理。
SVC提供的属性:
- support_ : 是一个array类型,它指的是训练出的分类模型的支持向量的索引,即在所有的训练样本中,哪些样本成为了支持向量。
- support_vectors_: 支持向量的集合,即汇总了当前模型的所有的支持向量。
- n_support_ : 比如SVC将数据集分成了4类,该属性表示了每一类的支持向量的个数。
- dual_coef_ :array, shape = [n_class-1, n_SV] 对偶系数。支持向量在决策函数中的系数,在多分类问题中,这个会有所不同。
- coef_ : array,shape = [n_class-1, n_features] 该参数仅在线性核时才有效,指的是每一个属性被分配的权值。
- intercept_ :array, shape = [n_class * (n_class-1) / 2] 决策函数中的常数项bias。和coef_共同构成决策函数的参数值。
SVR
