fitSVMPosterior

合适的后验概率

描述

例子

ScoreSVMModel= fitSVMPosterior (SVMModel)返回ScoreSVMModel,这是一个包含两个级的学习的最佳得分 - 后万博1manbetx概率变换函数受过训练的,支持向量机(SVM)分类器。

该软件利用SVM分类器拟合合适的分数到后验概率变换函数SVMModel,并通过使用所存储的预测数据的交叉验证(SVMModel.X)及类别标签(SVMModel.Y)。变换函数计算一个观测被归类为正类(SVMModel.Classnames (2))。

  • 如果类是分不开的,则转换功能是双曲线函数

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

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

  • 如果SVMModel是一个ClassificationSVM分类器,则软件估计由最优变换函数如在概述的交叉验证的10倍[1]。除此以外,SVMModel必须是ClassificationPartitionedModel分类器。SVMModel指定交叉验证法。

  • 该软件商店的最优变换功能ScoreSVMModel.ScoreTransform

ScoreSVMModel= fitSVMPosterior (SVMModel,TBL,ResponseVarName)返回一个经过训练的支持向量分类器,其万博1manbetx中包含来自经过训练的、紧凑的SVM分类器的转换函数SVMModel。该软件使用表中的预测数据估计分数转换函数TBL和类标签TBL.ResponseVarName

ScoreSVMModel= fitSVMPosterior (SVMModel,TBL,Y)返回一个经过训练的支持向量分类器,其万博1manbetx中包含来自经过训练的、紧凑的SVM分类器的转换函数SVMModel。该软件使用表中的预测数据估计分数转换函数TBL和类标签Y

例子

ScoreSVMModel= fitSVMPosterior (SVMModel,X,Y)返回一个经过训练的支持向量分类器,其万博1manbetx中包含来自经过训练的、紧凑的SVM分类器的转换函数SVMModel。该软件使用预测数据估计分数转换功能X和类标签Y

例子

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

例子

(ScoreSVMModel,ScoreTransform] = 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">“虹膜测量散点图”)xlabel(<年代pan style="color:#A020F0">“花瓣长度”)ylabel(<年代pan style="color:#A020F0">“花瓣宽度”)传说(<年代pan style="color:#A020F0">“Setosa”,<年代pan style="color:#A020F0">“多色的”)

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

培养使用数据SVM分类。交叉验证使用10倍交叉验证(默认值)的分类器。

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

CVSVMModel是一个培训ClassificationPartitionedModelSVM分类。

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

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

fitSVMPosterior以下:

  • 使用软件存储的数据CVSVMModel以适应转换功能

  • 警告每当类可分离

  • 存储step函数ScoreCSVMModel.ScoreTransform

显示得分函数类型和它的参数值。

ScoreParameters
ScoreParameters =<年代pan class="emphasis">同场的结构:类型:'step'下限:-0.8431上界:0.6897正概率:0.5000

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

  • 分数转换功能型(类型)

  • 对应于负级边界(比分下界)

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

  • 正类的概率(PositiveClassProbability)

由于类是可分离,阶梯函数变换得分要么0要么1,即观察到的是花斑虹膜的后验概率。

加载电离层数据集。

负载<年代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是一个培训ClassificationPartitionedModelSVM分类。正类‘g’。的ScoreTransform属性没有一个

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

[ScoreCVSVMModel,ScoreParameters] = fitSVMPosterior(CVSVMModel);ScoreTransform = ScoreCVSVMModel.ScoreTransform
ScoreTransform = ' @ (S)乙状结肠(e-01 e-01年代,-9.481576,-1.218300)的
ScoreParameters
ScoreParameters =<年代pan class="emphasis">同场的结构:类型:“s”斜率:-0.9482截距:-0.1218

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

您可以估算的测试样品,后验概率通过传球ScoreCVSVMModelkfoldPredict

对于测试组的SVM算法的估计正类的后验概率。

加载电离层数据集。

负载<年代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.0076609 0.17378 0.89637 7 8 9 0.91602 16 0.026718 22 4.6081 e-06 23 0.9024 24 2.4129 e-06 38 0.00042697 41 0.86427

输入参数

全部收缩

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

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

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

