zoukankan      html  css  js  c++  java
  • matlab自带工具箱svmtrain函数参数的选择

    1、在使用svmtrain函数时,需要使用核函数进行分类,百度大部分的都是关于libsvm下的核函数使用,看到了一篇写matlab的svmtrain参数选择,如下

    https://blog.csdn.net/shenziheng1/article/details/54178685/

    还可以使用 help svmtrain查看svmtrain函数的参数示例和使用示例,如需要阅读体验更好,请使用doc svmtrain 查看

    例子:

     1 e.g.
     2 clc;clear all
     3 load fisheriris %载入matlab自带的数据[有关数据的信息可以自己到UCI查找,这是UCI的经典数据之一],
     4 % UCI数据库http://archive.ics.uci.edu/ml/该数据库得到大家认可
     5 %其中meas是150*4的矩阵代表着有150个样本每个样本有4个属性描述
     6 %species代表着这150个样本的分类 
     7 data = [meas(:,1), meas(:,2)]; %在这里只取meas的第一列和第二列,即只选取前两个属性.
     8 groups = ismember(species,'setosa');
     9 %由于species分类中是有三个分类:setosa,versicolor,virginica,为了使问题简单,我们将其变为二分类问题:Setosa
    10 %and non-Setosa,groups中只有0和1
    11 [train, test] = crossvalind('holdOut',groups);%生成索引,一部分用来训练,其他部分用来测试
    12 cp = classperf(groups);%随机选择训练集合测试集,其中cp作用是后来用来评价分类器的.*/
    13 svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);
    14 %svmStruct= svmtrain(data(train,:),groups(train),'Kernel_Function','rbf','RBF_Sigma',1,'boxconstraint',1,'showplot',true);
    15 %使用svmtrain进行训练,得到训练后的结构svmStruct,在预测时使用.

     上述 ‘Kernel_Function’表示核函数,包括'linear'  (线性)默认、 'quadratic' (二次)、 'polynomial' (多项式默认三阶)、'rbf'(高斯径向基函数)

    线性核函数用于数据线性可分的情况下,后面三个一般应用于数据线性不可分的情况(将而二维数据映射到更高的维度从而使数据可区分)

    吴恩达老师 机器学习讲义  https://pan.baidu.com/s/1boGzeDx

          机器学习视频  http://open.163.com/special/opencourse/machinelearning.html

    高斯核函数为

    $$f(X_{i})=e^{-frac{||x_{i}-l_{i}||^2}{2sigma^2 }}$$

    ‘Rbf_sigma’表示高斯核函数的参数,

    ’boxconstraint‘表示惩罚系数,类同于libsvm中svmtrain的参数c

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

  • 相关阅读:
    第三次作业附加
    第三次作业(计算器第一步)
    课程学生列表
    第二次作业
    《面向对象程序设计》第一次作业
    期末总结
    最后的总成绩
    第七次作业
    第六次作业(团队作业)
    第五次成绩
  • 原文地址:https://www.cnblogs.com/zx-zhang/p/9972173.html
Copyright © 2011-2022 走看看