ClassificationSVM Predict

Классифицируйте наблюдения с помощью классификатора машины опорных векторов (SVM) для и бинарной классификации одного класса

  • Библиотека:
  • Statistics and Machine Learning Toolbox / Классификация

Описание

Блок ClassificationSVM Predict классифицирует наблюдения с помощью объекта ClassificationSVM классификации SVM и его объектная функция predict для одного класса и 2D класса (двоичный файл) классификация.

Импортируйте обученный объект классификации SVM в блок путем определения имени переменной рабочей области, которая содержит ClassificationSVM объект. Входной порт X получает наблюдение (данные о предикторе), и выходной порт Label, возвращает предсказанную метку класса для наблюдения. Можно добавить дополнительный выходной порт Score, который возвращает предсказанные баллы класса или апостериорные вероятности.

Порты

Входной параметр

развернуть все

Данные о предикторе в виде вектор-столбца или вектора-строки из одного наблюдения.

Зависимости

  • Переменные в X должны иметь тот же порядок как переменные предикторы, которые обучили модель SVM, заданную Select trained machine learning model.

  • Если вы устанавливаете 'Standardize',true \in fitcsvm когда обучение модель SVM, затем блок ClassificationSVM Predict стандартизирует значения X с помощью средних значений и стандартных отклонений в Mu и Sigma свойства (соответственно) модели SVM.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Вывод

развернуть все

Предсказанная метка класса, возвращенная как скаляр.

Зависимости

  • Для изучения одного класса Label является значением, представляющим положительный класс.

  • Для изучения 2D класса Label является классом, дающим к самому большому счету или самой большой апостериорной вероятности.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

Предсказанные баллы класса или апостериорные вероятности, возвращенные как скаляр для изучения одного класса или вектор 1 на 2 для изучения 2D класса.

  • Для изучения одного класса Score является классификационной оценкой положительного класса. Вы не можете получить апостериорные вероятности для изучения одного класса.

  • Для изучения 2D класса Score является вектором 1 на 2.

    • Первый и второй элемент Score соответствует классификационным оценкам отрицательного класса (svmMdl.ClassNames(1)) и положительный класс (svmMdl.ClassNames(2)), соответственно, где svmMdl модель SVM, заданная Select trained machine learning model. Можно использовать ClassNames свойство svmMdl проверять отрицательные и положительные имена классов.

    • Если вы соответствуете оптимальному счету к использованию функции преобразования апостериорной вероятности fitPosterior или fitSVMPosterior, затем Score содержит апостериорные вероятности класса. В противном случае Score содержит оценки класса.

Зависимости

Чтобы включить этот порт, установите флажок для Add output port for predicted class scores на вкладке Main диалогового окна Block Parameters.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

развернуть все

Основной

Задайте имя переменной рабочей области, которая содержит ClassificationSVM объект или CompactClassificationSVM объект.

Когда вы обучаете модель SVM при помощи fitcsvm, следующие ограничения применяются:

  • Данные о предикторе не могут включать категориальные предикторы (logicalкатегориальный'char'Строка, или cell). Если вы снабжаете обучающими данными в таблице, предикторы должны быть числовыми (double или single). Кроме того, вы не можете использовать 'CategoricalPredictors' аргумент пары "имя-значение". Чтобы включать категориальные предикторы в модель SVM, предварительно обработайте категориальные предикторы при помощи dummyvar прежде, чем подбирать модель SVM.

  • Значение 'ScoreTransform' аргументом пары "имя-значение" не может быть 'invlogit' или анонимная функция. Для блока, который предсказывает апостериорные вероятности, данные новые наблюдения, передайте обученную модель SVM fitPosterior или fitSVMPosterior.

  • Значение 'KernelFunction' аргументом пары "имя-значение" должен быть 'gaussian', 'linear', или 'polynomial'.

Программируемое использование

Параметры блоков: TrainedLearner
Ввод: переменная рабочей области
Значения: ClassificationSVM возразите | CompactClassificationSVM объект
Значение по умолчанию: svmMdl

Установите флажок, чтобы включать второй выходной порт Score в блок ClassificationSVM Predict.

Программируемое использование

Параметры блоков: ShowOutputScore
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Типы данных

