ClassificationSVM Predict

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

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

Описание

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

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

Порты

Вход

расширить все

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

Зависимости

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

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

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

Выход

расширить все

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

Зависимости

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

  • Для двухклассного обучения label является классом, дающим самый большой счет или самую большую апостериорную вероятность.

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

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

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

  • Для двухклассного обучения 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 диалогового окна Параметров блоков.

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

Параметры

расширить все

Главный

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

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

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

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

  • Значение 'KernelFunction' аргумент имя-значение должен быть 'gaussian' (аналогично 'rbf', по умолчанию для одноклассного обучения), '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 Designer).

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

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

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

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

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

  • Inherit: auto (по умолчанию для нечисловых меток) - блок использует автоматическую переменную перечисленного типа данных. Например, предположим, что имя переменной рабочей области задано как Select trained machine learning model является myMdl, и метки классов  class 1 и  class 2. Затем соответствующие значения label myMdl_enumLabels.class_1 и myMdl_enumLabels.class_2. Блок преобразует метки классов в действительные идентификаторы MATLAB с помощью matlab.lang.makeValidName функция.

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

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

Зависимости

Поддерживаемые типы данных зависят от меток, используемых в модели, заданной Select trained machine learning model.

  • Если в модели используются числовые или логические метки, поддерживаемые типы данных Inherit: Inherit via back propagation (по умолчанию), double, single, half, int8, uint8, int16, uint16, int32, uint32, int64, uint64, boolean, фиксированная точка и объект типа данных.

  • Если в модели используются нечисловые метки, поддерживаемые типы данных Inherit: auto (по умолчанию), Enum: <class name>, и объект типа данных.

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

Параметры блоков: LabelDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit via back propagation' | 'Inherit: auto' | 'double' | 'single' | 'half' | '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' (для числовых и логических меток) | 'Inherit: auto' (для нечисловых меток)

Более низкий значение < reservedrangesplaceholder0 > выход области значений том Simulink® проверки.

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

Примечание

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

Зависимости

Можно задать этот параметр, только если модель задана как Select trained machine learning model использует числовые метки.

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

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

Верхний значение < reservedrangesplaceholder0 > выход области значений, которое проверяет Simulink.

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

Примечание

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

Зависимости

Можно задать этот параметр, только если модель задана как Select trained machine learning model использует числовые метки.

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

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

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

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

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

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

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

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

Более низкий значение < reservedrangesplaceholder0 > выход области значений, что Simulink проверяет.

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

Примечание

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

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

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

Верхний значение < reservedrangesplaceholder0 > выход области значений, которое проверяет Simulink.

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

Примечание

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

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

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

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

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

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

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

Зависимости

Можно задать этот параметр, только если модель задана как Select trained machine learning model использует преобразование счета кроме 'none' (по умолчанию, так же, как 'identity').

  • Если модель не использует преобразования счета ('none' или 'identity'), затем можно задать тип данных счета при помощи Score data type.

  • Если в модели используется преобразование счета, отличное от 'none' или 'identity', затем можно задать тип данных нетрансформированных необработанных счетов с помощью этого параметра и указать тип данных преобразованных счетов с помощью Score data type.

Вы можете изменить опцию преобразования счета, задав 'ScoreTransform' аргумент имя-значение во время обучения или путем изменения ScoreTransform свойство после обучения.

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

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

Более низкое значение нетрансформированной области значений счетов, который проверяет Simulink.

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

Примечание

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

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

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

Верхнее значение нетрансформированной области значений счетов, который проверяет Simulink.

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

Примечание

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

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

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

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

Параметр 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).

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

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

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

Более низкое значение внутренней области значений переменных расчетов ядра, который проверяет Simulink.

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

Примечание

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

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

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

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

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

Примечание

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

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

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

Характеристики блоков

Типы данных

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

Прямое сквозное соединение

yes

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Подробнее о

расширить все

Совет

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

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

Вы можете использовать блок MATLAB Function с predict функция объекта классификации SVM (ClassificationSVM или CompactClassificationSVM). Для получения примера смотрите Предсказание меток классов с использованием Блока MATLAB function.

При решении, использовать ли блок 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.

Вопросы совместимости

расширить все

Поведение изменено в R2021a

Поведение изменено в R2021a

Поведение изменено в R2021a

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

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

.

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

Введенный в R2020b