美文网首页
scikit-learn svm库使用小结

scikit-learn svm库使用小结

作者: For_freedom | 来源:发表于2018-07-05 11:46 被阅读0次

自己在hsi_svm3d.py中实现过scikit-learn svm库用于高光谱图像分类任务

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

kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’

0 – 线性:u'v

1 – 多项式:(gammau'v + coef0)^degree

2 – RBF函数:exp(-gamma|u-v|^2)

3 –sigmoid:tanh(gammau'v + coef0)

degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。

gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features

coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。

probability :是否采用概率估计?.默认为False

shrinking :是否采用shrinking heuristic方法,默认为true

tol :停止训练的误差值大小,默认为1e-3

cache_size :核函数cache缓存大小,默认为200

class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)

verbose :允许冗余输出?

max_iter :最大迭代次数。-1为无限制。

decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3

random_state :数据洗牌时的种子值,int值

主要调节的参数有:C、kernel、degree、gamma、coef0。

参数小结2

2018-07-05_114328.jpg 2018-07-05_114349.jpg

参数选择:

1、使用sklearn 中的gridsearchcv方法,通过列出参数空间,让程序自己去遍历每一种超参数组合,找到最优的一组。

在svm中使用过,确实不错,但其对于无法满足的超参数(比如Nusvm中的nu)没有解决方案,会直接崩。

参见笔记 网格追踪寻找最优超参数组合Parameter estimation using grid search with cross-validation

2、注意类别不平衡的情况下使用 class_weight='balanced'

使用技巧:

1、数据预处理和一些函数的详细说明在 API 参考手册http://sklearn.apachecn.org/cn/0.19.0/modules/classes.html#module-sklearn.preprocessing

2、在样本维数m>=2*样本个数n时,分类效果就不好了,

3、sklearn.preprocessing.LabelBinarizer

方法:fit_transform(y)

功能:Fit label binarizer and transform multi-class labels to binary labels.

它有一个逆向方法:inverse_transform(Y, threshold=None)

Transform binary labels back to multi-class labels

其实很多函数都有逆向方法。

参考:

1、sklearn.svm.SVC 参数说明

2、scikit-learn 支持向量机算法库使用小结

博客园-刘建平Pinard 3、API 参考手册

转载请注明如下内容:

知乎: @Forfreedom CSDN:Freedom_anytime的博客 - CSDN博客 简书:For_freedom - 简书

相关文章

  • sklearn 转载

    scikit-learn 线性回归算法库小结scikit-learn 逻辑回归类库使用小结scikit-learn...

  • scikit-learn svm库使用小结

    自己在hsi_svm3d.py中实现过scikit-learn svm库用于高光谱图像分类任务 参数小结1C:C-...

  • 独热编码

    关于独热编码的实现一. scikit-learn库 二. scikit-learn库 三. 使用pandas的ge...

  • scikit-learn点滴

    scikit-learn点滴 scikit-learn是非常漂亮的一个机器学习库,在某些时候,使用这些库能够大量的...

  • scikit-learn 逻辑回归类库使用小结(转)

    之前在逻辑回归原理小结这篇文章中,对逻辑回归的原理做了小结。这里接着对scikit-learn中逻辑回归类库的我的...

  • scikit-learn svm基本使用

    前言 SVM在解决分类问题具有良好的效果,出名的软件包有libsvm(支持多种核函数),liblinear。此外P...

  • 2018-12-16

    svm糖尿病预测 项目描述:基于python的sklearn库实现用svm预测糖尿病患者,使用rbf核函数。svm...

  • SVM

    支持向量机 一、算法原理 二、scikit-learn SVM 三、鸢尾花示例

  • 机器学习

    随机森林 参考文章 scikit-learn随机森林调参小结 用scikit-learn和pandas学习线性回归...

  • Pytorch如何划分训练集和测试集

    如果我们使用scikit-learn库,可以使用如下方法划分训练集和测试集: 如果我们不使用该库,在pytorch...

网友评论

      本文标题:scikit-learn svm库使用小结

      本文链接:https://www.haomeiwen.com/subject/oczuuftx.html