英文官方教程链接如下:
https://scikit-learn.org/stable/modules/svm.htmlhttps://scikit-learn.org/stable/modules/svm.html
想必大家都听过支持向量机这个概念了吧,我并不是太懂,但我觉得很有必要学一学。也学那些前辈也是在不停的探索之中慢慢成为高手的吧。
支持向量机 (SVMs) 是一种有监督学习方法。
它的优点有:一,在高维空间有效。二,维度数比样本数大的时候有效。三, 有效记忆。四,可以为决策函数指定不同的核函数。
它的缺点有:一,特征数比样本数大得多的时候会导致过拟合。二,它不直接提供概率估计,它使用昂贵的5折交叉验证。
官网展示的有 SVC、LinearSVC 等。说实话,这部分讲的还是挺难的,我也有许多地方没能搞懂。下面是类的介绍。
参数 | 描述 |
C | float,default=1.0,正则化参数,越大越强。 |
kernel | {'linear','poly','rbf','sigmoid','precomputed'} or callable,default='rbf'。指定算法中使用的内核类型。 |
degree | int,default=3,poly 核的度。 |
gamma | {'scale','auto'} or float,default='scale',针对 'rbf','poly','sigmoid' 的核系数。 |
coef0 | float,default=0.0,只在 'poly','sigmoid' 中重要。 |
shrinking | bool,default=True,是否使用 shrinking heuristic。 |
probability | bool,default=False,是否启用概率估计。在调用 ‘fit’ 之前必须启用该选项,浙江减慢该方法的速度,因为它内部使用5折交叉验证,‘predict_proba’ 可能与 ‘predict’ 不一致。 |
tol | float,default=1e-3,停止标准的公差。 |
cache_size | float,default=200,指定 kernel cache 的大小。 |
class_weight | dict or 'balanced',default=None,将 i 类的参数 C 设成 class_weight[i]*C。如果没指定,所有类都应该有一个权重。'balanced' 模式使用 y 的值自动调整权重,该权重与输入数据中的类频率成反比,如 “n_samples/(n_classes*np.bincount(y))”。 |
verbose | bool,default=False,启用详细输出。 |
max_iter | int,default=-1,解算器内迭代的硬限制,-1代表没限制。 |
decision_function_shape | {'ovo','ovr'},default='ovr',是否想起他分类器一样返回一个形为 (n_samples,n_classes) 的决策函数或是原始形状的 libsvm 的一对一决策函数。一对一 (ovo) 常用做多类别策略。 |
break_ties | bool,default=False。如果为True,decision_function_shape=‘ovr’,类别数大于2,‘predict’将会根据 decision_function 的信度值 解除绑定。否则在在绑定类别中的第一个类别将被返回。 |
random_state | int,RandomState 实例或 None,default=None。控制用作为了概率评估而打乱数据的伪随机数生成器。 |
类属性 | |
.class_weight_ | 形如 (n_classes,) 的数组,每类参数 C 的乘数。 |
.classes_ | 形如 (n_classes,) 的数组,类标签 |
.coef_ | 形如 (n_classes*(n_classes-1)/2,n_features) 的数组,给特征指定的权重,支队线性核的情况有用。 |
.dual_coef_ | 形如 (n_classes-1,n_SV) 的数组,决策函数中支持向量的对偶系数。 |
.fit_status_ | int,如果正确拟合则为0,否则为1 |
.intercept_ | 形如 (n_classes*(n_classes-1)/2,) 的数组,决策函数里的常量。 |
.n_features_in_ | 拟合时的特征数量。 |
.feature_names_in_ | 形如 (n_features_in_,) 的数组,拟合过程中特征的名称。 |
.support_ | 形如 (n_SV) 的数组,支持向量的切片。 |
.support_vectors_ | 形如 (n_SV,n_features) 的数组,支持向量。 |
.n_support_ | 形如 (n_classes,) 的数组,每类的支持向量的数量。 |
.probA_ | 形如 (n_classes*(n_classes-1)/2) 的数组。 |
.probB_ | 形如 (n_classes*(n_classes-1)/2) 的数组。如果 'probability=True',它对应于在Platt缩放中学习的参数,以根据决策值生成概率估计。否则为空数组。 |
.shape_fit_ | 形如 (n_dimensions_of_X,) 的整形元组。 |