Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

RegressionSVM Predict

使用支持向量机 (SVM) 回归模型预测响应

自 R2020b 起

  • RegressionSVM Predict Block Icon

库:
Statistics and Machine Learning Toolbox / Regression

描述

RegressionSVM Predict 模块使用 SVM 回归对象(RegressionSVMCompactRegressionSVM)预测响应。

通过指定包含经过训练的 SVM 回归对象的工作区变量的名称,将该对象导入模块中。输入端口 x 接收一个观测值(预测变量数据),输出端口 yfit 返回该观测值的预测响应。

端口

输入

全部展开

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

x 中的变量必须与用来训练由选择训练的机器学习模型指定的 SVM 模型的预测变量具有相同的顺序。

如果在训练 SVM 模型时在 fitrsvm 中设置了 'Standardize',true,则 RegressionSVM Predict 模块分别使用 SVM 模型中 MuSigma 属性的均值和标准差来标准化 x 的值。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

输出

全部展开

预测响应,以标量形式返回。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

主要

指定包含 RegressionSVM 对象或 CompactRegressionSVM 对象的工作区变量的名称。

使用 fitrsvm 训练 SVM 模型时,适用以下限制:

  • 预测变量数据不能包含分类预测变量(logicalcategoricalcharstringcell)。如果在表中提供训练数据,预测变量必须为数值(doublesingle)。此外,不能使用 CategoricalPredictors 名称-值参量。要在模型中包含分类预测变量,请在拟合模型之前使用 dummyvar 对其进行预处理。

  • ResponseTransform 名称-值参量的值必须为 'none'(默认值)。

  • KernelFunction 名称-值参量的值必须为 'gaussian''linear'(默认值)或 'polynomial'

编程用法

模块参数:TrainedLearner
类型:工作区变量
值:RegressionSVM 对象 | CompactRegressionSVM 对象
默认值:'svmMdl'

数据类型

定点运算参数

指定定点运算的舍入模式。有关详细信息,请参阅舍入 (Fixed-Point Designer)

模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请使用 MATLAB® 舍入函数在封装字段中输入表达式。

编程用法

模块参数:RndMeth
类型:字符向量
值:"Ceiling" | "Convergent" | "Floor" | "Nearest" | "Round" | "Simplest" | "Zero"
默认值"Floor"

指定对溢出是进行饱和处理还是绕回处理。

操作基本原理对溢出的影响示例

选中此复选框 (on)。

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

将溢出饱和处理为数据类型能够表示的最小值或最大值。

int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。如果选中此复选框,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。

清除此复选框 (off)。

您想优化所生成代码的效率。

您希望避免过度地指定信号超出范围时模块的处理方式。有关详细信息,请参阅信号范围错误故障排除 (Simulink)

溢出将绕回到数据类型可以表示的合适值。

int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。在该复选框处于清除状态时,软件会将导致溢出的值解释为 int8,这可能产生意外结果。例如,以 int8 表示的模块结果 130(二进制 1000 0010)为 -126。

编程用法

模块参数:SaturateOnIntegerOverflow
类型:字符向量
值:"off" | "on"
默认值"off"

选择此参数可防止定点工具覆盖您对模块指定的数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

模块参数:LockScale
类型:字符向量
值:"off" | "on"
默认值"off"
数据类型

yfit 输出指定数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType

当您选择 Inherit: auto 时,模块使用继承数据类型的规则。

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数OutDataTypeStr
类型:字符向量
"Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
默认值"Inherit: auto"

指定 Simulink® 检查的 yfit 输出范围下限值。

Simulink 使用最小值执行下列操作:

注意

输出数据类型最小值参数不会对实际 yfit 信号进行饱和处理或截断。为此,请改用 Saturation (Simulink) 模块。

编程用法

模块参数OutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的 yfit 输出范围上限值。

Simulink 使用最大值执行下列操作:

注意

输出数据类型最大值参数不会对实际 yfit 信号进行饱和处理或截断。为此,请改用 Saturation (Simulink) 模块。

编程用法

模块参数OutMax
类型:字符向量
'[]' | 标量
默认值'[]'

为核计算指定参数的数据类型。该类型可以直接指定或表示为数据类型对象,如 Simulink.NumericType

核数据类型 参数根据指定 SVM 模型的核函数类型指定不同参数的数据类型。在训练 SVM 模型时,指定 KernelFunction 名称-值参量。

'KernelFunction'数据类型
'gaussian''rbf'核数据类型指定高斯核 G(x,s)=exp(D2) 的平方距离 D2=xs2 的数据类型,其中 x 是观测值的预测变量数据,s 是支持向量。
'linear'核数据类型指定线性核函数 G(x,s)=xs' 的输出的数据类型,其中 x 是观测值的预测变量数据,s 是支持向量。
'polynomial'核数据类型指定多项式核函数 G(x,s)=(1+xs')p 的输出的数据类型,其中 x 是观测值的预测变量数据,s 是支持向量,p 是多项式核函数阶。

有关数据类型的详细信息,请参阅控制信号的数据类型 (Simulink)

点击显示数据类型助手按钮 以显示数据类型助手,这有助于您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型 (Simulink)

编程用法

模块参数KernelDataTypeStr
类型:字符向量
'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'uint64' | 'int64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
默认值'double'

指定 Simulink 检查的核计算内部变量范围下限值。

Simulink 使用最小值执行下列操作:

注意

核数据类型最小值参数不会对实际核计算值信号进行饱和处理或截断。

编程用法

模块参数KernelOutMin
类型:字符向量
'[]' | 标量
默认值'[]'

指定 Simulink 检查的核计算内部变量范围的上限值。

Simulink 使用最大值执行下列操作:

注意

核数据类型最大值参数不会对实际核计算值信号进行饱和处理或截断。

编程用法

模块参数KernelOutMax
类型:字符向量
'[]' | 标量
默认值'[]'

模块特性

数据类型

Boolean | double | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

提示

  • 如果您使用的是线性 SVM 模型,并且它有许多支持向量,则预测可能会很慢。要基于线性 SVM 模型高效预测响应,请使用 discardSupportVectorsRegressionSVMCompactRegressionSVM 对象中删除支持向量。

替代功能

您可以将 MATLAB Function 模块与 SVM 回归对象(RegressionSVMCompactRegressionSVM)的 predict 对象函数结合使用。有关示例,请参阅Predict Class Labels Using MATLAB Function Block

在决定是使用 Statistics and Machine Learning Toolbox™ 库中的 RegressionSVM Predict 模块还是具有 predict 函数的 MATLAB Function 模块时,请考虑以下几点:

  • 如果使用 Statistics and Machine Learning Toolbox 库模块,可以使用定点工具 (Fixed-Point Designer)将浮点模型转换为定点。

  • 必须为具有 predict 函数的 MATLAB Function 模块启用对可变大小数组的支持。

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

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2020b 中推出

全部展开