根据菜菜的课程进行整理,方便记忆理解
代码位置如下:
参数列表
| 参数 | 说明 |
|---|---|
| C | 浮点数,可不填,默认1.0 松弛系数的惩罚项系数。如果C值设定比较大,那SVC可能会选择边际较小的,能够更好地分类所有训练点的决策边界。如果C的设定值较小,那SVC会尽量最大化边界,决策功能会更简单, 但代价是训练的准确度。换句话说,C在SVM中的影响就像正则化参数对逻辑回归的影响 |
| kernel | 字符,可不填,默认“rbf" 指定要在算法中使用的核函数类型,可以输入"linear" , "poly", "rbf", "sigmoid","precomputed"或者可调用对象(如函数,类等)。如果给出可调用对象,则这个对象将被用于从特征矩阵x预先计算内核矩阵:该矩阵应该是是一个(n_samples, n_samples)结构的数组 |
| degree | 整数,可不填,默认3 多项式核函数的次数("poly"),如果核函数没有选择"poly",这个参数会被忽略 |
| gamma | 浮点数,可不填,默认“auto" 核函数的系数,仅在参数Kernel的选项为’'rbf", "poly'’和”sigmoid'’的时候有效. 当输入“auto",自动使用1/(n_features)作为gamma的取值。 在sklearn 0.22版本中,将可输入”scale",则使用1 /(n_ features * X.std())作为gamma的取值 若输入”auto_deprecated",则表示没有传递明确的gamma值(不推荐使用) |
| coef0 | 浮点数,可不填,默认二0.0 核函数中的独立项,它只在参数kernel为"poly"和"sigmoid"的时候有效。 |
| shrinking | 布尔值,可不填,默认True 是否使用收缩启发式计算(shrinking heuristics),如果使用,有时可以加速最优化的计算进程, 加速迭代速度。 P.S.此参数的相关信息和讨论甚少,参数背后的真实面貌必须要阅读源码才能够解读,在解读之前大家谨慎使用 |
| probability | 布尔值,可不填,默认False 是否启用概率估计。必须在调用fit之前启用它,启用此功能会减慢SVM的运算速度 |
| tol | 浮点数,可不填,默认1e-3 停止迭代的容差 |
| cache_size | 浮点数,可不填,默认200 指定该函数占用的缓存的大小(以MB为单位) |
| class_weight | 字典,"balanced",可不填 对svc,将类i的参数C设置为class_weight [i] * C。如果没有给出具体的class_weight,则所有类都占用相同的权重1。 "Balanced"模式使用y的值自动调整与输入数据中的类频率成反比的权重为n_samples/(n_classes*np.bincount(y)) |
| verbose | 布尔值,默认False 启用详细输出。请注意,此设置利用libsvm中的‘’进程前运行时间设置”。如果启用则可能无法在多线程上下文中正常运行 |
| max_iter | 整数,可不填,默认=1 最大迭代次数,输入’‘-1'‘表示没有限制 |
| decision_function_shape | 可输入“ovo'', "ovr",默认“ovr" 对所有分类器,是否返回结构为(n_samples,n_classes)的one-rest-rest("ovr")决策函数,或者返回libsvm中原始的,结构为(n_samples), n_classes * (n_classes一1)/2)的one-vs-one('ovo')决策函数。但是一对一("ovo")总是在多分类问题中才使用。 在版本0:19中更改:decision_function_shape默认为’ovr', 版本0.17中的新功能:建议使用decision_ function_ shape= 'ovr'0 更改版本0.17:已弃用decision_function_shape="ovo"和None |
| random_state | 整数随机数种子,None,可不填,默认None 在对数据进行混洗以用于概率估计时使用的伪随机数种子生成器。 如果输入整数,则 random state是随机数生成器使用的随机数种子; 如果是RandomState实例则 random_state是随机数生成器; 如果为None,则随机数生成器是np.random使用的 Ra ndomState实例 |
属性列表
| 属性 | 形态 | 含义 |
|---|---|---|
| support_ | 类数组,结构 = [n_SV] | 支持向量的索引 |
| support_vectors_ | 类数组,结构 = [n_SV,n_features] | 支持向量本身 |
| n_support_ | 类数组,类型为int32,结构 = [n_class] | 每个类的支持向量数 |
| dual_coef_ | 数组,结构 = [n_class , n_SV] | 决策函数中支持向量的系数。对于多分类问题而言,是所有ovo模式分类器中的系数。多类情况下系数的布局不是非常重要 |
| coef_ | 数组,结构 = [n_class * (n _class - 1) /2 , n_features] | 赋予特征的权重(原始问题中的系数),这个属性仅适用于线性内核。 coef_是从dual_coef_和support_ vectors_派生的只读属性 |
| intercept_ | 数组,结构 = [n_class * (n _class - 1) /2] | 决策函数中的常量,在二维平面上是截距 |
| fit_status_ | 整数 | 如果正确拟合,则显示0,否则为1(将发出警告) |
接口列表
| 接口 | 输入 | 含义 |
|---|---|---|
| decision_function | 特征矩阵X | 返回x中每个样本到划分数据集的超平面的距离,结构为(n_samples,)。如果 decision_function_shape ='ovr',则返回的矩阵结构为(n_samples, n_classes) |
| fit | 特征矩阵X,真实标签y[,n_sample_weight] | 根据给定的训练数据拟合SVM模型 如果x和y不是C顺序的,并且np.float64和x的连续数组不是 scipy.sparse.csr_matrix,则x和/或y可能会被复制。 如果X是密集数组,那么其他接口都将不支持稀疏矩阵作为输入 |
| predict | 测试集矩阵X | 对x中的样本进行分类,返回的结构为(n_samples,) |
| score | 特征矩阵X,真实标签y[,n_sample_weight] | 返回给定测试数据和标签的平均准确度 在多标签分类中,这是子集精度。子集精度是一个非常严格的度量,因为子集精度要求为每个样本预测的每个标签都必须正确 |
| set_params | 想要替换的新参数 | 设置此估算器的参数 |
| get_params | 无需输入 | 获取此估算工具的参数 |
| predict_log_proba | 特征矩阵X | 计算x中样本在所有可能分到的类下的对数概率。每个列按所有类出现在属性 classes_中的顺序排列。 模型需要在训练时计算概率信息:probability参数必须被设置为True 概率模型是使用交叉验证创建的;因此结果可能与通过预测获得的结果略有不同。此外,它可能在非常小的数据集上产生无意义的结果 |
| predict_proba | 特征矩阵X | 计算x中样本在所有可能分到的类下的概率。每个列按所有类出现在属性 classes_中的顺序排列。 模型需要在训练时计算概率信息:probability参数必须被设置为True 概率模型是使用交叉验证创建的;因此结果可能与通过预测获得的结果略有不同。此外,它可能在非常小的数据集上产生无意义的结果 |