主要内容

CompactClassificationSVM

用于一类和二元分金宝app类的紧凑支持向量机(SVM)

描述

CompactClassificationSVM是支持向量机(SVM)分类器的紧凑版本。金宝app紧凑分类器不包括用于训练SVM分类器的数据。因此,您不能使用紧凑分类器执行某些任务,例如交叉验证。使用紧凑的SVM分类器来完成诸如预测新数据标签之类的任务。

创建

创建一个CompactClassificationSVM模特出身丰满,训练有素ClassificationSVM分类器紧凑的

属性

全部展开

支持向量机性能

此属性是只读的。

训练的分类器系数,指定为年代-by-1数值向量。年代是经过训练的分类器中支持向量的个数金宝app,总和(Mdl.IsS金宝appupportVector)

α包含从对偶问题训练的分类器系数,即估计的拉格朗日乘子。方法删除重复项RemoveDuplicates的名称-值对参数fitcsvm,那么对于一个给定的重复观测集合,即支持向量,金宝appα包含一个对应于整个集合的系数。也就是MATLAB®将非零系数属性为一组重复项中的一个观测值,且系数为0集合中所有其他重复的观测值。

数据类型:|

此属性是只读的。

线性预测系数,指定为数值向量。的长度β等于用于训练模型的预测器的数量。

MATLAB使用全虚拟编码扩展预测器数据中的分类变量。也就是说,MATLAB为每个分类变量的每一层创建一个虚拟变量。β为每个预测变量(包括虚拟变量)存储一个值。例如,如果有三个预测因子,其中一个是具有三个级别的分类变量,则β是包含五个值的数字向量。

如果KernelParameters。函数“线性”,然后分类评分进行观察x

f x x / 年代 β + b

Mdl商店βb,年代在属性中β偏见,KernelParameters。规模,分别。

要手动估计分类分数,必须首先对训练期间应用的预测器数据应用任何转换。具体来说,如果你指定的话“标准化”,真的当使用fitcsvm,则必须使用平均值手动标准化预测器数据Mdl。μ还有标准差Mdl。σ,然后将结果除以in的核标度Mdl.KernelParameters.Scale

所有支持向量机函数,如resubPredict而且预测,在估计前应用所需的转换。

如果KernelParameters。函数不是“线性”,然后β为空([]).

数据类型:|

此属性是只读的。

偏差项,指定为标量。

数据类型:|

此属性是只读的。

内核参数,指定为结构数组。内核参数属性包含该表中列出的字段。

描述
函数

核函数用来计算元素的格拉姆矩阵.详细信息请参见“KernelFunction”

规模

核尺度参数用于缩放模型所训练的预测器数据的所有元素。详细信息请参见“KernelScale”

的值KernelParameters,使用点表示法。例如,Mdl.KernelParameters.Scale显示内核比例参数值。

软件接受KernelParameters作为输入,不修改它们。

数据类型:结构体

此属性是只读的。

金宝app支持向量类标签,指定为年代-by-1数值向量。年代是经过训练的分类器中支持向量的个数金宝app,总和(Mdl.IsS金宝appupportVector)

值为+1金宝appSupportVectorLabels指示对应的支持向量属于正类(金宝app一会{2}).值为1指示对应的支持向量属于负类(金宝app一会{1}).

方法删除重复项RemoveDuplicates的名称-值对参数fitcsvm,那么对于一个给定的重复观测集合,即支持向量,金宝app金宝appSupportVectorLabels包含一个唯一的支持向量标签。金宝app

数据类型:|

此属性是只读的。

金宝app已训练分类器中的支持向量,指定为年代——- - - - - -p数字矩阵。年代是经过训练的分类器中支持向量的个数金宝app,总和(Mdl.IsS金宝appupportVector),p是预测器数据中预测器变量的数量。

金宝appSupportVectors包含预测器数据行XMATLAB认为是支持向量。金宝app如果你指定“标准化”,真的训练SVM分类器时使用fitcsvm,然后金宝appSupportVectors的标准化行X

方法删除重复项RemoveDuplicates的名称-值对参数fitcsvm,那么对于一个给定的重复观测集合,即支持向量,金宝app金宝appSupportVectors包含一个唯一的支持向量。金宝app

数据类型:|

其他分类属性

此属性是只读的。

分类预测指标,指定为正整数向量。CategoricalPredictors包含指示相应预测符是分类的索引值。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([]).

