主要内容

分类VM

金宝app支持向量机(SVM)用于单级和二进制分类

描述

分类VM是一个金宝app支持向量机(SVM)分类器为一个班和两个班的学习。训练有素的分类VM分类器存储训练数据、参数值、先验概率、支持向量和算法实现信息。使用这些分类器执行任务,例如将分数拟合到后验概率变换函数(参见金宝appFitleDosterior.)和预测新数据的标签(见预测).

创造

创建一个分类VM通过使用fitcsvm.

属性

展开全部

支持向量机特性

此属性是只读的。

训练有素的分类器系数,指定为一个年代-乘以1的数值向量。年代为所训练分类器中支持向量的个数,金宝app总和(Mdl.IsS金宝appupportVector)

α包含对偶问题中经过训练的分类器系数,即估计的拉格朗日乘数。如果使用删除的名称-值对参数fitcsvm.,那么对于给定的一组重复观测,这些观测是支持向量,金宝appα包含一个对应于整个集合的系数。也就是说,MATLAB®将非零系数赋给从一组重复数据中得到的一个观测值,并将系数赋给0集合中的所有其他重复观测。

数据类型:|双重的

此属性是只读的。

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

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

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

f x x / 年代 β + b

Mdlβb,年代在物业中bet偏见,核参数。比例分别地

要手动估计分类分数,必须首先对培训期间应用的预测值数据应用任何转换。具体来说,如果您指定“标准化”,真的当使用fitcsvm.,然后您必须通过使用均值来手动标准化预测器数据Mdl。亩和标准差Mdl。σ,然后通过内核缩放划分结果Mdl.KernelParameters.Scale

支持向量机的所有函数,如resubPredict预测,在评估之前应用任何需要的转换。

如果核参数函数不是“线性”,然后bet是空的([]).

数据类型:|双重的

此属性是只读的。

偏置项,指定为标量。

数据类型:|双重的

此属性是只读的。

框约束,指定为数字矢量n-by-1箱约束n是训练数据中的观察次数(参见NumObservations财产)。

如果使用使用的删除重复项删除的名称-值对参数fitcsvm.然后,对于给定的一组重复观察,MATLAB总和框约束,然后将总和属性属于一个观察。matlab属于框限制0所有其他的观察结果。

数据类型:|双重的

此属性是只读的。

缓存信息,指定为结构数组。缓存信息包含本表中描述的字段。

描述
大小

软件用于训练SVM分类器的缓存大小(以MB为单位)。有关详细信息,请参见'缓存'

算法

优化期间软件使用的缓存算法。目前,唯一可用的缓存算法是队列.您无法设置缓存算法。

显示的字段cacheinfo.通过使用点符号。例如,mdl.cacheinfo.size.显示缓存大小的值。

数据类型:结构体

此属性是只读的。

金宝app支持向量指示符,指定为n-1逻辑向量标志是否在预测器数据矩阵中的相应观察是一个金宝app支持向量机n是培训数据中的观测数量(见NumObservations).

如果使用使用的删除重复项删除的名称-值对参数fitcsvm.,那么对于给定的一组重复观测,这些观测是支持向量,金宝appIs金宝appSupportVector仅标记一个观测值作为支持向量。金宝app

数据类型:逻辑

此属性是只读的。

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

描述
功能

用于计算格拉姆矩阵. 有关详细信息,请参阅'骨箱'

规模

核比例参数,用于缩放模型训练所依据的预测数据的所有元素。有关详细信息,请参阅“内核尺度”

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

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

数据类型:结构体

此属性是只读的。

一流的学习范围ν,指定为正标量。

数据类型:|双重的

此属性是只读的。

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

数据类型:双重的

此属性是只读的。

用于训练SVM分类器的优化例程,指定为ISDA的“L1QP”,或SMO的.有关更多详细信息,请参阅“规划求解”

此属性是只读的。

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

的值+1金宝appSupportVectorLabels表示对应的支持向量属于正类(金宝appClassNames {2}).的值–1表示相应的支持向量位于负类(金宝app类名{1}).

如果使用使用的删除重复项删除的名称-值对参数fitcsvm.,那么对于给定的一组重复观测,这些观测是支持向量,金宝app金宝appSupportVectorLabels包含一个独特的支持向量标签。金宝app

数据类型:|双重的

此属性是只读的。

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

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

如果使用使用的删除重复项删除的名称-值对参数fitcsvm.,那么对于给定的一组重复观测,这些观测是支持向量,金宝app金宝appSupportVectors包含一个唯一的支持向量。金宝app

数据类型:|双重的

其他分类属性

此属性是只读的。

分类预测指标,指定为一个正整数向量。分类预测因子包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]).

数据类型:双重的

此属性是只读的。

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

