主要内容

ClassificationSVM预测

利用支持向量机(SVM)分类器对观测数据进行单类分类和二金宝app元分类

  • 库:
  • 统计和机器学习工具箱/分类

描述

的<年代pan class="block">ClassificationSVM预测块使用支持向量机分类对象(ClassificationSVMCompactClassificationSVM)进行一级和二级(二元)分类。

通过指定包含该对象的工作空间变量的名称,将训练好的SVM分类对象导入到块中。输入端口<年代trong class="guilabel">x接收一个观测值(预测器数据)和输出端口<年代trong class="guilabel">标签返回观测值的预测类标签。您可以添加可选输出端口<年代trong class="guilabel">分数这将返回预测的班级分数或后验概率。

港口

输入

全部展开

预测数据,指定为一个观测的列向量或行向量。

依赖关系

  • 中的变量<年代trong class="guilabel">x必须与训练SVM模型的预测变量具有相同的顺序<年代trong class="guilabel">选择训练过的机器学习模型

  • 如果你设置“标准化”,真的fitcsvm训练SVM模型时,则<年代pan class="block">ClassificationSVM预测块标准化的值<年代trong class="guilabel">x使用的均值和标准差μ而且σSVM模型的属性(分别)。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

输出

全部展开

预测类标签,作为标量返回。

依赖关系

  • 对于单课学习,<年代trong class="guilabel">标签表示正类的值。

  • 对于两节课的学习,<年代trong class="guilabel">标签是产生最大分数或最大后验概率的类。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

预测类分数后验概率,对于单类学习作为标量返回,对于两类学习作为1 × 2向量返回。

  • 对于单课学习,<年代trong class="guilabel">分数是正面班级的分类分数。单类学习无法获得后验概率。

  • 对于两节课的学习,<年代trong class="guilabel">分数是1 × 2向量。

    • 的第一个和第二个元素<年代trong class="guilabel">分数对应负类分类分数(svmMdl.ClassNames (1))和正类(svmMdl.ClassNames (2)),其中svmMdlSVM模型是由<年代trong class="guilabel">选择训练过的机器学习模型.您可以使用一会的属性svmMdl检查负类名和正类名。

    • 拟合最优得分后验概率转换函数fitPosteriorfitSVMPosterior,然后<年代trong class="guilabel">分数包含类后验概率。否则,<年代trong class="guilabel">分数包含班级成绩。

依赖关系

要启用此端口,请选中对应的复选框为预测的班级分数添加输出端口在<年代trong class="guilabel">主要选项卡中的块参数。

数据类型:||一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

参数

全部展开

主要

属性的工作区变量的名称ClassificationSVM对象或CompactClassificationSVM对象。

当你训练SVM模型时使用fitcsvm,以下限制适用:

  • 预测器数据不能包括分类预测器(逻辑分类字符字符串,或细胞).如果在表中提供训练数据,则预测器必须是数字().而且,不能使用CategoricalPredictors名称-值参数。若要在模型中包含分类预测器,请使用dummyvar在拟合模型之前。

  • 的值“ScoreTransform”不能为名称-值参数“invlogit”或者一个匿名函数。对于预测给定新观测值的后验概率的块,将训练好的SVM模型传递给fitPosteriorfitSVMPosterior

  • 的值“KernelFunction”名称-值参数必须为“高斯”(一样“rbf”,默认为单类学习),“线性”(默认为两类学习),或者多项式的

编程使用

块参数:TrainedLearner
类型:工作空间变量
价值观:ClassificationSVM对象|CompactClassificationSVM对象
默认值:“svmMdl”

选中复选框以包括第二个输出端口<年代trong class="guilabel">分数在<年代pan class="block">ClassificationSVM预测块。

编程使用

块参数:ShowOutputScore
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

数据类型

定点操作参数

为定点操作指定舍入模式。有关更多信息,请参见舍入(定点设计师)

块参数总是舍入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB在掩码字段中输入表达式<年代up>®舍入功能。

编程使用

块参数:RndMeth
类型:特征向量
价值观:“天花板”|“收敛”|“地板”|“最近”|“圆”|“最简单”|“零”
默认值:“地板”

指定溢出是饱和还是包裹。

行动 基本原理 对溢出的影响 例子

选中此复选框().

您的模型可能有溢出,并且您希望在生成的代码中显式地进行饱和保护。

溢出饱和到数据类型可以表示的最小值或最大值。

的最大值int8(有符号8位整数)的数据类型可以表示为127。任何大于该最大值的块操作结果都会导致8位整数溢出。选中复选框后,块输出的饱和值为127。类似地,块输出在最小输出值-128处饱和。

清除此复选框().

您希望优化生成代码的效率。

您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误(金宝app模型)

溢出包装为数据类型可以表示的适当值。

