主要内容

预测

使用支持向量机分类器对观测数据进行分类万博1manbetx

描述

例子

标签=预测(SVMModelX返回表或矩阵中预测器数据的预测类标签向量X,基于训练的支持向量机分类模型万博1manbetxSVMModel.经过训练的SVM模型可以是完整的,也可以是紧凑的。

例子

标签分数] =预测(SVMModelX也返回一个分数矩阵(分数)表示标签来自特定类的可能性。对于支持向量机,可能性度量是分类的分数或类后验概率.对于每一个X时,预测的类标签对应于所有类中的最大值。

例子

全部折叠

加载电离层数据集。

负载<年代pan style="color:#A020F0">电离层RNG(1);<年代pan style="color:#228B22">%用于重现

训练SVM分类器。指定15%的保留样本用于测试,规范的数据,并指定‘g’是积极类。

CVSVMModel = fitcsvm (X, Y,<年代pan style="color:#A020F0">“坚持”, 0.15,<年代pan style="color:#A020F0">'classnames', {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’},<年代pan style="color:#0000FF">...“标准化”,真正的);CompactSVMModel = CVSVMModel.Trained {1};<年代pan style="color:#228B22">%提取训练过的紧凑分类器testInds =测试(CVSVMModel.Partition);<年代pan style="color:#228B22">%提取测试指标XTEST = X(testInds,:);YTest = Y(testInds,:);

CVSVMModel是一个ClassificationPartitionedModel分类器。它包含属性训练有素的,这是一个1×1单元阵列保持CompactClassificationSVM软件使用训练集训练的分类器。

标记测试样品观察结果。显示用于在测试样品中的前10个观察结果。

(标签,分数)=预测(CompactSVMModel XTest);表(欧美(1:10),标签(1:10),得分(1:10),2),<年代pan style="color:#A020F0">“VariableNames”,<年代pan style="color:#0000FF">...{<年代pan style="color:#A020F0">'TrueLabel',<年代pan style="color:#A020F0">“PredictedLabel”,<年代pan style="color:#A020F0">“分数”})
ans =.<年代pan class="emphasis">10×3表TrueLabel PredictedLabel得分  _________ ______________ ________ {' -1.7177 b} {b}{‘g’}{‘g’}2.0003 {b} {b}{‘g’}-9.6844 2.5617{‘g’}{b} {b}{‘g’}-1.5483 2.0983{‘g’}{b} {b} {b} -2.7016 -0.66313 {b}{‘g’}{‘g’}1.6046{‘g’}{‘g’}1.773

使用支持向量机分类器标记新的观测值。

加载电离层数据集。假设最后的10个观察你训练SVM分类后推出。

负载<年代pan style="color:#A020F0">电离层RNG(1);<年代pan style="color:#228B22">%用于重现n =大小(X, 1);<年代pan style="color:#228B22">%训练样本量isInds = 1:(n-10);<年代pan style="color:#228B22">%分类指数oosInds = (n - 9): n;<年代pan style="color:#228B22">%样本外指数

训练SVM分类器。标准化的数据和指定‘g’是积极类。通过减少训练的支持向量机分类器的大小来节省内存。

SVMModel = fitcsvm (X (isInds:), Y (isInds),<年代pan style="color:#A020F0">“标准化”,真的,<年代pan style="color:#0000FF">...'classnames', {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’});CompactSVMModel =紧凑(SVMModel);谁(<年代pan style="color:#A020F0">“SVMModel”,<年代pan style="color:#A020F0">'CompactSVMModel'
名称大小字节类属性CompactSVMModel 1x1 30482 classreg.com learning.com category . compactclassificationsvm SVMModel 1x1 137582 ClassificationSVM

CompactClassificationSVM分类器(CompactSVMModel)使用的空间小于ClassificationSVM分类器(SVMModel),因为SVMModel存储数据。

估计最优得分-后验概率变换函数。

CompactSVMModel = fitPosterior (CompactSVMModel,<年代pan style="color:#0000FF">...X (isInds:), Y (isInds))
CompactSVMModel = CompactClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“@ (S)乙状结肠(e + 00年代,-1.968433,3.121233 e-01)的α:[88 x1双]偏见:-0.2143 KernelParameters: [1 x1 struct]μ:σ[1 x34双]:[1 x34双]SupportVectors: [88 x34双]SupportVectorLabels:万博1manbetx[88x1 double]属性,方法

最优分数变换函数(CompactSVMModel。ScoreTransform)是s型函数,因为类是不可分割的。

预测出的样本标签和正类的后验概率。因为真正的标签可用,比较它们与预测标签。

[标签,PostProbs] =预测(CompactSVMModel X (oosInds:));表(Y (oosInds)、标签PostProbs (:, 2),<年代pan style="color:#A020F0">“VariableNames”,<年代pan style="color:#0000FF">...{<年代pan style="color:#A020F0">“TrueLabels”,<年代pan style="color:#A020F0">“PredictedLabels”,<年代pan style="color:#A020F0">“PosClassPosterior”})
ans =.<年代pan class="emphasis">10×3表TrueLabels PredictedLabels PosClassPosterior  __________ _______________ _________________ {' 0.98419 g’}{‘g’}{‘g’}{‘g’}0.95545{‘g’}{‘g’}0.67794{‘g’}{‘g’}{‘g’}0.94448 0.98745{‘g’}{‘g’}{‘g’}{‘g’}0.92481 0.9711{‘g’}{‘g’}{‘g’}{‘g’}0.96986 0.97803{‘g’}{‘g’}{‘g’}0.94361

PostProbs是一个10 × 2矩阵,其中第一列是负的类别后验概率,第二列是正的类别后验概率,对应于新的观察值。

输入参数

全部折叠

SVM分类模型,指定为ClassificationSVM模型对象或CompactClassificationSVM返回的模型对象fitcsvm袖珍的,分别。

预测器数据要被分类,指定为数字矩阵或表。

每一行的X对应于一个观测,并且每一列对应于一个变量。

  • 对于数值矩阵:

    • 列中的变量X必须和训练的预测变量有相同的顺序吗SVMModel

    • 如果你训练SVMModel使用表(例如,TBL) 和TBL包含所有的数值预测变量X可以是数字矩阵。为了治疗在数字预测TBL作为分类训练,识别分类预测因子使用CategoricalPredictors的名称-值对参数fitcsvm.如果TBL包含异构预测变量(例如,数字和分类数据类型)和X是一个数值矩阵,那么预测抛出一个错误。

  • 对于表:

    • 预测除了字符向量的单元万博1manbetx格数组外,不支持多列变量或单元格数组。

    • 如果你训练SVMModel使用表(例如,TBL),那么所有的预测变量X必须具有与那些训练过的相同的变量名和数据类型SVMModel(存储在SVMModel。PredictorNames).然而,列顺序X不需要对应的列顺序TBL.同时,TBLX可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。

    • 如果你训练SVMModel使用一个数字矩阵,然后预测器命名SVMModel。PredictorNames和相应的预测变量名X肯定是一样的。要在训练期间指定预测器名称,请参见PredictorNames的名称-值对参数fitcsvm.所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。

如果你设置“标准化”,真的fitcsvm培训SVMModel,则软件将栏目标准化X使用相应的方法SVMModel。μ和标准差SVMModel。σ

数据类型:表格||

输出参数

全部折叠

预测类别标签,返回作为分类或字符阵列,逻辑或数字载体,或字符向量的单元阵列。

标签具有与所观察类标签相同的数据类型(Y),训练SVMModel,它的长度等于里面的行数X.<年代pan>(该软件将字符串数组视为字符向量的单元格数组。)

看到下面成了学习,标签是在所观察的类标签中表示的一个类。

预测类分数后验概率,作为数字列向量或数字矩阵返回。

  • 看到下面成了学习,分数是具有相同的行数作为观测的列向量(X).的元素分数为相应观察的正班分数。你无法获得单班学习的后验概率。

  • 对两种学习,分数两列矩阵的行数是否相同X

    • 如果您在使用适合的最佳成绩 - 后概率转换功能fitPosteriorfitSVMPosterior,然后分数包含一流的后验概率。也就是说,如果价值SVMModel。ScoreTransform不是没有一个,然后是的第一列和第二列分数包含负类(SVMModel。ClassNames{1})和正向类(SVMModel。ClassNames{2})对应观测值的后验概率。

    • 否则,第一列包含相应观察的负类分数,第二列包含正类分数。

如果SVMModel.KernelParameters.Function“线性”,然后分类评分进行观察x

f x x / 年代 β + b

SVMModel商店βb,年代在属性β偏见,KernelParameters.Scale,分别。

要手动估计分类分数,必须首先对训练期间应用的预测器数据应用任何转换。具体地说,如果你指定的话“标准化”,真的当使用fitcsvm,则必须使用平均值手动标准化预测数据SVMModel。μ和标准偏差SVMModel。σ,然后将结果除以内核规模SVMModel.KernelParameters.Scale

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

如果SVMModel.KernelParameters.Function不是“线性”,然后β是空的([]).

更多关于

全部折叠

分类分

该SVM分类分分类观测x从符号距离x在决策边界,从-∞到+∞。一类正分表明,x预计会在那个班。而得分为负值则说明情况并非如此。

积极类分类得分<年代pan class="inlineequation"> f x 为训练后的支持向量机分类函数。<年代pan class="inlineequation"> f x 也是数值预测的响应吗x,或预测得分x进入积极类。

f x j 1 n α. j y j G x j x + b

在哪里<年代pan class="inlineequation"> α. 1 ... α. n b 是所估计的SVM的参数,<年代pan class="inlineequation"> G x j x 介于两者之间的预测空间的点积x和支持向量,和包万博1manbetx括训练集观测值。负类分类评分为x,或预测得分x属于负类的是-fx).

如果Gx<年代ub>jx) =x<年代ub>jx(线性核),则得分函数简化为

f x x / 年代 β + b

年代是内核规模和β为拟合线性系数的向量。

有关详细信息,请参见理解支持向量机万博1manbetx

后验概率

后验概率是在给定数据的情况下,某一观察结果属于某一类的概率。

对于支持向量机,后验概率是分数的函数P年代)是观察j是在课堂上k1 ={1,}。

  • 对于可分离类,后验概率是阶跃函数

    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分别表示正类和负类。

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

  • 对于不可分割类,后验概率是S形函数

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

    的参数一个B分别为斜率参数和截距参数。