Фиксированная точка операционные параметры

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (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, который может привести к непреднамеренному результату. Например, результат блока 130 (двоичный файл 1000 0010) описанный как int8 –126.

Программируемое использование

Параметры блоков: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных, который вы задаете для блока. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

Программируемое использование

Параметры блоков: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'
Тип данных

Задайте тип данных для Label выход. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType.

Когда вы выбираете наследованную опцию, программное обеспечение ведет себя можно следующим образом:

  • Inherit: Inherit via back propagation — Simulink автоматически определяет Label data type блока во время распространения типа данных (см. Распространение Типа данных (Simulink)). В этом случае блок использует тип данных нисходящего блока или объекта сигнала.

  • Inherit: Inherit from 'Constant value' — Блок ClassificationSVM predict использует блок Constant под маской. Тип данных блока Constant зависит от наблюдаемых меток класса, которые обучили модель SVM, заданную Select trained machine learning model.

    • Если наблюдаемые метки класса являются числовыми, то типом данных блока Constant является double.

    • Если наблюдаемыми метками класса является logical, затем типом данных блока Constant является boolean.

    • Если наблюдаемые метки класса не являются числовыми или logical, затем блок Constant использует enumerated переменная enumLabels типа данных. Например, если метками класса является  class 1 и  class 2, затем соответствующими значениями Label является enumLabels.class_1 и enumLabels.class_2. Блок преобразует метки класса в допустимые идентификаторы MATLAB при помощи matlab.lang.makeValidName функция.

Для получения дополнительной информации о типах данных, смотрите Типы данных Управляющего сигнала (Simulink).

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

Программируемое использование

Параметры блоков: LabelDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via back propagation' | Inherit: Inherit from 'Constant value' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | boolean | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | Enum: <class name> | '<data type expression>'
Значение по умолчанию: 'Inherit: Inherit via back propagation'

Нижнее значение Label область значений выхода, которую проверяет Simulink®.

Simulink использует минимальное значение, чтобы выполнить:

Примечание

Параметр Label minimum не насыщает или отсекает фактический выходной сигнал Label. Используйте блок Saturation (Simulink) вместо этого.

Программируемое использование

Параметры блоков: LabelOutMin
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Верхнее значение Label область значений выхода это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Параметр Label maximum не насыщает или отсекает фактический выходной сигнал Label. Используйте блок Saturation (Simulink) вместо этого.

Программируемое использование

Параметры блоков: LabelOutMax
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Задайте тип данных для Score выход. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType.

Когда вы выбираете Inherit: auto, блок использует правило, которое наследовало тип данных.

Для получения дополнительной информации о типах данных, смотрите Типы данных Управляющего сигнала (Simulink).

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

Программируемое использование

Параметры блоков: ScoreDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
Значение по умолчанию: 'double'

Нижнее значение Score область значений выхода это Simulink Check.

Simulink использует минимальное значение, чтобы выполнить:

Примечание

Параметр Score minimum не насыщает или отсекает фактический сигнал Score. Используйте блок Saturation (Simulink) вместо этого.

Программируемое использование

Параметры блоков: ScoreOutMin
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Верхнее значение Score область значений выхода это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Параметр Score maximum не насыщает или отсекает фактический сигнал Score. Используйте блок Saturation (Simulink) вместо этого.

Программируемое использование

Параметры блоков: ScoreOutMax
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Задайте тип данных для внутренних непреобразованных баллов. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType.

Когда вы выбираете Inherit: auto, блок использует правило, которое наследовало тип данных.

Для получения дополнительной информации о типах данных, смотрите Типы данных Управляющего сигнала (Simulink).

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

Программируемое использование

Параметры блоков: RawScoreDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
Значение по умолчанию: 'double'

Нижнее значение непреобразованной области значений счета это Simulink Check.

Simulink использует минимальное значение, чтобы выполнить:

Примечание

Параметр Raw score minimum не насыщает или отсекает фактический непреобразованный сигнал счета.

Программируемое использование

Параметры блоков: RawScoreOutMin
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Верхнее значение непреобразованной области значений счета это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Параметр Raw score maximum не насыщает или отсекает фактический непреобразованный сигнал счета.

Программируемое использование

Параметры блоков: RawScoreOutMax
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Задайте тип данных параметра для расчета ядра.

Параметр Kernel data type задает тип данных различного параметра в зависимости от типа функции ядра заданной модели SVM. Вы задаете 'KernelFunction' аргумент пары "имя-значение", когда обучение модель SVM.

'KernelFunction' значениеТип данных
'gaussian' или 'rbf'Kernel data type задает тип данных квадрата расстояния D2=xs2 для Гауссова ядра G(x,s)=exp(D2), где x является данными о предикторе для наблюдения, и s является вектором поддержки.
'linear'Kernel data type задает тип данных для выхода линейной функции ядра G(x,s)=xs', где x является данными о предикторе для наблюдения, и s является вектором поддержки.
'polynomial'Kernel data type задает тип данных для выхода полиномиальной функции ядра G(x,s)=(1+xs')p, где x является данными о предикторе для наблюдения, s является вектором поддержки, и p является полиномиальным порядком функции ядра.

Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType.

Когда вы выбираете наследованную опцию, программное обеспечение ведет себя можно следующим образом:

  • Inherit: Inherit via internal rule — Блок использует внутреннее правило, чтобы определить его тип данных. Внутреннее правило выбирает тип данных, который оптимизирует числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора. Программное обеспечение не может одновременно оптимизировать КПД и числовую точность во всех ситуациях.

  • Inherit: Keep MSB — Simulink выбирает тип данных, который обеспечивает полный спектр операции, и затем уменьшает точность до размера, подходящего для оборудования целевого процессора. Это правило никогда не производит переполнение.

    Совет

    Для более эффективного сгенерированного кода очистите параметр Saturate on integer overflow.

  • Inherit: Match scaling — Simulink выбирает тип данных, масштабирование которого соответствий масштабирование входных типов, где вход относится к входу блока под маской. Если полный спектр типа не соответствует на оборудовании целевого процессора, программное обеспечение уменьшает область значений, чтобы дать к типу, который подходит для оборудования целевого процессора. Это правило может произвести переполнение.

    Программное обеспечение не может одновременно оптимизировать КПД кода и числовую точность во всех ситуациях. Если эти внутренние правила не удовлетворяют ваши определенные потребности для числовой точности или эффективности, используйте одну из следующих опций:

    • Задайте тип данных явным образом.

    • Задайте тип данных по умолчанию явным образом, такой как fixdt(1,32,16), и затем используйте Fixed-Point Tool, чтобы предложить типы данных для вашей модели. Для получения дополнительной информации смотрите fxptdlg (Fixed-Point Designer).

  • Inherit: Inherit via back propagation — (Не рекомендуемый), блок использует тип данных нисходящего блока под маской.

  • Inherit: Same as first input — (Не рекомендуемый), Этот первый вход относится к первому входу блока под маской.

Для получения дополнительной информации о типах данных, смотрите Типы данных Управляющего сигнала (Simulink).

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

Программируемое использование

Параметры блоков: KernelDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Keep MSB' | 'Inherit: Match scaling' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'uint64' | 'int64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
Значение по умолчанию: 'double'

Нижнее значение области значений внутренней переменной расчета ядра это Simulink Check.

Simulink использует минимальное значение, чтобы выполнить:

Примечание

Параметр Kernel minimum не насыщает или отсекает фактический сигнал значения расчета ядра.

Программируемое использование

Параметры блоков: KernelOutMin
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Верхнее значение области значений внутренней переменной расчета ядра это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Параметр Kernel maximum не насыщает или отсекает фактический сигнал значения расчета ядра.

Программируемое использование

Параметры блоков: KernelOutMax
Ввод: символьный вектор
Значения: '[ ]'| скаляр
Значение по умолчанию: '[ ]'

Больше о

развернуть все

Советы

  • Если вы используете линейную модель SVM, и она имеет много векторов поддержки, то предсказание (классифицирующий наблюдения) может быть медленным. Чтобы эффективно классифицировать наблюдения на основе линейной модели SVM, удалите векторы поддержки из ClassificationSVM объект при помощи discardSupportVectors.

Альтернативная функциональность

Можно использовать блок MATLAB function с predict объектная функция ClassificationSVM объект. Для примера смотрите, Предсказывают, что Класс Маркирует Using MATLAB Function Block.

При решении, использовать ли блок ClassificationSVM Predict в библиотеке Statistics and Machine Learning Toolbox™ или блоке MATLAB function с predict функционируйте, рассмотрите следующее:

  • Если вы используете библиотечный блок Statistics and Machine Learning Toolbox, можно использовать Fixed-Point Tool (Fixed-Point Designer), чтобы преобразовать модель с плавающей точкой в фиксированную точку.

  • Поддержка массивов переменного размера должна быть включена для блока MATLAB function с predict функция.

  • Если вы используете блок MATLAB function, можно использовать функции MATLAB для предварительной обработки или последующей обработки прежде или после предсказаний в том же блоке MATLAB function.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Введенный в R2020b