文档

ClassificationSVM

万博1manbetx支持向量机(SVM)看到下面成了和二进制分类

描述

ClassificationSVM是一个万博1manbetx支持向量机(SVM)分类器看到下面成了和两级学习。训练有素的ClassificationSVM分类器存储训练数据,参数值,先验概率支持向量,和算法实现的信息。万博1manbetx使用这些分类器来执行任务,如配件score-to-posterior-probability变换函数(见fitPosterior)和预测新数据(见标签预测)。

创建

创建一个ClassificationSVM对象的使用fitcsvm

属性

全部展开

支持向量机性能

这个属性是只读的。

训练分类器系数,作为指定年代1数字向量。年代支持向量的个数在训练分类器,万博1manbetx总和(Mdl.IsS万博1manbetxupportVector)

α从对偶问题包含了训练分类器系数,也就是说,估计拉格朗日乘数法。如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,万博1manbetxα包含一个系数对应于整个集。也就是说,MATLAB®属性的非零系数,观察组副本和一个系数0所有其他的重复观测。

数据类型:|

这个属性是只读的。

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

MATLAB使用完整的虚拟扩展分类变量的预测数据编码。即MATLAB为每个级别创建一个虚拟变量的每个类别变量。β存储一个值为每个预测变量,包括虚拟变量。例如,如果有三个因素,其中一个是类别变量有三个水平,β是一个数值向量包含五个值。

如果KernelParameters.Function“线性”观察,然后分类评分x

f ( x ) = ( x / 年代 ) β + b

Mdl商店β,b,年代在属性β,偏见,KernelParameters.Scale,分别。

手动来估计分类的分数,你必须首先应用任何转换过程中使用预测数据训练。具体地说,如果你指定“标准化”,真的当使用fitcsvm,那么你必须手动规范预测数据使用的意思Mdl.Mu和标准偏差Mdl.Sigma,然后将结果除以内核规模Mdl.KernelParameters.Scale

所有支持向量机功能,如resubPredict预测估计之前,应用所需的转换。

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

数据类型:|

这个属性是只读的。

偏见,指定为一个标量。

数据类型:|

这个属性是只读的。

箱约束,指定为一个向量的数值n1箱约束n训练数据是观测的数量(见NumObservations属性)。

如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的一组重复观察,MATLAB金额框约束然后属性和一个观察。MATLAB的箱约束属性0所有其他的观察。

数据类型:|

这个属性是只读的。

缓存信息,指定为一个结构数组。缓存信息包含这个表中描述的领域。

描述
大小

软件的缓存大小(MB)储备训练SVM分类器。有关详细信息,请参见“CacheSize”

算法

软件使用的缓存算法在优化。目前,唯一可用的缓存算法队列。你不能设置缓存算法。

显示的字段CacheInfo通过使用点符号。例如,Mdl.CacheInfo.Size显示缓存大小的值。

数据类型:结构体

这个属性是只读的。

万博1manbetx支持向量指标,作为指定n1逻辑矢量标志是否相应的预测数据矩阵是一个观察万博1manbetx支持向量n训练数据是观测的数量(看到了吗NumObservations)。

如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,万博1manbetxIs万博1manbetxSupportVector作为支持向量标志只有一个观察。万博1manbetx

数据类型:逻辑

这个属性是只读的。

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

描述
函数

核函数用于计算的元素格拉姆矩阵。有关详细信息,请参见“KernelFunction”

规模

内核尺度参数用于规模预测数据的所有元素的模型是训练有素的。有关详细信息,请参见“KernelScale”

显示的值KernelParameters,使用点符号。例如,Mdl.KernelParameters.Scale显示内核参数值。

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

数据类型:结构体

这个属性是只读的。

看到下面成了一个学习参数ν,指定为一个积极的标量。

数据类型:|

这个属性是只读的。

比例的训练数据中的异常值,指定为一个数字标量。

数据类型:

这个属性是只读的。

优化常规训练SVM分类器使用,指定为ISDA的,“L1QP”,或SMO的。更多细节,请参阅“规划求解”

数据类型:字符

这个属性是只读的。

万博1manbetx支持向量类的标签,作为一个指定年代1数字向量。年代支持向量的个数在训练分类器,万博1manbetx总和(Mdl.IsS万博1manbetxupportVector)

