主要内容

预测

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

描述

例子

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

例子

标签分数预测,预测SVMModelX还返回一个分数矩阵(分数)表示一个标签来自特定类的可能性。对于SVM,似然度量是分类的分数或类后验概率.对于每一个观察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">“类名”, {<年代pan style="color:#A020F0">“b”,<年代pan style="color:#A020F0">‘g’},<年代pan style="color:#0000FF">...“标准化”,真正的);CompactSVMModel = CVSVMModel.Trained{1};<年代pan style="color:#228B22">%提取训练,紧凑的分类器testInds = test(CVSVMModel.Partition);<年代pan style="color:#228B22">提取测试指标XTest = X(testInds,:);YTest = Y(testInds,:);

CVSVMModel是一个ClassificationPartitionedModel分类器。它包含属性训练有素的,这是一个1乘1单元格数组,包含一个CompactClassificationSVM软件使用训练集训练的分类器。

标记测试样本观察结果。显示测试样本中前10个观察结果。

[label,score] = predict(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.7175 b} {b}{‘g’}{‘g’}2.0003 {b} {b}{‘g’}-9.6841 2.5617{‘g’}{b} {b}{‘g’}-1.5481 2.0983{‘g’}{b} {b} {b} -2.7015 -0.66337 {b}{‘g’}{‘g’}1.6047{‘g’}{‘g’}1.773

使用支持向量机分类器标记新的观察结果。

加载电离层数据集。假设在训练SVM分类器后,最后10个观测值可用。

负载<年代pan style="color:#A020F0">电离层rng (1);<年代pan style="color:#228B22">%用于再现性n = size(X,1);<年代pan style="color:#228B22">%训练样本量isInds = 1:(n-10);<年代pan style="color:#228B22">%样本内指数oosInds = (n-9):n;<年代pan style="color:#228B22">%样本外指数

训练SVM分类器。标准化数据并指定这一点‘g’是正类。通过减少训练的SVM分类器的大小来节省内存。

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

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

估计最佳得分-后验概率转换函数。

CompactSVMModel = fitPosterior<年代pan style="color:#0000FF">...X (isInds:), Y (isInds))
CompactSVMModel = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: '@(S)sigmoid(S,-1.968336e+00,3.121821e-01)' Alpha: [88x1 double] Bias: -0.2142 KernelParameters: [1x1 struct] Mu:[0.8886 0 0.6365 0.0457 0.5933 0.1200 0.5414…]西格玛:[0.3151 0 0.5032 0.4476 0.5251 0.4668 0.4966…] 万博1manbetxSupportVectors: [88x1 double] SupportVectorLabels: [88x1 double]属性,方法

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

预测样本外标签和正类后验概率。因为真实的标签是可用的,所以将它们与预测的标签进行比较。

[labels,PostProbs] = predict(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.67792{‘g’}{‘g’}{‘g’}0.94448 0.98745{‘g’}{‘g’}{‘g’}{‘g’}0.92481 0.97111{‘g’}{‘g’}{‘g’}{‘g’}0.96986 0.97803{‘g’}{‘g’}{‘g’}0.94361

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

输入参数

全部折叠

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

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

每行X对应一个观察结果,每一列对应一个变量。

  • 对于数值矩阵:

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

    • 如果你受过训练SVMModel使用表格(例如,资源描述),资源描述那么,包含所有数值预测变量X可以是数值矩阵。处理中的数值预测器资源描述作为分类的训练,识别分类预测因子使用CategoricalPredictors的名称-值对参数fitcsvm.如果资源描述包含异构预测变量(例如,数字和分类数据类型)和X是数字矩阵吗预测抛出错误。

  • 对于表格:

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

    • 如果你受过训练SVMModel使用表格(例如,资源描述),然后输入所有预测变量X必须具有与训练时相同的变量名称和数据类型SVMModel(存储在SVMModel。PredictorNames).的列序X是否需要对应的列顺序资源描述.同时,资源描述而且X可以包含额外的变量(响应变量、观察权重等),但是预测忽略了它们。

    • 如果你受过训练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。σ,然后将结果除以in的核标度SVMModel.KernelParameters.Scale

所有支持向量机函数,如resubPredict而且预测,在估计前应用所需的转换。

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

更多关于

全部折叠

分类分

的支持向量机分类分用于分类观察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(线性核),则score函数化简为

f x x / 年代 β + b

年代是核尺度和β为拟合线性系数的向量。

详情请参见理解支持向量机万博1manbetx

后验概率

后验概率在给定数据的情况下,观测值属于特定类别的概率。

对于SVM,后验概率是分数的函数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分别表示正类和负类。

    • π是观测值处于正类的先验概率。

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

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

    其中参数一个而且B分别为斜率和截距参数。

先验概率

先验概率一个类别是假设的相对频率,从该类别的观察出现在一个总体。

提示

  • 如果您正在使用线性SVM模型进行分类,并且该模型有许多支持向量,则使用万博1manbetx预测对于预测方法可以比较慢。为了有效地对基于线性支持向量机模型的观测数据进行分类,可以使用万博1manbetxdiscard万博1manbetxSupportVectors

算法

  • 默认且不考虑模型核函数,MATLAB<年代up>®使用分数函数的双重表示来根据训练过的SVM模型对观察结果进行分类

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

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

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

    1. 执行10倍交叉验证。

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

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

  • 该软件在训练过程中将先验概率纳入支持向量机目标函数。

  • 支持向量机,预测而且resubPredict将观测数据分类为产生最大分数的类别(最大后验概率)。该软件通过在训练分类器之前应用平均成本校正来计算错误分类成本。也就是说,已知先验向量P,错分类代价矩阵C,和观测权向量w时,软件定义了一个新的观测权重向量(W)如此

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

选择功能

万博1manbetx仿真软件块

将支持向量机分类模型的预测集成到Simulink中万博1manbetx<年代up>®,你可以使用ClassificationSVM预测的统计和机器学习工具箱™库中的函数块或MATLAB函数块预测函数。有关示例,请参见使用classiationsvm预测块预测类标签而且使用MATLAB函数块预测类标签

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

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

  • 万博1manbetx控件的MATLAB函数块必须启用对可变大小数组的支持预测函数。

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

参考文献

[1] Platt, 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中引入