的最大值int8(有符号8位整数)的数据类型可以表示为127。任何大于该最大值的块操作结果都会导致8位整数溢出。清除复选框后,软件将导致溢出的值解释为int8,这可能会产生意想不到的结果。例如,130(二进制1000 0010)的块结果表示为int8是-126。

编程使用

块参数:SaturateOnIntegerOverflow
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

选择此参数可防止定点工具覆盖为块指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”
数据类型

属性的数据类型<年代trong class="guilabel">标签输出。类型可以继承,可以指定为枚举数据类型,也可以表示为数据类型对象,例如金宝app仿真软件。NumericType

当你选择一个继承的选项时,软件的行为如下:

  • 继承:通过反向传播继承(默认为数字和逻辑标签)- Simulink自动确定金宝app<年代trong class="guilabel">标签数据类型在数据类型传播期间的块(请参阅数据类型传播(金宝app模型)).在这种情况下,块使用下游块或信号对象的数据类型。

  • 继承:汽车(默认为非数字标签)—块使用自定义的枚举数据类型变量。例如,假设由指定的工作区变量名选择训练过的机器学习模型myMdl,类别标签为类1而且二班.然后,对应的<年代trong class="guilabel">标签值是myMdl_enumLabels.class_1而且myMdl_enumLabels.class_2.类将类标签转换为有效的MATLAB标识符matlab.lang.makeValidName函数。

有关数据类型的详细信息,请参见控制信号的数据类型(金宝app模型)

单击<年代trong class="guibutton">显示数据类型助手按钮<年代pan class="guiicon">显示<年代trong class="guilabel">数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型(金宝app模型)

依赖关系

所支持的金宝app数据类型取决于所指定的模型中使用的标签选择训练过的机器学习模型

  • 如果模型使用数字或逻辑标签,则支持的数据类型为金宝app继承:通过反向传播继承(默认),一半int8uint8int16uint16int32uint32int64uint64布尔、固定点和数据类型对象。

  • 如果模型使用非数字标签,则支持的数据类型为金宝app继承:汽车(默认),Enum: <类名>,和一个数据类型对象。

编程使用

块参数LabelDataTypeStr
类型:字符向量
“继承:通过反向传播继承”|“继承:汽车”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“布尔”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|Enum: <类名>|'<数据类型表达式>'
默认的“继承:通过反向传播继承”(用于数字和逻辑标签)|“继承:汽车”(用于非数字标签)

的较低值<年代trong class="guilabel">标签Simulink的输出范围金宝app<年代up>®检查。

金宝appSimulink使用最小值执行:

请注意

的<年代trong class="guilabel">标签最低参数不饱和或剪切实际<年代trong class="guilabel">标签输出信号。使用饱和(金宝app模型)块来代替。

依赖关系

仅当指定的模型为选择训练过的机器学习模型使用数字标签。

编程使用

块参数LabelOutMin
类型:字符向量
“[]”|标量
默认的“[]”

的上限<年代trong class="guilabel">标签输出范围,Simulink检查。金宝app

金宝appSimulink使用最大值执行:

请注意

的<年代trong class="guilabel">标签最大参数不饱和或剪切实际<年代trong class="guilabel">标签输出信号。使用饱和(金宝app模型)块来代替。

依赖关系

仅当指定的模型为选择训练过的机器学习模型使用数字标签。

编程使用

块参数LabelOutMax
类型:字符向量
“[]”|标量
默认的“[]”

属性的数据类型<年代trong class="guilabel">分数输出。类型可以被继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType

当你选择继承:汽车,块使用继承数据类型的规则。

有关数据类型的详细信息,请参见控制信号的数据类型(金宝app模型)

单击<年代trong class="guibutton">显示数据类型助手按钮<年代pan class="guiicon">显示<年代trong class="guilabel">数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型(金宝app模型)

编程使用

块参数ScoreDataTypeStr
类型:字符向量
“继承:汽车”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“布尔”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“继承:汽车”

的较低值<年代trong class="guilabel">分数输出范围,Simulink检查。金宝app

金宝appSimulink使用最小值执行:

请注意

的<年代trong class="guilabel">分数最低参数不饱和或剪切实际<年代trong class="guilabel">分数信号。使用饱和(金宝app模型)块来代替。

编程使用

块参数ScoreOutMin
类型:字符向量
“[]”|标量
默认的“[]”

的上限<年代trong class="guilabel">分数输出范围,Simulink检查。金宝app

金宝appSimulink使用最大值执行:

请注意

的<年代trong class="guilabel">得分最高参数不饱和或剪切实际<年代trong class="guilabel">分数信号。使用饱和(金宝app模型)块来代替。

编程使用

块参数ScoreOutMax
类型:字符向量
“[]”|标量
默认的“[]”