示例数据,指定为表。每行TBL对应于一个观测,并且每一列对应于一个预测变量。(可选)TBL可以包含用于响应变量和权重观察附加列。TBL必须包含所有用于训练的预测SVMModel。多列变量和除字符向量的单元阵列的其他单元阵列是不允许的。

如果TBL包含用于训练的响应变量SVMModel,那么你就需要指定ResponseVarName要么Y

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

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

数据类型:

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

每行X对应于一个观测(也称为一个实例或示例),并且每一列对应于一个变量(也称为特征)。

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

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

数据类型:|

响应变量名,指定为变量的名称中的TBL。如果TBL包含用于训练的响应变量SVMModel,那么你就需要指定ResponseVarName

如果您指定ResponseVarName,则必须以字符向量或字符串标量的形式执行。例如,如果响应变量存储为TBL.Response,然后指定ResponseVarName作为“响应”。否则,软件处理的所有列TBL,包括TBL.Response,作为预测。

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

数据类型:烧焦|字符串

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

如果Y是一个字符阵列,则每个元素必须对应于一个类的标签。

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

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

名称 - 值对参数

的可选逗号分隔对名称,值参数。的名字参数名和是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:'KFold',8执行8倍交叉验证SVMModel是一个ClassificationSVM分类器。

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

crossval的名称 - 值对参数fitcsvm使用将数据分解为子集cvpartition

例:假设你创建一个随机分区通过使用500个观察5倍交叉验证本量利= cvpartition(500年,“KFold”, 5)。然后,您可以使用以下命令指定交叉验证的模型“CVPartition”,本量利

为抵抗验证所述数据的级分用于计算变换函数,指定为逗号分隔的一对组成的“坚持”和范围(0,1)内的标量值。坚持验证测试指定的数据部分,并使用剩余的数据进行训练。

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

例:“坚持”,0.1

数据类型:|

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

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

例:'KFold',8

数据类型:|

留一法交叉验证标志表示是否使用留一法交叉验证来计算变换函数,指定为逗号分隔的一对组成的“Leaveout”“上”要么“关”。使用留一出通过指定交叉验证“Leaveout”,“上”

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

例:“Leaveout”,“上”

输出参数

全部收缩

包含估计分数变换函数的训练SVM分类器,返回为aClassificationSVM,CompactClassificationSVM,或ClassificationPartitionedModel分类器。

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

为了估计的后验概率,通ScoreSVMModel和预测数据预测。如果设置“标准化”,真的fitcsvm训练SVMModel,然后预测标准化的列X利用在相应的装置SVMModel.Mu和标准偏差SVMModel.Sigma

最优分数到后概率的转换函数参数,指定为结构数组。如果字段类型是:

  • 乙状结肠,然后ScoreTransform有以下字段:

    • - 的价值一个在里面双曲线函数

    • 截距- 的价值B在s型函数中

  • 一步,然后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.ClassNames。一个观测值的后验概率是在ScoreTransform.PredictedClass总是1

更多关于

全部收缩

双曲线函数

映射分数的s型函数年代<年代ub>j对应于观察j后验概率为

P ( 年代 j ) = 1 1 + EXP ( 一个 年代 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。结果得到一个经过训练的SVM分类器,如SVMModel,它存储数据。软件设置分数转换功能属性(SVMModel.ScoreTransformation) 至没有一个

    2. 经过训练的SVM分类器SVMModelfitSVMPosterior要么fitPosterior。结果,如ScoreSVMModel,表示经过训练的SVM分类器SVMModel,除了软件集ScoreSVMModel.ScoreTransformation在最佳得分的转换功能。

    3. 通过预测器数据矩阵和包含最佳得分变换功能的训练的SVM分类器(ScoreSVMModel) 至预测。的第二个输出参数中的第二列预测存储对应于所述预测数据矩阵的每一行的正类后验概率。

      如果你跳过第2步,那么预测返回正类的分数,而不是积极的类后验概率。

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

算法

如果重新估计分数 - 后概率转换功能,也就是说,如果你通过SVM分类,以fitPosterior要么fitSVMPosterior和它的ScoreTransform属性是不没有一个,那么软件:

  • 显示警告

  • 重置原始的变换功能“没有”估计新的前

参考

支持向量机的概率输出与正则化似然法的比较>。万博1manbetx:大边缘分类器的进步。马萨诸塞州剑桥:麻省理工学院出版社,2000,页61-74。

另请参阅

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

介绍了在R2014a