先验概率

先验概率某一类的相对频率是该一类观察结果在总体中出现的相对频率。

提示

  • 如果您使用的分类线性SVM模型和模型有很多支持向量,然后使用万博1manbetx预测因为预测方法可能很慢。为了有效地对基于线性支持向量机模型的观测数据进行分类,可以使用万博1manbetxdiscard万博1manbetxSupportVectors

算法

  • 默认情况下,也不论模型核函数,MATLAB<年代up>®具体来说,使用评分函数的双重表示对基于训练过的支持向量机模型的观测结果进行分类

    f x j 1 n α. j y j G x x j + b

    这种预测方法需要训练的支持向量和万博1manbetxα.系数(见万博1manbetxSupportVectorsαSVM模型的性质)。

  • 默认情况下,软件使用普拉特方法计算最优后验概率[1]

    1. 执行10倍交叉验证。

    2. 将sigmoid函数参数与交叉验证返回的分数进行拟合。

    3. 通过将交叉验证分数输入拟合的s形函数来估计后验概率。

  • 软件培训期间包含在SVM目标函数先验概率。

  • 对于SVM,预测resubPredict将观察结果分类为产生最大分数(最大后验概率)的类别。该软件通过在训练分类器之前进行平均代价修正来计算误分类代价。也就是说,给定类的先验向量P,误分类代价矩阵C,和观察权重向量w,该软件定义一个新的观测权向量(W),这样

    W j w j P j k 1 K C j k

选择功能

万博1manbetxSimulink模块

将SVM分类模型的预测集成到Simulink中万博1manbetx<年代up>®,你可以使用ClassificationSVM预测在统计和机器学习工具箱™库或MATLAB函数块预测函数。举例来说,看到预测类标签使用ClassificationSVM预测块预测类标签使用MATLAB功能块

在决定使用哪种方法时,请考虑以下几点:

  • 如果使用统计和机器学习工具箱库块,你可以使用<年代trong class="tool">定点的工具(定点设计师)将浮点模型转换为定点模型。

  • 万博1manbetx为可变大小的数组支持必须用于与一个MATLAB功能块被使能预测函数。

  • 如果您使用MATLAB函数块,您可以使用MATLAB函数在同一个MATLAB函数块中进行预测之前或之后的预处理或后处理。

参考

[1]普拉特,J。“概率输出用于支持向量机和比较,以正则似然方法”。万博1manbetx大裕度分类器的进展.麻省理工学院出版社,1999,第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">

介绍了R2014a