数据类型:|双重的|逻辑|烧焦|细胞|分类

此属性是只读的。

错误分类成本,指定为数字矩阵,其中成本(i, j)将一个点分类的成本是多少j如果它的真实课程是

在培训期间,软件通过合并成本矩阵中描述的惩罚来更新先前的概率。

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

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

有关更多详细信息,请参阅算法

数据类型:双重的

此属性是只读的。

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

如果模型使用虚拟变量编码的虚拟变量,那么ExpandedPredictorNames.包括描述展开变量的名称。否则,,ExpandedPredictorNames.是一样的预测

数据类型:细胞

此属性是只读的。

训练数据梯度值,指定为数值向量。长度坡度等于观测次数(NumObservations).

数据类型:|双重的

此属性是只读的。

用于训练的参数分类VM模型,指定为对象。ModelParameters包含参数值,例如用于训练SVM分类器的名称-值对参数值。ModelParameters不包含估计参数。

访问ModelParameters通过使用点表示法。例如,访问初始值以进行估算α通过使用mdl.modelparameters.alpha.

此属性是只读的。

预测器表示,指定为数值向量。如果您指定“标准化”,1“标准化”,真的当你使用fitcsvm.,然后是长度等于预测器的数量。

MATLAB使用全伪编码扩展了预测器数据中的分类变量。也就是说,MATLAB为每个分类变量的每个级别创建一个虚拟变量。为每个预测变量(包括虚拟变量)存储一个值。但是,MATLAB没有标准化包含分类变量的列。

如果你设置了“标准化”,错当您使用fitcsvm.,然后为空向量([]).

数据类型:|双重的

此属性是只读的。

存储在中的训练数据中的观察数XY,指定为数值标量。

数据类型:双重的

此属性是只读的。

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

数据类型:细胞

此属性是只读的。

每个类的先验概率,指定为数字向量。元素的顺序之前对应的元素mdl.classnames.

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

有关更多详细信息,请参阅算法

数据类型:|双重的

此属性是只读的。

响应变量名称,指定为字符向量。

数据类型:烧焦

此属性是只读的。

用于拟合的原始训练数据行分类VM模型,指定为逻辑向量。如果使用所有行,此属性为空。

数据类型:逻辑

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

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

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

    Mdl。ScoreTransform = '功能”;

    此表介绍了可用的内置功能。

    价值 描述
    'doublelogit' 1 /(1 +e–2x
    “因弗罗吉特” 日志(x/(1 -x))
    “ismax” 将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0
    分对数的 1 /(1 +e- - - - - -x
    “没有”“身份” x(没有转型)
    “标志” -1 for.x< 0
    0代表x= 0
    1为x> 0
    “对称” 2x– 1
    “symmetricismax” 将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1
    'symmetriclogit' 2 / (1 +e- - - - - -x) - 1

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

    Mdl。ScoreTransform = @功能

    功能必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。

数据类型:烧焦|function_handle

此属性是只读的。

预测标准偏差,指定为数字矢量。

如果您指定“标准化”,真的当您使用fitcsvm.,然后是长度σ等于预测变量的个数。

MATLAB使用全伪编码扩展了预测器数据中的分类变量。也就是说,MATLAB为每个分类变量的每个级别创建一个虚拟变量。σ为每个预测变量(包括虚拟变量)存储一个值。但是,MATLAB没有标准化包含分类变量的列。

如果你设置了“标准化”,错当您使用fitcsvm.,然后σ为空向量([]).

数据类型:|双重的

此属性是只读的。

用于训练SVM分类器的观测权重,指定为n-乘以1的数值向量。n是观察人数(见NumObservations).

fitcsvm.规范化中规定的观察权重“重量”名称-值对参数,以便W在特定类中,总结该类的先前概率。

数据类型:|双重的

此属性是只读的。

用于训练SVM分类器的非标准化预测器,指定为一个数字矩阵或表。

每一排X对应一个观察值,每列对应一个变量。

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

数据类型:|双重的

此属性是只读的。

用于训练SVM分类器的类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元数组。Y是否与输入参数相同的数据类型Yfitcsvm.(该软件将字符串数组视为字符向量的单元格数组。)

每一排Y表示观察到的相应行分类X

MATLAB排除包含缺失值的元素,并从X

数据类型:|双重的|逻辑|烧焦|细胞|分类

收敛控制属性

此属性是只读的。

收敛信息,指定为结构数组。

描述
融合 逻辑标志,指示算法是否会融合(1表明收敛)。
ReasonForConvergence 表示标准的字符矢量软件用于检测收敛。
差距 对偶目标函数与原目标函数之间的标量可行性差距。
施法 标量可行性间隙公差。例如,设置这种容差,例如1)依照,使用名称值对参数依照“GapTolerance”,1fitcsvm.
临时称为 上下违例者之间的梯度差
DeltaGradientTolerance 标量公差对于上下违规者之间的梯度差异。例如,设置这种容差,例如1)依照,使用名称值对参数“DeltaGradientTolerance”,1e-2fitcsvm.
最大kktviolation 最大标量Karush-Kuhn-Tucker(KKT)冲突值。
kkttolerance. 最大KKT违例的标量公差。例如,将这个公差设置为1 e - 3,使用名称值对参数'kkttolerance',1e-3fitcsvm.
历史

