exponenta event banner

предсказать

Классифицировать наблюдения с использованием совокупности классификационных моделей

Описание

labels = predict(Mdl,X) возвращает вектор прогнозируемых меток класса для данных предиктора в таблице или матрице X, на основе полного или компактного обученного классификационного ансамбля Mdl.

labels = predict(Mdl,X,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары.

[labels,scores] = predict(___) также возвращает матрицу классификационных баллов (scores), указывая на вероятность того, что метка исходит из определенного класса, используя любой из входных аргументов в предыдущих синтаксисах. Для каждого наблюдения в X, прогнозируемая метка класса соответствует максимальному баллу среди всех классов.

Входные аргументы

Mdl

Классификационный ансамбль, созданный fitcensemble или компактный классификационный ансамбль, созданный compact.

X

Данные предиктора, подлежащие классификации, указываются как числовая матрица или таблица.

Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

  • Для числовой матрицы:

    • Переменные, составляющие столбцы X должен иметь тот же порядок, что и обучаемые переменные предиктора Mdl.

    • Если вы тренировались Mdl использование таблицы (например, Tbl), то X может быть числовой матрицей, если Tbl содержит все числовые переменные предиктора. Чтобы обработать числовые предикторы в Tbl в качестве категориального во время обучения, определить категориальные предикторы, используя CategoricalPredictors аргумент пары имя-значение fitcensemble. Если Tbl содержит разнородные переменные предиктора (например, числовые и категориальные типы данных) и X является числовой матрицей, то predict выдает ошибку.

  • Для таблицы:

    • predict не поддерживает многозначные переменные или массивы ячеек, отличные от массивов ячеек символьных векторов.

    • Если вы тренировались Mdl использование таблицы (например, Tbl), затем все переменные предиктора в X должны иметь те же имена переменных и иметь те же типы данных, что и прошедшие обучение Mdl (хранится в Mdl.PredictorNames). Однако порядок столбцов X не обязательно соответствовать порядку столбцов Tbl. Tbl и X может содержать дополнительные переменные (переменные ответа, веса наблюдений и т.д.), но predict игнорирует их.

    • Если вы тренировались Mdl используя числовую матрицу, затем имена предикторов в Mdl.PredictorNames и соответствующие имена переменных предиктора в X должно быть то же самое. Чтобы указать имена предикторов во время обучения, см. PredictorNames аргумент пары имя-значение fitcensemble. Все переменные предиктора в X должны быть числовыми векторами. X может содержать дополнительные переменные (переменные ответа, веса наблюдений и т.д.), но predict игнорирует их.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'Learners'

Индексы слабых учащихся predict использует для вычисления откликов числовой вектор.

По умолчанию: 1:T, где T - число слабых учащихся в Mdl

'UseObsForLearner'

Логическая матрица размера Nоколо-T, где:

  • N - количество строк X.

  • T - число слабых учащихся в Mdl.

Когда UseObsForLearner(i,j) является true, ученик j используется при прогнозировании класса строки i из X.

По умолчанию: true(N,T)

Выходные аргументы

labels

Вектор классификационных меток. labels имеет тот же тип данных, что и метки, используемые в обучении Mdl. (Программа рассматривает строковые массивы как массивы ячеек символьных векторов.)

scores

Матрица с одной строкой на наблюдение и одним столбцом на класс. Для каждого наблюдения и каждого класса оценка представляет уверенность в том, что наблюдение происходит от этого класса. Более высокий балл указывает на более высокую уверенность. Дополнительные сведения см. в разделе Оценка (ансамбль).

Примеры

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

Загрузите набор данных радужки Фишера. Определите размер выборки.

load fisheriris
N = size(meas,1);

Разбейте данные на обучающие и тестовые наборы. Удерживайте 10% данных для тестирования.

rng(1); % For reproducibility
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

Сохраните данные обучения в таблице.

tblTrn = array2table(meas(idxTrn,:));
tblTrn.Y = species(idxTrn);

Обучение классификационного ансамбля с использованием AdaBoostM2 и обучающего набора. Укажите пни дерева в качестве слабых учеников.

t = templateTree('MaxNumSplits',1);
Mdl = fitcensemble(tblTrn,'Y','Method','AdaBoostM2','Learners',t);

Спрогнозировать метки для тестового набора. Вы обучили модель, используя таблицу данных, но можете прогнозировать метки с помощью матрицы.

labels = predict(Mdl,meas(idxTest,:));

Создайте матрицу путаницы для тестового набора.

confusionchart(species(idxTest),labels)

Figure contains an object of type ConfusionMatrixChart.

Mdl неверно классифицирует одну диафрагму versicolor как virginica в наборе тестов.

Подробнее

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

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

Блок симулятора

Для интеграции прогнозирования ансамбля в Simulink ® можно использовать блок прогнозирования ансамбля в библиотеке Toolbox™ статистики и машинного обучения или функциональный блок MATLAB ® с помощью predict функция. Для примеров посмотрите, Предсказывают, что Этикетки Класса Используя ClassificationEnsemble Предсказывают Блок и Предсказывают Этикетки Класса Используя Функциональный блок MATLAB.

При принятии решения о том, какой подход использовать, необходимо учитывать следующее:

  • При использовании блока библиотеки инструментов «Статистика и машинное обучение» для преобразования модели с плавающей запятой в фиксированную можно использовать инструмент «Фиксированная точка» (Fixed-Point Designer).

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

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

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

.
Представлен в R2011a