Python 支持向量机介绍

1.线性可分SVC.LinearSVC()(官方链接:https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC

sklearn.svm.LinearSVC(penalty=’l2’loss=’squared_hinge’dual=Truetol=0.0001C=1.0multi_class=’ovr’fit_intercept=Trueintercept_scaling=1class_weight=Noneverbose=0random_state=Nonemax_iter=1000)

参数

  • penalty:惩罚项,默认为l2范数
  • loss:损失函数,默认为squared_hinge.'hinge'是标准SVM损失(例如由SVC类使用),而'squared_hinge'是铰链损失的平方。
  • tol float, optional (default=1e-4)容忍度。用于指定SVM模型迭代的收敛条件,默认为0.001
  • C float, optional (default=1.0),惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。C越大,对误分类的惩罚越大,C越小,对误分类的惩罚越小。
  • fit_intercept : boolean,optional(default = True)是否计算此模型的截距。如果设置为false,则不会在计算中使用截距(即数据预计已经居中)。
  • max_iter:指定模型求解过程中的最大迭代次数,默认为1000
  • random_state:用于指定随机数生成器的种子

属性

  • coef_ : array,赋予特征的权重(原始问题中的系数)。这仅适用于线性内核。
  • intercept_ : 决策函数中的常量。

2.非线性可分SVC()官方链接:https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC

SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True,probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, random_state=None)

参数

  • C:用于指定目标函数中松弛因子的惩罚系数值,默认为1
  • kernel:用于指定SVM模型的核函数,该参数如果为'linear',就表示线性核函数;如果为'poly',就表示多项式核函数,核函数中的r和p值分别使用degree参数和gamma参数指定;如果为'rbf',表示径向基核函数,核函数中的r参数值仍然通过gamma参数指定;如果为'sigmoid',表示Sigmoid核函数,核函数中的r参数值需要通过gamma参数指定;如果为'precomputed',表示计算一个核矩阵
  • degree:用于指定多项式核函数中的p参数值
  • gamma:用于指定多项式核函数或径向基核函数或Sigmoid核函数中的r参数值
  • coef0:用于指定多项式核函数或Sigmoid核函数中的r参数值
  • shrinking:bool类型参数,是否采用启发式收缩方式,默认为True
  • probability:bool类型参数,是否需要对样本所属类别进行概率计算,默认为False
  • tol:用于指定SVM模型迭代的收敛条件,默认为0.001
  • cache_size:用于指定核函数运算的内存空间,默认为200M
  • class_weight:用于指定因变量类别的权重,如果为字典,则通过字典的形式{class_label:weight}传递每个类别的权重;如果为字符串'balanced',则每个分类的权重与实际样本中的比例成反比,当各分类存在严重不平衡时,设置为'balanced'会比较好;如果为None,则表示每个分类的权重相等
  • verbose:bool类型参数,是否输出模型迭代过程的信息,默认为0,表示不输出
  • max_iter:指定模型求解过程中的最大迭代次数,默认为-1,表示不限制迭代次数
  • random_state:用于指定随机数生成器的种子

属性

  • support_ : 支持向量指数。
  • support_vectors_ : 支持向量。
  • n_support_ : 每个类的支持向量数。
  • dual_coef_ : 决策函数中支持向量的系数。对于多类,所有1对1分类器的系数。多类情况下系数的布局有点不重要。有关详细信息,请参阅“用户指南”的“SVM”部分中有关多类分类的部分。
  • coef_ : 赋予特征的权重(原始问题中的系数)。这仅适用于线性内核。
  • intercept_ 决策函数中的常量。
  • fit_status_ : 如果正确安装,则为0,否则为1(将发出警告)

3.支持向量回归svm.SVR()官方链接:https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html#sklearn.svm.SVR

参数:

  • kernel : string,optional(default ='rbf')内核函数,默认时为 'rbf'。可选   'linear','poly','rbf','sigmoid','precomputed
  • gamma : float,optional(默认='auto') gamma值,默认为‘auto'。'rbf','poly'和'sigmoid'的核系数。
  • coef0 : float,optional(默认值= 0.0)
  • tol : float,optional(默认值= 1e-3)用于指定SVM模型迭代的收敛条件,默认为0.001
  • : float,可选(默认值= 1.0)用于指定目标函数中松弛因子的惩罚系数值,默认为1
  • epsilon : float,optional(默认值= 0.1)Epsilon在epsilon-SVR模型中。它指定了epsilon-tube,其中训练损失函数中没有惩罚与在实际值的距离epsilon内预测的点。
  • cache_size : float,可选  指定内核缓存的大小(以MB为单位)。默认值:200
  • max_iter : int,optional(默认值= -1)指定模型求解过程中的最大迭代次数,默认为-1,表示不限制迭代次数

属性:

  • support_ : array-like,shape = [n_SV]   支持向量指数。
  • support_vectors_ : array-like,shape = [nSV,n_features]  支持向量。
  • dual_coef_ : array,shape = [1,n_SV]   决策函数中支持向量的系数。
  • coef_ : array,shape = [1,n_features]   赋予特征的权重(原始问题中的系数)。这仅适用于线性内核。
  • intercept_ : array,shape = [1]   决策函数中的常量。

posted on 2019-08-29 14:59  LiErRui  阅读(274)  评论(0)    收藏  举报

导航