包含集合优化迭代收敛信息的结构数组。字段:

  • NumIterations:软件记录收敛信息的迭代指标的数值向量

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

  • 临时称为:的数值向量临时称为迭代处的值

  • 最大kktviolation:的数值向量最大kktviolation迭代处的值

  • Num金宝appSupportVectors:数字矢量指示迭代处的支持向量数量金宝app

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

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

数据类型:结构体

此属性是只读的。

优化程序为达到收敛所需要的迭代次数,指定为正整数。

将迭代次数限制设置为1000,例如,指定'iterationlimit',1000当您使用fitcsvm.

数据类型:双重的

此属性是只读的。

活动集的约简之间的迭代次数,指定为非负整数。

将收缩期设定为1000,例如,指定“ShrinkagePeriod”,1000年当您使用fitcsvm.

数据类型:|双重的

Hyperparameter优化性能

此属性是只读的。

超参数的交叉验证优化描述,指定为贝叶斯偏见对象或超参数和关联值的表。当“OptimizeHyperparameters”的名称-值对参数fitcsvm.在创造上是非空的。价值HyperparameterOptimizationResults取决于优化器野外HyperParameterOptimizationOptions.的结构fitcsvm.创建时,如表所示。

的价值优化器 的价值HyperparameterOptimizationResults
“bayesopt”(默认) 类的对象贝叶斯偏见
“gridsearch”“随机搜索” 使用的超参数表,观察到的客观函数值(交叉验证丢失),以及从最低(最佳)到最高(最差)的观测等级

对象的功能

契约 减少机器学习模型的规模
compareHoldout 使用新数据比较两个分类模型的精度
crossval 交叉验证机器学习模型
discard金宝appSupportVectors 丢弃线性支持向量金宝app机分类器的支持向量
边缘 查找支持向量机(SVM)分类器的分类边金宝app
FitleDosterior. 支持向量机(SVM)分类器的拟合后验概率金宝app
incrementalLearner 将二值分类支持向量机模型转换为增量学习器金宝app
损失 寻找支持向量机(SVM)分类器的分类误差金宝app
利润 查找支持向量机(SVM)分类器的分类边距金宝app
partialDependence 计算部分依赖
局部依赖 创建部分依赖图(PDP)和个人条件期望图(ICE)
预测 使用支持向量机分类器对观测数据进行分类金宝app
resubEdge Resubstitution分类边缘
酸橙 局部可解释的模型不可知解释(LIME)
resubLoss Resubstitution分类损失
重新提交 Resubstitution分类保证金
resubPredict 使用训练的分类器对训练数据进行分类
的简历 恢复训练支持向量机分类器金宝app
沙普利 沙普利值
testckfold 通过重复交叉验证比较两种分类模型的准确性

例子

全部折叠

载入费雪的虹膜数据集。去掉萼片的长度和宽度以及所有观察到的刚毛鸢尾。

负载渔民第1 = ~ strcmp(物种,“塞托萨”);X = MEAS(INDS,3:4);Y =物种(INDS);

使用处理后的数据集训练支持向量机分类器。

