主要内容

fitSVMPosterior

合适的后验概率

描述

例子

ScoreSVMModel= fitSVMPosterior (SVMModel返回ScoreSVMModel,它是一个经过训练的支持向量机(SVM)分类金宝app器,包含用于两类学习的最优得分-后验概率变换函数。

该软件使用支持向量机分类器拟合适当的得分-后验概率转换函数SVMModel,并使用存储的预测数据进行交叉验证(SVMModel。X)和类标签(SVMModel。Y).变换函数计算观察被归入正类的后验概率(SVMModel.Classnames (2)).

  • 如果类是不可分的,那么变换函数就是乙状结肠函数

  • 如果类是完全可分的,则变换函数是阶跃函数

  • 在两类学习中,如果其中一个类的相对频率为0,则变换函数为常数函数fitSVMPosterior不适合单班学习。

  • 如果SVMModel是一个分类VM分类器,然后软件通过10倍交叉验证来估计最佳转换函数,如中所述[1].否则,SVMModel必须是一个ClassificationPartitionedModel分类器。SVMModel指定交叉验证方法。

  • 该软件将最优变换函数存储在ScoreSVMModel。ScoreTransform

ScoreSVMModel= fitSVMPosterior (SVMModelTBLResponseVarName返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数SVMModel这个年代的tware estimates the score transformation function using predictor data in the tableTBL和类标签资源描述。ResponseVarName

ScoreSVMModel= fitSVMPosterior (SVMModelTBLY返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数SVMModel这个年代的tware estimates the score transformation function using predictor data in the tableTBL和类标签Y

例子

ScoreSVMModel= fitSVMPosterior (SVMModelXY返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数SVMModel这个年代的tware estimates the score transformation function using predictor dataX和类标签Y

例子

ScoreSVMModel= fitSVMPosterior (<年代pan class="argument_placeholder">___名称,值使用一个或多个指定的附加选项名称,值对参数提供SVMModel是一个分类VM分类器。例如,您可以指定要使用的折叠数k倍交叉验证。

例子

ScoreSVMModelScoreTransform]=fitSVMPosterior(<年代pan class="argument_placeholder">___另外返回转换函数参数(ScoreTransform),使用前面语法中的任何输入参数。

例子

全部折叠

载入费雪的虹膜数据集。使用花瓣的长度和宽度训练分类器,并从数据中去除弗吉尼亚的物种。

负载<年代pan style="color:#A020F0">fisheririsclassKeep = ~ strcmp(物种,<年代pan style="color:#A020F0">“维吉尼亚”);X =量(classKeep 3:4);y =物种(classKeep);gscatter (X (: 1) X (:, 2), y);标题(<年代pan style="color:#A020F0">“虹膜测量散点图”)包含(<年代pan style="color:#A020F0">“花瓣长度”) ylabel (<年代pan style="color:#A020F0">“花瓣宽度”)传说(<年代pan style="color:#A020F0">“Setosa”,<年代pan style="color:#A020F0">“多色的”)

图中包含一个轴对象。标题为“虹膜测量散点图”的轴对象包含2个类型为线的对象。这些物体代表了Setosa, Versicolor。

这些类是完全可分离的。因此,分数变换函数是一个阶梯函数。

使用数据训练SVM分类器。使用10倍交叉验证(默认)交叉验证分类器。

rng (1);CVSVMModel = fitcsvm (X, y,<年代pan style="color:#A020F0">“CrossVal”,<年代pan style="color:#A020F0">“上”);

CVSVMModel是一个培训ClassificationPartitionedModel支持向量机分类器。

估计将分数转换为后验概率的阶跃函数。

[ScoreCVSVMModel, ScoreParameters] = fitSVMPosterior (CVSVMModel);
警告:类是完全分离的。后验变换的最佳分数是阶跃函数。

fitSVMPosterior以下:

  • 使用软件存储的数据CVSVMModel来拟合变换函数

  • 当类可分离时发出警告

  • 将阶跃函数存储在ScoreCSVMModel。ScoreTransform

显示分数函数类型及其参数值。

ScoreParameters
ScoreParameters =<年代pan class="emphasis">结构体字段:类型:'step' LowerBound: -0.8431 UpperBound: 0.6897 PositiveClassProbability: 0.5000

ScoreParameters是一个有四个字段的结构数组:

  • 分数转换函数类型(类型

  • 与负类边界对应的分数(下界

  • 对应于正向类边界的分数(UpperBound

  • 正类概率(PositiveClassProbability

由于类是可分离的,所以阶跃函数将分数转换为任意一个01,即观察到的是花斑虹膜的后验概率。

加载电离层数据集。

负载<年代pan style="color:#A020F0">电离层

这个数据集的类是不可分离的。

训练SVM分类器。交叉验证使用10倍交叉验证(默认)。标准化预测器并指定类顺序是一种良好的实践。

rng (1)<年代pan style="color:#228B22">%为了再现性CVSVMModel = fitcsvm (X, Y,<年代pan style="color:#A020F0">“类名”, {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’},<年代pan style="color:#A020F0">“标准化”,真的,<年代pan style="color:#0000FF">...“CrossVal”,<年代pan style="color:#A020F0">“上”);ScoreTransform = CVSVMModel。ScoreTransform
ScoreTransform = '没有'

CVSVMModel是一个培训ClassificationPartitionedModel支持向量机分类器。积极类是‘g’这个ScoreTransform财产是没有一个

估计最优评分函数映射的观察评分后验概率的观察被分类为‘g’

[ScoreCVSVMModel, ScoreParameters] = fitSVMPosterior (CVSVMModel);ScoreTransform = ScoreCVSVMModel。ScoreTransform
ScoreTransform = ' @ (S)乙状结肠(e-01 e-01年代,-9.482010,-1.218471)的
ScoreParameters
ScoreParameters =<年代pan class="emphasis">结构体字段:类型:'sigmoid'斜率:-0.9482截距:-0.1218

ScoreTransform是最优分数变换函数。ScoreParameters包含分数变换函数、斜率估计和截距估计。

您可以通过传递来估计测试样本的后验概率ScoreCVSVMModelkfoldPredict

估计支持向量机算法测试集的正类后验概率。

加载电离层数据集。

负载<年代pan style="color:#A020F0">电离层

训练SVM分类器。指定20%的抵抗层样本。标准化预测器并指定类顺序是一种良好的实践。

rng (1)<年代pan style="color:#228B22">%为了再现性CVSVMModel = fitcsvm (X, Y,<年代pan style="color:#A020F0">“坚持”, 0.2,<年代pan style="color:#A020F0">“标准化”,真的,<年代pan style="color:#0000FF">...“类名”, {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’});

CVSVMModel是一个培训ClassificationPartitionedModel交叉验证分类器。

估计最优评分函数映射的观察评分后验概率的观察被分类为‘g’

ScoreCVSVMModel = fitSVMPosterior (CVSVMModel);

ScoreSVMModel是一个培训ClassificationPartitionedModel交叉验证分类器包含从训练数据估计的最优分数转换函数。

估计样本外正类后验概率。显示前10个样本外观察的结果。

[~, OOSPostProbs] = kfoldPredict (ScoreCVSVMModel);indx = ~ isnan (OOSPostProbs (:, 2));hoObs =找到(indx);<年代pan style="color:#228B22">%抵抗观察数字OOSPostProbs=[hoObs,OOSPostProbs(indx,2)];表(OOSPostProbs(1:10,1),OOSPostProbs(1:10,2),<年代pan style="color:#0000FF">...“VariableNames”, {<年代pan style="color:#A020F0">“ObservationIndex”,<年代pan style="color:#A020F0">“PosteriorProbability”})
ans =<年代pan class="emphasis">10×2表ObservationIndex PosteriorProbability ________________ ____________________ 6 0.17379 7 0.89639 8 0.0076634 9 0.91603 16 0.02672 22 4.6091e-06 23 0.9024 24 2.4127e-06 38 0.00042696 41 0.86429

输入参数

全部折叠

训练的SVM分类器,指定为分类VMCompactClassificationSVM,或ClassificationPartitionedModel分类器。

如果SVMModel是一个分类VM分类器,然后可以设置可选的名称-值对参数。

如果SVMModel是一个CompactClassificationSVM分类器,则必须输入预测数据X和类标签Y

样本数据,指定为表。每一行的TBL对应一个观察值,每列对应一个预测变量。可选,TBL可以包含响应变量和观察权值的附加列。TBL必须包含用于训练的所有预测值SVMModel.除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。

如果TBL包含用于训练的响应变量SVMModel,则不需要指定ResponseVarNameY

如果你训练SVMModel使用表中包含的样例数据,然后输入数据fitSVMPosterior也必须在表中。

如果你设置“标准化”,真的fitcsvm当训练SVMModel,然后软件使用相应的方法对预测数据的列进行标准化SVMModel。μ和标准差SVMModel。σ

数据类型:表格

用于估计得分-后验概率转换函数的预测数据,指定为一个矩阵。

每一行的X对应一个观察值(也称为实例或示例),每列对应一个变量(也称为特征)。

的长度Y和行数X必须是相等的。

如果你设置“标准化”,真的fitcsvm当训练SVMModel,利用标准化数据拟合变换函数参数估计。

数据类型:|

中的响应变量名,指定为变量名TBL.如果TBL包含用于训练的响应变量SVMModel,则不需要指定ResponseVarName

如果您指定ResponseVarName,则必须以字符向量或字符串标量的形式进行。例如,如果响应变量存储为资源描述。响应,然后指定ResponseVarName作为“响应”. 否则,软件将处理TBL,包括资源描述。响应预测因子。

响应变量必须是一个类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。如果响应变量是一个字符数组,那么每个元素必须对应数组的一行。

数据类型:烧焦|字符串

用于估计分数到后向概率转换函数的类标签,指定为类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。

如果Y是字符数组,则每个元素必须对应一个类标签。

的长度Y和行数X必须是相等的。

数据类型:明确的|烧焦|字符串|逻辑|||细胞

名称-值参数

指定可选的逗号分隔的对名称,值论据。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值

例子:“KFold”,8执行8倍交叉验证SVMModel是一个分类VM分类器。

用于计算转换函数的交叉验证分区,指定为逗号分隔对组成“CVPartition”和一个cvpartition创建的分区对象cvpartition.在创建交叉验证模型时,一次只能使用这四个选项中的一个:“KFold”“坚持”“Leaveout”,或“CVPartition”

crossval的名称-值对参数fitcsvm使用。将数据分成多个子集cvpartition

例子:假设您使用以下方法创建了一个随机分区,用于对500个观测数据进行5倍交叉验证本量利= cvpartition(500年,“KFold”,5)这个n,you can specify the cross-validated model by using“CVPartition”,本量利

用于计算转换函数的拒绝验证数据的一部分,指定为逗号分隔对,由“坚持”和范围(0,1)的标量值。拒绝验证测试数据的指定部分,并使用其余数据进行培训。

在创建交叉验证模型时,一次只能使用这四个选项中的一个:“KFold”“坚持”“Leaveout”,或“CVPartition”

例子:“坚持”,0.1

数据类型:|

计算转换函数时使用的折叠数,指定为逗号分隔对,由“KFold”和一个大于1的正整数。

在创建交叉验证模型时,一次只能使用这四个选项中的一个:“KFold”“坚持”“Leaveout”,或“CVPartition”

例子:“KFold”,8

数据类型:|

留一交叉验证标志,指示是否使用留一交叉验证来计算转换函数,指定为逗号分隔对,由“Leaveout”“上”“关”.通过指定“Leaveout”,“上”

在创建交叉验证模型时,一次只能使用这四个选项中的一个:“KFold”“坚持”“Leaveout”,或“CVPartition”

例子:“Leaveout”,“上”

输出参数

全部折叠

训练的支持向量机分类器包含估计的分数转换函数,返回为分类VMCompactClassificationSVM,或ClassificationPartitionedModel分类器。

ScoreSVMModel分类器类型与SVMModel分类器类型。

要估计后验概率,通过ScoreSVMModel并预测数据预测.如果你“标准化”,真的fitcsvm训练SVMModel,然后预测标准化X使用相应的方法SVMModel。μ的标准差SVMModel。σ

后验概率变换函数参数的最佳得分,指定为结构数组。如果字段类型是:

  • 乙状结肠,然后ScoreTransform这些字段:

  • 一步,然后ScoreTransform这些字段:

    • PositiveClassProbability:价值π阶跃函数π代表:

      • 观察结果为正的概率。

      • 一个分数在(下界UpperBound).

    • 下界价值:<年代pan class="inlineequation"> 马克斯 y n 1 年代 n 在阶跃函数中。它表示指定后验概率为正类的区间的下界PositiveClassProbability分数。任何得分低于下界后验概率是正的类别吗0

    • UpperBound价值:<年代pan class="inlineequation"> 最小值 y n + 1 年代 n 在阶跃函数中。它表示赋值后验概率为正类的区间的上界PositiveClassProbability. 任何得分大于UpperBound后验概率是正的类别吗1

  • 常数,然后ScoreTransform.PredictedClass包含类预测的名称。

    这个结果与SVMModel。一会.一个观察结果被发现的后验概率ScoreTransform.PredictedClass总是1

更多关于

全部折叠

S形函数

映射分数的s形函数年代<年代ub>j对应于观测j后验概率是

P 年代 j 1 1 + 经验值 一个 年代 j + B

如果类型领域的ScoreTransform乙状结肠参数,那么一个B对应于字段规模拦截ScoreTransform,分别。

阶跃函数

映射分数的步骤函数年代<年代ub>j对应于观测j后验概率是

P 年代 j 0 年代 < 马克斯 y k 1 年代 k π 马克斯 y k 1 年代 k 年代 j 最小值 y k + 1 年代 k 1 年代 j > 最小值 y k + 1 年代 k

地点:

  • 年代<年代ub>j观察得分是多少j

  • +1和-1分别表示正类和负类。

  • π是观察结果为正的先验概率。

如果类型领域的ScoreTransform一步,然后是数量<年代pan class="inlineequation"> 马克斯 y k 1 年代 k 和<年代pan class="inlineequation"> 最小值 y k + 1 年代 k 对应于字段下界UpperBoundScoreTransform,分别。

常数函数

常数函数将样本中的所有分数映射到后验概率1或0。

如果所有的观察结果的后验概率为1,那么它们应该来自于正类别。

如果所有的观察结果的后验概率为0,那么它们就不会来自于正类别。

提示

  • 这个过程描述了一种预测正类后验概率的方法。

    1. 通过传递数据来训练SVM分类器fitcsvm这个result is a trained SVM classifier, such asSVMModel,用来存储数据。软件设置分数变换函数属性(SVMModel.ScoreTransformation)没有一个

    2. 通过训练的SVM分类器SVMModelfitSVMPosteriorfitPosterior.结果,例如,ScoreSVMModel,与训练的SVM分类器相同SVMModel,除了软件集ScoreSVMModel。ScoreTransformation到最优分数变换函数。

    3. 通过预测器数据矩阵和包含最优分数变换函数的训练SVM分类器(ScoreSVMModel)预测这个年代econd column in the second output argument of预测存储与预测数据矩阵的每一行对应的正类后验概率。

      如果你跳过第二步,那么预测返回正的类别得分,而不是正的类别后验概率。

  • 在拟合后验概率之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要<年代pan class="entity">MATLAB<年代up>®编码器™. 有关详细信息,请参阅代码生成简介

算法

如果您将分数重新估计为后验概率变换函数,也就是说,如果您将SVM分类器传递给fitPosteriorfitSVMPosterior和它的ScoreTransform属性是不没有一个,则软件:

  • 显示警告

  • 将原来的转换函数重置为“没有”在估计新的之前

工具书类

[1] Platt, J. <支持向量机的概率输出和与正则似然方法的比较>。金宝app:大裕度分类器的进展.麻省理工学院出版社,2000年,61-74页。

另请参阅

|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

介绍了R2014a