的值+ 1万博1manbetxSupportVectorLabels表明积极的相应的支持向量类(万博1manbetx一会{2})。的值1显示相应的支持向量是负类(万博1manbetx一会{1})。

如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,万博1manbetx万博1manbetxSupportVectorLabels包含一个独特的支持向量的标签。万博1manbetx

数据类型:|

这个属性是只读的。

万博1manbetx支持向量分类器训练,指定为一个年代——- - - - - -p数字矩阵。年代支持向量的个数在训练分类器,万博1manbetx总和(Mdl.IsS万博1manbetxupportVector),p是预测变量预测的数据的数量。

万博1manbetxSupportVectors包含行数据的预测XMATLAB认为支持向量。万博1manbetx如果您指定“标准化”,真的当训练SVM分类器使用fitcsvm,然后万博1manbetxSupportVectors包含标准化的行X

如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,万博1manbetx万博1manbetxSupportVectors包含一个独特的支持向量。万博1manbetx

数据类型:|

其他分类属性

这个属性是只读的。

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值对应的列包含分类预测的预测数据。如果所有的预测都直言,那么这个属性是空的([])。

数据类型:|

这个属性是只读的。

独特的类标签用于训练模型,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。

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

这个属性是只读的。

误分类代价,指定为一个数字方阵,成本(i, j)是一个指向类分类的成本j如果它真正的类

在培训期间,软件更新的先验概率将描述的惩罚成本矩阵。

  • 对两种学习,成本总是有这种形式:成本(i, j) = 1如果我~ = j,成本(i, j) = 0如果我=我。行对应于真实的类和列对应预测类。的行和列的顺序成本对应于类的顺序一会

  • 看到下面成了学习,成本= 0

更多细节,请参阅算法

数据类型:

这个属性是只读的。

扩展预测名称,指定为一个单元阵列的特征向量。

如果模型使用哑变量编码为分类变量ExpandedPredictorNames包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

数据类型:字符|细胞

这个属性是只读的。

训练数据梯度值,指定为一个数值向量。的长度梯度等于观测的数量(见NumObservations)。

数据类型:|

这个属性是只读的。

参数用于训练ClassificationSVM模型,指定为一个结构数组。ModelParameters包含名称-值对参数值等参数值用于训练SVM分类器。ModelParameters不包含估计参数。

访问的字段ModelParameters通过使用点符号。例如,访问的初始值估计α通过使用Mdl.ModelParameters.Alpha

数据类型:结构体

这个属性是只读的。

预测方法,指定为一个数值向量。如果您指定“标准化”,1“标准化”,真的当你训练一个支持向量机分类器使用fitcsvm,然后的长度μ等于预测的数量。

MATLAB使用完整的虚拟扩展分类变量的预测数据编码。即MATLAB为每个级别创建一个虚拟变量的每个类别变量。μ存储一个值为每个预测变量,包括虚拟变量。然而,MATLAB并不规范的列包含分类变量。

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

数据类型:|

这个属性是只读的。

训练数据存储在观测的数量XY,指定为一个数字标量。

数据类型:|

这个属性是只读的。

预测变量名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames对应的顺序预测的名字出现在训练数据。

数据类型:字符|细胞

这个属性是只读的。

先验概率为每个类,指定为一个数值向量。元素的顺序之前对应的元素Mdl.ClassNames

两种学习,如果你指定一个成本矩阵,那么软件更新的先验概率将描述的惩罚成本矩阵。

更多细节,请参阅算法

数据类型:|

这个属性是只读的。

响应变量名称,指定为一个特征向量。

数据类型:字符

分数变换,指定为一个特征向量或函数句柄。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为每个级别创建一个虚拟变量的每个类别变量。σ存储一个值为每个预测变量,包括虚拟变量。然而,MATLAB并不规范的列包含分类变量。

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

数据类型:|

这个属性是只读的。

观察权重训练SVM分类器使用,指定为一个n1数字向量。n是观测的数量(见NumObservations)。

fitcsvm可实现观察中指定的权重“重量”名称-值对的观点,这样的元素W在一个特定的类和类的先验概率。

数据类型:|