SVMModel = fitcsvm (X, y)
svmmodel = classificationsvm contractename:'y'pationoricalpricictors:[] classnames:{versicolor''virginica'} scoreTransform:'none'numobservations:100个字母:[24x1 double]偏置:-14.4149内核参数:[1x1 struct] boxconstraints:[100x1DOUBLE] CONFORGENGEINFO:[1x1 struct] iss金宝appupportVector:[100x1逻辑]求解器:'smo'属性,方法

SVMModel是训练有素的分类VM分类器。显示的属性SVMModel.例如,要确定类的顺序,可以使用点符号。

classOrder = SVMModel。一会
classOrder =2x1电池{“癣”}{' virginica '}

头等舱('versicolor')是否定类,而第二个(“维吉尼亚”)是积极类。属性可以在训练期间更改类的顺序'classnames'名称-值对的论点。

绘制数据散点图并圈出支持向量。金宝app

sv = SVMModel.金宝appSupportVectors;图gscatter (X (: 1), (:, 2), y)情节(sv (: 1), sv (:, 2),'ko'“MarkerSize”,10)传奇('versicolor'“维吉尼亚”“金宝app支持向量”) 抓住

图中包含一个轴。轴包含3个类型为line的对象。这些对象表示versicolor、virginica和支持向量机。金宝app

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

您可以通过在使用期间设置培训期间的框约束来调整边界(以及因此,支持向量的数量)金宝app“BoxConstraint”名称-值对的论点。

加载电离层数据集。

负载电离层

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

RNG(1);%为了再现性cvsvmmodel = fitcsvm(x,y,“标准化”,真的,...'classnames', {“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旨在支持向量机分类器。默认情况下,该软件实现10倍交叉验证。

或者,您可以交叉验证一个经过培训的分类VM将它传递给crossval

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

CVSVMModel。训练有素的{1}
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' Alpha: [78x1 double] Bias: -0.2209 KernelParameters: [1x1 struct] Mu: [1x34 double] Sigma: [1x34 double金宝app] SupportVectors: [78x34 double] SupportVectorLabels: [78x1 double]属性,方法

每个褶皱都是一个褶皱CompactClassificationsVM.分类器对90%的数据进行训练。

估计泛化误差。

genError = kfoldLoss (CVSVMModel)
genError = 0.1168

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

更多关于

展开全部

算法

  • 支持向量机二值分类算法的数学公式见金宝app二值分类的支持向量机理解支持向量机金宝app

  • <未定义>,空字符向量(''),空字符串(""),<缺失>值表示缺失值。fitcsvm.删除与缺失响应相对应的整行数据。计算总重量(参见下一个子弹),fitcsvm.忽略与至少缺少一个预测器的观测值相对应的任何权重。此操作可能导致平衡类问题中的先验概率不平衡。因此,观测框约束可能不相等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。然后,该函数对归一化权重进行重归一化,使其总和为观测所属类的更新先验概率。即观察的总权重j在课堂上k

    w j * w j σ. j 等级 k w j p c k

    wj是观察的规范化重量jpck是更新的课程的现有概率k(见前的子弹)。

  • 对两种学习,fitcsvm.为训练数据中的每个观测值指定一个方框约束。观察框约束的公式j

    C j n C 0 w j *

    n为训练样本量,C0初始框约束(参见“BoxConstraint”名称-值对参数),以及 w j * 是观察的总重量j(见前的子弹)。

  • 如果你设置了“标准化”,真的“成本”'事先的',或“重量”名称-值对参数fitcsvm.使用相应的加权平均值和加权标准差对预测值进行标准化。就是,fitcsvm.标准化预测jxj)使用

    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%在训练数据中的观察值中,有1%的得分为负值。

    • 软件实现鲁棒学习两级学习。换句话说,该软件试图删除100个p%优化算法收敛时的观测值。移除的观测值对应于幅度较大的梯度。

  • 如果预测器数据包含分类变量,则软件通常对这些变量使用完全虚拟编码。软件为每个分类变量的每个级别创建一个虚拟变量。

    • 预测属性为每个原始预测器变量名存储一个元素。例如,假设有三个预测因子,其中一个是具有三个层次的分类变量。然后预测是包含预测变量原始名称的字符向量的1×3单元格数组。

    • ExpandedPredictorNames.属性存储每个预测变量的一个元素,包括虚拟变量。例如,假设有三个预测因子,其中一个是具有三个层次的分类变量。然后ExpandedPredictorNames.是一个包含预测变量和新的虚拟变量名称的字符向量的1 × 5单元格数组。

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

    • 金宝appSupportVectors属性存储支持向量的预测值,包括虚拟变量。例如,假设有金宝app金宝app支持向量和三个预测因子,其中一个是具有三个级别的分类变量。然后金宝appSupportVectors是一个n-by-5矩阵。

    • X属性将训练数据存储为原始输入,不包括虚拟变量。当输入是一个表时,X只包含用作预测器的列。

  • 对于表中指定的预测器,如果任何变量包含有序(有序)类别,软件将对这些变量使用有序编码。

    • 的变量k软件创建了有序的关卡k– 1虚拟变量jth虚拟变量是–1对于级别最多j,+1的水平j+ 1通过k

    • 存储在中的虚拟变量的名称ExpandedPredictorNames.属性表示具有值的第一级+1.软件商店k– 1虚拟变量的其他预测名称,包括级别2,3,...的名称,k

  • 所有解算器都执行l1软边缘最小化。

  • 对于单级学习,软件估计拉格朗日乘法器,α1,......,αn,这样

    σ. j 1 n α j n ν

参考

Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素, 第二版。纽约:斯普林斯,2008年。

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

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

[4] Scholkopf, B.和A. Smola。使用内核学习:支持向量机,正规化,优化和超越,金宝app自适应计算和机器学习。麻省剑桥:麻省理工学院出版社,2002年。

扩展功能

在R2014A介绍