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=True, tol=0.0001, C=1.0, multi_class=’ovr’, fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_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
- C : 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] 决策函数中的常量。
浙公网安备 33010602011771号