这个属性是只读的。

Unstandardized预测用于训练SVM分类器,指定为一个数字矩阵或表。

每一行的X对应于一个观察,每一列对应一个变量。

MATLAB排除包含至少一个缺失值的观测,并删除相应的元素Y

数据类型:|

这个属性是只读的。

类标签用于训练SVM分类器,分类或字符数组,指定逻辑或者数值向量、数组或单元的特征向量。Y是相同的数据类型作为输入参数Yfitcsvm

每一行的Y代表观察到的分类对应的行X

MATLAB排除元素包含缺失值,并删除相应的观测X

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

收敛控制属性

这个属性是只读的。

融合信息,指定为一个结构数组。

描述
聚合 逻辑标志指示是否算法融合(1表明收敛)。
ReasonForConvergence 特征向量表明软件使用的标准来检测融合。
差距 标量可行性双重差距和原始目标函数。
GapTolerance 标量可行性差距宽容。设置这个宽容,例如1)依照,通过使用名称-值对的论点依照“GapTolerance”, 1fitcsvm
DeltaGradient 上部和下部违规者Scalar-attained梯度差别
DeltaGradientTolerance 标量对梯度上下违规者的区别。设置这个宽容,例如1)依照,通过使用名称-值对的论点依照“DeltaGradientTolerance”, 1fitcsvm
LargestKKTViolation 最大标量Karush-Kuhn-Tucker(马)违反价值。
KKTTolerance 标量容忍违反最大的马。设置这个公差,例如,1 e - 3,通过使用名称-值对的论点“KKTTolerance”, 1 e - 3fitcsvm
历史

结构数组包含融合信息设置优化迭代。字段:

  • NumIterations:数值向量的迭代索引记录融合信息的软件

  • 差距:数值向量差距值的迭代

  • DeltaGradient:数值向量DeltaGradient值的迭代

  • LargestKKTViolation:数值向量LargestKKTViolation值的迭代

  • Num万博1manbetxSupportVectors:数值向量迭代表明支持向量的个数万博1manbetx

  • 客观的:数值向量客观的值的迭代

客观的 标量值的双目标函数。

数据类型:结构体

这个属性是只读的。

优化日常所需的迭代次数达到收敛,指定为一个正整数。

设置限制的迭代次数1000年例如,指定“IterationLimit”, 1000年当你训练SVM分类器使用fitcsvm

数据类型:

这个属性是只读的。

设置迭代次数减少之间的活跃,指定为一个非负整数。

设置收缩时期1000年例如,指定“ShrinkagePeriod”, 1000年当你训练SVM分类器使用fitcsvm

数据类型:|

Hyperparameter优化性能

这个属性是只读的。

描述hyperparameters交叉验证优化的,指定为一个BayesianOptimization对象或一个表hyperparameters和相关联的值。该属性时非空的“OptimizeHyperparameters”名称-值对的观点fitcsvm在创建非空的。的价值HyperparameterOptimizationResults取决于的设置优化器字段HyperparameterOptimizationOptions的结构fitcsvm在创建这个表中描述。

设置优化器 价值
“bayesopt”(默认) 对象的类BayesianOptimization
“gridsearch”“randomsearch” hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的)

数据类型:结构体|

对象的功能

紧凑的 减少支持向量机(SVM)分类器万博1manbetx的大小
compareHoldout 比较两种分类模型使用新数据的精度
crossval 旨在支持向量机(SVM)分类器万博1manbetx
discard万博1manbetxSupportVectors 放弃支持向量线性万博1manbetx支持向量机(SVM)分类器
边缘 找到分类支持向量机(SVM)分类器的边缘万博1manbetx
fitPosterior 合适的后验概率支持向量机(SVM)分类器万博1manbetx
损失 找到分类错误的支持向量机(SVM)分类器万博1manbetx
保证金 找到分类利润支持向量机(SVM)分类器万博1manbetx
预测 预测标签使用支持向量机(SVM)分类器万博1manbetx
resubEdge 找到分类支持向量机(SVM)分类器的边缘resubstit万博1manbetxution
resubLoss 找到分类损失由resubstitution支持向量机(SV万博1manbetxM)分类器
resubMargin 寻找支持向量机(SVM)分类利润率由resubstitution万博1manbetx分类器
resubPredict 预测resubstitution反应对支持向量机(SVM)分类器万博1manbetx
的简历 恢复训练支持向量机(SVM)分类万博1manbetx器