数据类型:

此属性是只读的。

训练中使用的唯一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。一会与类标签具有相同的数据类型Y(该软件将字符串数组视为字符向量的单元格数组。)一会也决定了类的顺序。

数据类型:||逻辑|字符|细胞|分类

此属性是只读的。

错误分类代价,用数字方阵表示。

  • 对于两节课的学习成本属性指定的错误分类代价矩阵成本拟合函数的名称-值参数。行对应真实的类,列对应预测的类。也就是说,成本(i, j)将一个点分类的成本是多少j如果它真正的阶级是.的行和列的顺序成本中类的顺序对应一会

  • 对于单课学习,成本= 0

数据类型:

此属性是只读的。

扩展的预测器名称,指定为字符向量的单元格数组。

如果模型对分类变量使用哑变量编码,则ExpandedPredictorNames包括描述展开变量的名称。否则,ExpandedPredictorNamesPredictorNames

数据类型:细胞

此属性是只读的。

预测器的意思是,指定为数字向量。如果你指定“标准化”,1“标准化”,真的当你训练SVM分类器时使用fitcsvm的长度。μ等于预测因子的数量。

MATLAB利用虚拟变量扩展了预测器数据中的分类变量。μ为每个预测变量(包括虚拟变量)存储一个值。但是,MATLAB没有对包含分类变量的列进行标准化。

如果你设置“标准化”,假的当你训练SVM分类器时使用fitcsvm,然后μ是空向量([]).

数据类型:|

此属性是只读的。

预测器变量名,指定为字符向量的单元格数组。元素的顺序PredictorNames对应于预测器名称在训练数据中出现的顺序。

数据类型:细胞

此属性是只读的。

每种类别的先验概率,用数字向量表示。

对于两类学习,如果你指定了一个成本矩阵,那么软件会通过合并成本矩阵中描述的惩罚来更新先验概率。

  • 对于两类学习,软件对指定的先验概率进行归一化之前拟合函数的名称-值参数,使概率之和为1。的之前属性存储归一化先验概率。元素的顺序之前对应于的元素Mdl。一会

  • 对于单课学习,Prior = 1

数据类型:|

分数转换,指定为字符向量或函数句柄。ScoreTransform表示用于转换预测分类分数的内置转换函数或函数句柄。

