fitSVMPosterior

合适的后验概率

描述

例子

ScoreSVMModel= fitSVMPosterior (svmmodel.返回ScoreSVMModel,这是一个训练有素的支持向量机(SVM)分类金宝app器,包含用于两类学习的最佳分数到后概率变换功能。

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

  • 如果类不可分割,则转换函数是符切函数

  • 如果类是完全可分离的,那么变换函数就是阶跃函数

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

  • 如果svmmodel.是一个ClassificationSVM分类器,然后软件通过10倍交叉验证估计最优的转换函数,如所述[1].除此以外,svmmodel.必须是A.ClassificationededModel.分类器。svmmodel.指定交叉验证方法。

  • 该软件将最优变换函数存储在scorsvmmodel.scoretransform.

ScoreSVMModel= fitSVMPosterior (svmmodel.资源描述ResponseVarName返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数svmmodel..该软件使用表中的预测数据估计分数转换函数资源描述和类标签资源描述。ResponseVarName

ScoreSVMModel= fitSVMPosterior (svmmodel.资源描述Y返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数svmmodel..该软件使用表中的预测数据估计分数转换函数资源描述和类标签Y

例子

ScoreSVMModel= fitSVMPosterior (svmmodel.XY返回一个训练过的支持向量机分类器,该金宝app分类器包含从训练过的、紧凑的支持向量机分类器得到的转换函数svmmodel..该软件使用预测器数据估计分数转换功能X和类标签Y

例子

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

例子

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

例子

全部收缩

装载Fisher的Iris数据集。使用花瓣长度和宽度列出分类器,并从数据中删除Virginica物种。

负载<年代pan style="color:#A020F0">渔民classKeep = ~ strcmp(物种,<年代pan style="color:#A020F0">“virginica”);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">“多色的”)

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

使用这些数据训练一个支持向量机分类器。使用10倍交叉验证(默认)交叉验证分类器。

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

cvsvmmodel.是一个培训ClassificationededModel.SVM分类器。

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

[scorecvsvmmodel,记分参数] = fitsvmposterior(cvsvmmodel);
警告:类是完全分离的。最优积分后验变换是一个阶跃函数。

fitSVMPosterior以下:

  • 使用软件存储的数据cvsvmmodel.适合转换功能

  • 每当课程可分离时都会警告

  • 将阶跃函数存储在scorecsvmmodel.scoretransform.

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

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

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

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

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

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

  • 正类概率(positiveClassProbiability.

由于类是可分离的,因此步函数将分数转换为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.是一个培训ClassificationededModel.SVM分类器。积极的课程是‘g’.的ScoreTransform属性是没有一个

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

[scorecvsvmmodel,记分参数] = fitsvmposterior(cvsvmmodel);scoreTransform = scorecvsvmmodel.scoretransform.
ScorEtransform ='@(s)sigmoid(s,-9.481306e-01,-1.218970e-01)'
ScoreParameters
ScoreParameters =<年代pan class="emphasis">结构与字段:类型:'sigmoid'斜率:-0.9481截距:-0.1219

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

你可以通过通过来估计测试样本的后验概率scorecvsvmmodel.kfoldPredict

估计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.是一个培训ClassificationededModel.旨在分类器。

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

ScoreCVSVMModel = fitSVMPosterior (CVSVMModel);

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

估算样本外呈正类后概率。显示前10个外观观测结果的结果。

[〜,OospostProbs] = kfoldpredict(scorecvsvmmodel);Indx =〜Isnan(OospostProbs(:,2));hoobs = find(indx);<年代pan style="color:#228B22">%抵抗观察数字OOSPostProbs = [hobs, 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.17377 7 0.89637 8 0.0076567 9 0.91602 16 0.026709 22 4.6068e-06 23 0.9024 24 2.4132e-06 38 0.00042664 41 0.86428

输入参数

全部收缩

训练有素的SVM分类器,指定为aClassificationSVMCompactClassificationSVM,或ClassificationededModel.分类器。

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

如果svmmodel.是一个CompactClassificationSVM分类器,然后必须输入预测器数据X和类标签Y

样本数据,指定为表。每一排资源描述对应一个观察值,每一列对应一个预测变量。可选地,资源描述可以包含响应变量和观察权重的附加列。资源描述必须包含所有用于训练的预测因子吗svmmodel..不允许使用除了字符向量的单元格阵列之外的多色变量和单元阵列。

如果资源描述包含用于训练的响应变量svmmodel.,那么你不需要指定ResponseVarName或者Y

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

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

数据类型:桌子

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

每一排X对应于一个观察(也称为实例或示例),每一列对应于一个变量(也称为特性)。

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

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

数据类型:|

响应变量名称,指定为变量的名称资源描述.如果资源描述包含用于训练的响应变量svmmodel.,那么你不需要指定ResponseVarName

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

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

数据类型:字符|字符串

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

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

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

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

名称值对参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'kfold',8执行8倍交叉验证svmmodel.是一个ClassificationSVM分类器。

用于计算转换函数的交叉验证分区,指定为逗号分隔对组成“CVPartition”A.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”,“上”

输出参数

全部收缩

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

ScoreSVMModel分类器类型与svmmodel.分类器类型。

估计后验概率,通过ScoreSVMModel并预测数据预测.如果你设置了“标准化”,真的fitcsvm训练svmmodel.,然后预测规范栏目X使用相应的手段svmmodel.mu.和标准偏差SVMModel。σ

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

  • 乙状结肠,然后ScoreTransform有这些领域:

    • - 的价值一个符切函数

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

  • 一步,然后ScoreTransform有这些领域:

    • positiveClassProbiability.:价值π阶跃函数π代表:

      • 观察结果为正的概率。

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

    • 下面价值:<年代pan class="inlineequation"> 最大限度 y n - 1 年代 n 在阶跃函数中。它代表了分配在正类中的后验概率的间隔的下限positiveClassProbiability.分数。任何比分低于的观察下面有作为积极班级的后验概率0

    • UpperBound价值:<年代pan class="inlineequation"> 最小值 y n + 1 年代 n 在阶跃函数中。它表示赋值后验概率为正类的区间的上界positiveClassProbiability..任何得分大于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分类器svmmodel.fitSVMPosterior或者FitleDosterior..结果,如:ScoreSVMModel,与训练的SVM分类器相同svmmodel.,除了软件集scorsvmmodel.scoreTransformation.的最优积分变换函数。

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

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

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

算法

如果您重新估计得分后验概率转换函数,也就是说,如果您将一个SVM分类器传递给FitleDosterior.或者fitSVMPosterior和它的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介绍