例子

全部折叠

加载费雪的虹膜数据集。删除花萼长度和宽度和所有观察到的setosa虹膜。

负载fisheriris第1 = ~ strcmp(物种,“setosa”);X =量(第1 3:4);y =物种(第1);

火车一个支持向量机分类器使用处理过的数据集。

SVMModel = fitcsvm (X, y)
SVMModel = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{“癣”“virginica”} ScoreTransform:“没有一个”NumObservations: 100α:[24 x1双]偏见:-14.4149 KernelParameters: [1 x1 struct] BoxConstraints: x1双[100]ConvergenceInfo: [1 x1 struct] IsSupportVector: x1逻辑[100]解算器:SMO的属性,方法万博1manbetx

SVMModel是一个培训ClassificationSVM分类器。显示的属性SVMModel。例如,确定类,使用点符号。

classOrder = SVMModel.ClassNames
classOrder =2 x1单元阵列{“癣”}{' virginica '}

第一个类(“多色的”)是负类,第二个(“virginica”)是积极的类。你可以改变订单在训练用的类“类名”名称-值对的论点。

图数据的散点图和圆的支持向量。万博1manbetx

sv = SVMModel.万博1manbetxSupportVectors;图gscatter (X (: 1), (:, 2), y)情节(sv (: 1), sv (:, 2),“柯”,“MarkerSize”10)传说(“多色的”,“virginica”,“万博1manbetx支持向量”)举行

支持向量万博1manbetx是观察发生的或超出他们估计类边界。

你可以调整边界(,因此,支持向量的个数)通过设置一个盒子约束在训练使用万博1manbetx“BoxConstraint”名称-值对的论点。

加载电离层数据集。

负载电离层

训练,旨在支持向量机分类器。规范预测数据和指定类的顺序。

