主要内容

ClassificationSVM

金宝app支持向量机(SVM)看到下面成了和二进制分类

描述

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

创建

创建一个ClassificationSVM对象的使用fitcsvm

属性

全部展开

支持向量机性能

这个属性是只读的。

训练分类器系数,作为指定年代1数字向量。年代支持向量的个数在训练分类器,金宝app总和(Mdl.IsS金宝appupportVector)

α从对偶问题包含了训练分类器系数,也就是说,估计拉格朗日乘数法。如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,金宝appα包含一个系数对应于整个集。也就是说,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显示缓存大小的值。

数据类型:结构体

这个属性是只读的。

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

如果你删除重复使用RemoveDuplicates名称-值对的观点fitcsvm,那么对于一个给定的重复观测的支持向量,金宝appIs金宝appSupportVector作为支持向量标志只有一个观察。金宝app

数据类型:逻辑

这个属性是只读的。

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

描述
函数

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

规模

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

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

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

数据类型:结构体

这个属性是只读的。

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

数据类型:|

这个属性是只读的。

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

数据类型:

这个属性是只读的。

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

这个属性是只读的。

金宝app支持向量类的标签,作为一个指定年代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包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

数据类型:细胞

这个属性是只读的。

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

数据类型:|

这个属性是只读的。

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

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

这个属性是只读的。

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

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

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

数据类型:|

这个属性是只读的。

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

数据类型:

这个属性是只读的。

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

数据类型:细胞

这个属性是只读的。

先验概率为每个类,指定为一个数值向量。

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

  • 两种学习,软件可实现指定的先验概率之前名称-值参数的拟合函数,这样的概率之和为1。的之前属性存储规范化的先验概率。元素的顺序之前对应的元素Mdl.ClassNames

  • 看到下面成了学习,之前= 1

数据类型:|

这个属性是只读的。

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

数据类型:字符

这个属性是只读的。

行中使用的原始训练数据拟合ClassificationSVM模型,指定为一个逻辑向量。使用这个属性是空的,如果所有行。

数据类型:逻辑

分数变换,指定为一个特征向量或函数句柄。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金宝appSupportVectors:数值向量迭代表明支持向量的个数金宝app

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

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

数据类型:结构体

这个属性是只读的。

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

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

数据类型:

这个属性是只读的。

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

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

数据类型:|

Hyperparameter优化性能

这个属性是只读的。

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

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

对象的功能

紧凑的 减少机器学习模型的大小
compareHoldout 比较两种分类模型使用新数据的精度
crossval 旨在机器学习模型
discard金宝appSupportVectors 放弃支持向量线性金宝app支持向量机(SVM)分类器
边缘 找到分类支持向量机(SVM)分类器的边缘金宝app
fitPosterior 合适的后验概率支持向量机(SVM)分类器金宝app
incrementalLearner 转换成二进制分类支持向量机(SVM)模型增量学习金宝app
石灰 本地可model-agnostic解释(石灰)
损失 找到分类错误的支持向量机(SVM)分类器金宝app
保证金 找到分类利润支持向量机(SVM)分类器金宝app
partialDependence 计算部分依赖
plotPartialDependence 创建部分依赖图(PDP)和个人条件期望(ICE)情节
预测 观察使用支持向量机(SVM)分类器进行分类金宝app
resubEdge Resubstitution分类边缘
resubLoss Resubstitution分类损失
resubMargin Resubstitution分类保证金
resubPredict 使用训练数据训练分类器进行分类
的简历 恢复训练支持向量机(SVM)分类金宝app器
沙普利 沙普利值
testckfold 比较两种分类模型的精度重复交叉验证

例子

全部折叠

加载费雪的虹膜数据集。删除花萼长度和宽度和所有观察到的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的属性,方法金宝app

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

classOrder = SVMModel.ClassNames
classOrder =2 x1细胞{“癣”}{' virginica '}

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

图数据的散点图和圆的支持向量。金宝app

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

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表杂色的,virginica,支持向量。金宝app

支持向量金宝app是观察发生的或超出他们估计类边界。

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

加载电离层数据集。

负载电离层

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

rng (1);%的再现性CVSVMModel = fitcsvm (X, Y,“标准化”,真的,“类名”,{“b”,‘g’},“CrossVal”,“上”)
CVSVMModel = ClassificationPartitionedModel CrossValidatedModel:“支持向量机”PredictorNames: {1} x34细胞ResponseName:“Y”NumObservations: 351 KFold: 10个分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法

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

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

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

CVSVMModel.Trained {1}
ans = CompactClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:‘没有’α:[78 x1双]偏见:-0.2209 KernelParameters: [1 x1 struct]μ:[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…]S金宝appupportVectors: [78 x34双]SupportVectorLabels: [78 x1双]属性,方法

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

估计泛化误差。

genError = kfoldLoss (CVSVMModel)
genError = 0.1168

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

更多关于

全部展开

算法

  • 数学公式的二进制分类支持向量机算法,明白了金宝app支持向量机的二叉分类了解支持向量机金宝app

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

  • 如果你指定成本,之前,权重名称-值参数,输出模型对象存储指定的值成本,之前,W属性,分别。的成本属性存储指定的成本矩阵(C)。的之前W属性存储先验概率和观察权重,分别归一化后。模型训练,软件更新先验概率和观察权重将描述的惩罚成本矩阵。有关详细信息,请参见误分类代价矩阵、先验概率和观察权重

    请注意,成本之前名称-值参数是用于两级学习。看到下面成了学习的成本之前属性存储01,分别。

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

    C j = n C 0 w j ,

    在哪里C0是初始箱约束(见BoxConstraint名称-值参数),wj*观察体重调整吗成本之前为观察j。观察权重的细节,请参阅调整先验概率和观察权重误分类代价矩阵

  • 如果您指定标准化作为真正的并设置成本,之前,或权重名称-值参数,然后fitcsvm规范使用相应的加权预测手段和加权标准差。也就是说,fitcsvm标准化预测j(xj)使用

    x j = x j μ j σ j ,

    在哪里xjk是观察k(行)的预测j(列)

    μ j = 1 k w k * k w k * x j k , ( σ 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单元阵列特征向量包含预测变量的名称和新虚拟变量。

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

    • 金宝appSupportVectors属性存储支持向量的预测价值,包括虚拟变量。金宝app例如,假设金宝app支持向量和三个因素,其中一个是和三个层次类别变量。然后金宝appSupportVectors是一个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.统计学习的元素,第二版。纽约:施普林格出版社,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.”神经第一版第7卷。13日,2001年,页1443 - 1471。

[3]Christianini, N。,J. C. Shawe-Taylor.介绍支持向量机和其他基于学习的方法金宝app。英国剑桥:剑桥大学出版社,2000年。

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

扩展功能

版本历史

介绍了R2014a

全部展开

行为改变R2022a