• sklearn.svm.SVC()函数解析(最清晰的解释)


    欢迎关注WX公众号:【程序员管小亮】

    sklearn.svm.SVC()函数全称为C-支持向量分类器。

    class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, 
    					coef0=0.0, shrinking=True, probability=False, tol=0.001, 
    					cache_size=200, class_weight=None, verbose=False, max_iter=-1, 
    					decision_function_shape=’ovr’, random_state=None)
    

    该实现基于libsvm,所以在参数设置上有很多相似的地方。

    PS: libsvm中的二次规划问题的解决算法是SMO。

    参数

    • C : float,可选(默认值= 1.0)
      错误术语的惩罚参数CC越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。

    • kernel : string,optional(default =‘rbf’)
      核函数类型,str类型,默认为’rbf’。可选参数为:

      • ’linear’:线性核函数
      • ‘poly’:多项式核函数
      • ‘rbf’:径像核函数/高斯核
      • ‘sigmod’:sigmod核函数
      • ‘precomputed’:核矩阵
      • precomputed表示自己提前计算好核函数矩阵,这时候算法内部就不再用核函数去计算核矩阵,而是直接用你给的核矩阵,核矩阵需要为n*n的。
    • degree : int,可选(默认= 3)
      多项式核函数的阶数,int类型,可选参数,默认为3。这个参数只对多项式核函数有用,是指多项式核函数的阶数n,如果给的核函数参数是其他核函数,则会自动忽略该参数。

    • gamma : float,optional(默认=‘auto’)
      核函数系数,float类型,可选参数,默认为auto。只对’rbf’ ,’poly’ ,’sigmod’有效。如果gamma为auto,代表其值为样本特征数的倒数,即1/n_features。

    • coef0 : float,optional(默认值= 0.0)
      核函数中的独立项,float类型,可选参数,默认为0.0。只有对’poly’ 和,’sigmod’核函数有用,是指其中的参数c。

    • shrinking : 布尔值,可选(默认= True)
      是否采用启发式收缩方式,bool类型,可选参数,默认为True。

    • probability : 布尔值,可选(默认=False)
      是否启用概率估计,bool类型,可选参数,默认为False,这必须在调用fit()之前启用,并且会fit()方法速度变慢。

    • tol : float,optional(默认值= 1e-3)
      svm停止训练的误差精度,float类型,可选参数,默认为1e^-3。

    • cache_size : float,可选(默认为200)
      内存大小,float类型,可选参数,默认为200。指定训练所需要的内存,以MB为单位,默认为200MB。

    • class_weight : {dict,‘balanced’},可选
      类别权重,dict类型或str类型,可选参数,默认为None。给每个类别分别设置不同的惩罚参数C,如果没有给,则会给所有类别都给C=1,即前面参数指出的参数C。如果给定参数’balance’,则使用y的值自动调整与输入数据中的类频率成反比的权重。

    • verbose : bool,默认值:False
      是否启用详细输出,bool类型,默认为False,此设置利用libsvm中的每个进程运行时设置,如果启用,可能无法在多线程上下文中正常工作。一般情况都设为False,不用管它。

    • max_iter : int,optional(默认值= -1)
      最大迭代次数,int类型,默认为-1,表示不限制。

    • decision_function_shape : ‘ovo’,‘ovr’,默认=‘ovr’
      决策函数类型,可选参数’ovo’和’ovr’,默认为’ovr’。’ovo’表示one vs one,’ovr’表示one vs rest。

    • random_state : int,RandomState实例或None,可选(默认=无)
      数据洗牌时的种子值,int类型,可选参数,默认为None。伪随机数发生器的种子,在混洗数据时用于概率估计。

    例子:

    >>> import numpy as np
    >>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
    >>> y = np.array([1, 1, 2, 2])
    >>> from sklearn.svm import SVC
    >>> clf = SVC(gamma='auto')
    >>> clf.fit(X, y) 
    SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
        decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
        max_iter=-1, probability=False, random_state=None, shrinking=True,
        tol=0.001, verbose=False)
    >>> print(clf.predict([[-0.8, -1]]))
    [1]
    

    SVM算法实现理论和代码在博客:【机器学习】《机器学习实战》读书笔记及代码:第6章 - 支持向量机

  • 相关阅读:
    flink checkpoint机制的实现
    openjdk源码分析之AtomicLong
    cpp之宏和函数调用约定
    JNA 相关问题
    spark RDD
    最长连续序列
    买卖股票的最佳时机
    二叉树展开为链表
    不同的二叉搜索树
    柱状图中最大的矩形
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302734.html
Copyright © 2020-2023  润新知