rng (1);%的再现性CVSVMModel = fitcsvm (X, Y,“标准化”,真的,“类名”,{“b”,‘g’},“CrossVal”,“上”)
CVSVMModel = classreg.learning.partition。ClassificationPartitionedModelCrossValidatedModel: 'SVM' PredictorNames: {1x34 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods

CVSVMModel是一个ClassificationPartitionedModel旨在支持向量机分类器。默认情况下,软件实现了10倍交叉验证。

或者,您可以旨在训练ClassificationSVM分类器通过它crossval

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

CVSVMModel.Trained {1}
ans = classreg.learning.classif。CompactClassificationSVMResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' Alpha: [78x1 double] Bias: -0.2209 KernelParameters: [1x1 struct] Mu: [1x34 double] Sigma: [1x34 double] SupportVectors: [78x34 double] SupportVectorLabels: [78x1 double] Properties, Methods

每一个褶皱都是CompactClassificationSVM分类器训练数据的90%。

估计泛化误差。

genError = kfoldLoss (CVSVMModel)
genError = 0.1168

泛化误差平均为12%左右。

更多关于

全部展开

算法

  • 数学公式的二进制分类支持向量机算法,明白了万博1manbetx支持向量机的二叉分类了解支持向量机万博1manbetx

  • ,<定义>,空字符向量()值显示缺失值。fitcsvm删除整行数据对应于一个失踪的响应。当计算总重量(见下一个子弹),fitcsvm忽略任何重量对应于一个观察至少有一个失踪的预测。这一行动会导致balanced-class先验概率不平衡问题。因此,观察箱约束可能不相等BoxConstraint

  • fitcsvm删除零重量或先验概率的观察。

  • 对于两种学习,如果你指定成本矩阵 C (见成本),那么软件更新类的先验概率p(见之前)pc通过合并中描述的处罚 C

    具体地说,fitcsvm完成这些步骤:

    1. 计算 p c = p C

    2. 正常化pc*所以更新的先验概率之和为1。

      p c = 1 j = 1 K p c , j p c

      K类的数量。

    3. 重置成本矩阵默认

      C = ( 0 1 1 0 ]

    4. 从训练数据中删除观察对应类先验概率为零。

  • 对两种学习,fitcsvm使所有的观察权重(见规范化权重)之和为1。函数然后renormalizes归一化权重的先验概率更新总结观察所属的类。也就是说,观测的总重量j在课堂上k

    w j = w j j k w j p c , k

    wj观察规范化的重量吗j;pc,k是类的先验概率更新吗k(见以前的子弹)。

  • 对两种学习,fitcsvm分配一个框约束来训练数据中的每个观测。的公式框约束的观察j

    C j = n C 0 w j

    n训练样本的大小,C0是初始箱约束(见“BoxConstraint”名称-值对的观点), w j 观测的总重量吗j(见以前的子弹)。

  • 如果你设置“标准化”,真的“成本”,“之前”,或“重量”名称-值对的论点fitcsvm规范使用相应的加权预测手段和加权标准差。也就是说,fitcsvm标准化预测j(xj)使用

    x j = x j μ j σ j

    μ j = 1 k w k k w k x j k

    xjk是观察k(行)的预测j(列)。

    ( σ j ) 2 = v 1 v 1 2 v 2 k w k ( x j k μ j ) 2

    v 1 = j w j

    v 2 = j ( w j ) 2

  • 假设p离群值的比例,你期望在训练数据,你准备好了吗OutlierFraction, p

    • 看到下面成了学习的软件列车偏差项,100p%的观察训练数据有负的成绩。

    • 该软件实现了强劲的学习两级学习。换句话说,软件试图删除100p%的观察时,优化算法是收敛的。删除观察对应梯度大的大小。

  • 如果你的预测数据包含分类变量,然后软件通常使用这些变量的完整虚拟编码。每一层的软件创建一个哑变量每个类别变量。

    • PredictorNames原始属性存储一个元素为每个预测变量名。例如,假设有三个因素,其中一个是和三个层次类别变量。然后PredictorNames是一个1×3单元阵列包含原始特征向量的预测变量的名称。

    • ExpandedPredictorNames属性存储一个元素为每个预测变量,包括虚拟变量。例如,假设有三个因素,其中一个是和三个层次类别变量。然后ExpandedPredictorNames是一个1-by-5单元阵列特征向量包含预测变量的名称和新虚拟变量。

    • 类似地,β为每个预测属性存储一个β系数,包括虚拟变量。

    • 万博1manbetxSupportVectors属性存储支持向量的预测价值,包括虚拟变量。万博1manbetx例如,假设万博1manbetx支持向量和三个因素,其中一个是和三个层次类别变量。然后万博1manbetxSupportVectors是一个n5矩阵。

    • X按原输入和属性存储训练数据不包括虚拟变量。当输入一个表,X只包含的列作为预测因子。

  • 预测表中指定,如果任何包含命令(顺序)类别的变量,这些变量的软件使用顺序编码。

    • 为一个变量k要求水平,创建的软件k- 1虚拟变量。的jth哑变量是1为水平j,+ 1的水平j+ 1通过k

    • 哑变量中存储的名称ExpandedPredictorNames属性显示第一级的价值+ 1。软件商店k- 1额外的预测虚变量的名称,包括水平2的名字,3,…k

  • 所有连接器实现l1 soft-margin最小化。

  • 看到下面成了学习的软件估计,拉格朗日乘数法,α1、……αn,这样

    j = 1 n α j = n ν

引用

[1]Hastie, T。,R。Tibshirani, and J. Friedman. The Elements of Statistical Learning, Second Edition. NY: Springer, 2008.

[2]Scholkopf B。,J. C. Platt, J. C. Shawe-Taylor, A. J. Smola, and R. C. Williamson. “Estimating the Support of a High-Dimensional Distribution.” Neural Comput., Vol. 13, Number 7, 2001, pp. 1443–1471.

[3]Christianini, N。,J. C. Shawe-Taylor. An Introduction to Support Vector Machines and Other Kernel-Based Learning Methods. Cambridge, UK: Cambridge University Press, 2000.

[4]Scholkopf B。答:Smola。学习与内核:支持向量机,正则化优化,自适应计算万博1manbetx和机器学习。剑桥,麻州:麻省理工学院出版社,2002年。

扩展功能

介绍了R2014a

这个主题有帮助吗?