将分数转换函数更改为函数例如,使用点表示法。

  • 对于内置函数,请输入字符向量。

    Mdl。ScoreTransform = '函数”;

    该表描述了可使用的内置函数。

    价值 描述
    “doublelogit” 1 / (1 +e2x
    “invlogit” 日志(x/ (1 -x))
    “ismax” 将得分最大的类的得分设置为1,并将所有其他类的得分设置为0
    分对数的 1 / (1 +e- - - - - -x
    “没有”“身份” x(转换)
    “标志” 1x< 0
    为0x= 0
    1x> 0
    “对称” 2x- 1
    “symmetricismax” 将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1
    “symmetriclogit” 2 / (1 +e- - - - - -x) - 1

  • 对于MATLAB函数或您定义的函数,输入其函数句柄。

    Mdl。ScoreTransform = @函数

    函数必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。

数据类型:字符|function_handle

此属性是只读的。

预测器标准偏差,指定为数值向量。

如果你指定“标准化”,真的当你训练SVM分类器时使用fitcsvm的长度。σ等于预测变量的个数。

MATLAB利用虚拟变量扩展了预测器数据中的分类变量。σ为每个预测变量(包括虚拟变量)存储一个值。但是,MATLAB没有对包含分类变量的列进行标准化。

如果你设置“标准化”,假的当你训练SVM分类器时使用fitcsvm,然后σ是空向量([]).

数据类型:|

对象的功能

compareHoldout 比较使用新数据的两种分类模型的准确性
discard金宝appSupportVectors 线性支持向量机分金宝app类器的支持向量弃用
边缘 为支持向量机分类器找到分类边金宝app
fitPosterior 紧凑型支持向量机(SVM)分类器的后验概率拟合金宝app
收集 收集属性统计和机器学习工具箱来自GPU的对象
incrementalLearner 将二元分类支持向量机(SVM)模型转化为增量学习器金宝app
石灰 局部可解释模型不可知解释(LIME)
损失 找出支持向量机分类器的分类误差金宝app
保证金 为支持向量机分类器找到分类边界金宝app
partialDependence 计算部分依赖关系
plotPartialDependence 创建部分依赖图(PDP)和个别条件期望图(ICE)
预测 利用支持向量机(SVM)分类器对观测数据进行分类金宝app
沙普利 沙普利值
更新 更新用于代码生成的模型参数

例子

全部折叠

通过删除训练数据来减少全支持向量机(SVM)分类器的金宝app大小。完整的SVM分类器(即,ClassificationSVM分类器)保存训练数据。为了提高效率,可以使用较小的分类器。

加载电离层数据集。

负载电离层

训练SVM分类器。标准化预测器数据并指定类的顺序。

SVMModel = fitcsvm(X,Y,“标准化”,真的,...“类名”, {“b”‘g’})
SVMModel = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 Alpha: [90x1 double] Bias: -0.1342 KernelParameters: [1x1 struct] Mu:[0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501…]西格玛:[0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927…] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] Is金宝appSupportVector: [351x1 logical]求解器:“SMO”属性,方法

SVMModel是一个ClassificationSVM分类器。

减小SVM分类器的大小。

CompactSVMModel = compact(vmmodel)
CompactSVMModel = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' Alpha: [90x1 double]偏差:-0.1342 KernelParameters: [1x1 struct] Mu:[0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501…]西格玛:[0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927…] 金宝appSupportVectors: [90x34 double] SupportVectorLabels: [90x1 double]属性,方法

CompactSVMModel是一个CompactClassificationSVM分类器。

显示每个分类器使用的内存量。

谁(“SVMModel”“CompactSVMModel”
名称大小字节分类属性CompactSVMModel 1x1 31058 classreg.learning.classif.CompactClassificationSVM vmmodel 1x1 141148 ClassificationSVM

完整的SVM分类器(SVMModel)比紧凑的SVM分类器(CompactSVMModel).

为了有效地标记新的观察结果,您可以删除SVMModel从MATLAB®工作区,然后传递CompactSVMModel和新的预测值预测

为了进一步减小紧凑SVM分类器的大小,可以使用discard金宝appSupportVectors函数丢弃支持向量。金宝app

加载电离层数据集。

负载电离层

训练并交叉验证SVM分类器。标准化预测器数据并指定类的顺序。

rng (1);%用于再现性CVSVMModel = fitcsvm(X,Y,“标准化”,真的,...“类名”, {“b”‘g’},“CrossVal”“上”
CVSVMModel = ClassificationPartitionedModel CrossValidatedModel: 'SVM' PredictorNames: {1x34 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none'属性,方法

CVSVMModel是一个ClassificationPartitionedModel交叉验证SVM分类器。默认情况下,该软件实现了10次交叉验证。

或者,你可以交叉验证一个训练过的ClassificationSVM分类器crossval

使用点符号检查一个训练好的折叠。

CVSVMModel。训练有素的{1}
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' Alpha: [78x1 double]偏差:-0.2210 KernelParameters: [1x1 struct] Mu:[0.8888 0 0.6320 0.0406 0.5931 0.1205 0.5361…]西格玛:[0.3149 0 0.5033 0.4441 0.5255 0.4663 0.4987…] 金宝appSupportVectors: [78x34 double] SupportVectorLabels: [78x1 double]属性,方法

每条折线都是CompactClassificationSVM分类器训练了90%的数据。

估计泛化误差。

生成器= kfoldLoss(CVSVMModel)
genError = 0.1168

平均而言,泛化误差约为12%。

参考文献

哈斯蒂、T.、R.蒂布谢拉尼和J.弗里德曼。统计学习的要素,第二版。纽约:施普林格,2008。

[2]肖科普夫,B. J. C.普拉特,J. C.肖-泰勒,A. J.斯莫拉和R. C.威廉姆森。“估算高维分布的支持度”金宝app神经计算.第13卷,第7期,2001,第1443-1471页。

[3]克里斯汀尼,N.和J. C.肖-泰勒。支持向量机和其他基于核的学习方法简介金宝app.英国剑桥:剑桥大学出版社,2000年。

[4]肖科普夫,B.和A.斯莫拉。核学习:支持向量机,正则化,优化及超越,自适应金宝app计算和机器学习。马萨诸塞州剑桥:麻省理工学院出版社,2002年。

扩展功能

版本历史

在R2014a中引入

全部展开