指定内部未转换分数的数据类型。类型可以被继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType

当你选择继承:汽车,块使用继承数据类型的规则。

有关数据类型的详细信息,请参见控制信号的数据类型(金宝app模型)

单击<年代trong class="guibutton">显示数据类型助手按钮<年代pan class="guiicon">显示<年代trong class="guilabel">数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型(金宝app模型)

依赖关系

仅当指定的模型为选择训练过的机器学习模型使用除。以外的分数转换“没有”(默认值,与“身份”).

  • 如果模型不使用分数转换(“没有”“身份”),然后使用分数数据类型

  • 如果模型使用的分数转换不是“没有”“身份”,则可以使用该参数指定未转换的原始分数的数据类型,并使用指定转换后的分数的数据类型分数数据类型

属性可以更改分数转换选项“ScoreTransform”参数的名称-值,或通过更改ScoreTransform培训后的财产。

编程使用

块参数RawScoreDataTypeStr
类型:字符向量
“继承:汽车”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“int64”|“uint64”|“布尔”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“继承:汽车”

Simulink检查的未转换分数范围的较低值。金宝app

金宝appSimulink使用最小值执行:

请注意

的<年代trong class="guilabel">最低原始分数参数不饱和或剪辑实际的未转换分数信号。

编程使用

块参数RawScoreOutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检查的未转换分数范围的最大值。金宝app

金宝appSimulink使用最大值执行:

请注意

的<年代trong class="guilabel">原始得分上限参数不饱和或剪辑实际的未转换分数信号。

编程使用

块参数RawScoreOutMax
类型:字符向量
“[]”|标量
默认的“[]”

为内核计算指定参数的数据类型。类型可以直接指定,也可以表示为数据类型对象,例如金宝app仿真软件。NumericType

的<年代trong class="guilabel">内核数据类型参数指定不同参数的数据类型,具体取决于指定SVM模型的核函数类型。您可以指定“KernelFunction”训练SVM模型时的name-value参数。

“KernelFunction”价值 数据类型
“高斯”“rbf” 内核数据类型指定平方距离的数据类型<年代pan class="inlineequation"> D 2 x 年代 2 对于高斯核<年代pan class="inlineequation"> G x 年代 经验值 D 2 ,在那里x预测数据是否用于观察和年代是一个支持金宝app向量。
“线性” 内核数据类型指定线性核函数输出的数据类型<年代pan class="inlineequation"> G x 年代 x 年代 ,在那里x预测数据是否用于观察和年代是一个支持金宝app向量。
多项式的 内核数据类型指定多项式核函数输出的数据类型<年代pan class="inlineequation"> G x 年代 1 + x 年代 p ,在那里x是观测的预测数据,年代是支持向量金宝app,和p是多项式核函数的阶数。

有关数据类型的详细信息,请参见控制信号的数据类型(金宝app模型)

单击<年代trong class="guibutton">显示数据类型助手按钮<年代pan class="guiicon">显示<年代trong class="guilabel">数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型(金宝app模型)

编程使用

块参数KernelDataTypeStr
类型:字符向量
“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“uint64”|“int64”|“布尔”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“双”

Simulink检查的内核计算内部变量范围的较低值。金宝app

金宝appSimulink使用最小值执行:

请注意

的<年代trong class="guilabel">内核最低参数不饱和或剪辑实际的内核计算值信号。

编程使用

块参数KernelOutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检查的内核计算内部变量范围的上限值。金宝app

金宝appSimulink使用最大值执行:

请注意

的<年代trong class="guilabel">内核最大参数不饱和或剪辑实际的内核计算值信号。

编程使用

块参数KernelOutMax
类型:字符向量
“[]”|标量
默认的“[]”

块特征

数据类型

布尔||枚举|不动点|一半|整数|

直接引线

是的

多维信号

没有

适应信号

没有

讨论二阶导数过零检测

没有

更多关于

全部展开

提示

  • 如果你使用的是线性SVM模型,它有很多支持向量,那么预测(分类观察)可能会很慢。金宝app为了基于线性支持向量机模型有效地对观测值进行分类,可以从金宝appClassificationSVMCompactClassificationSVM对象,使用discard金宝appSupportVectors

选择功能

函数可以使用MATLAB函数块预测SVM分类对象的目标函数(ClassificationSVMCompactClassificationSVM).有关示例,请参见使用MATLAB函数块预测类标签

当决定是否使用<年代pan class="block">ClassificationSVM预测的统计和机器学习工具箱™库中的函数块或MATLAB函数块预测函数,考虑如下:

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

  • 金宝app控件的MATLAB函数块必须启用对可变大小数组的支持预测函数。

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

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

定点转换
使用定点设计器设计和模拟定点系统。

版本历史

R2020b中介绍

全部展开

另请参阅

对象

功能

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