predict

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

Описание

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-by- 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 ошибочно классифицирует одну ирису версиколора как virginica в тестовом наборе.

Подробнее о

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

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

Блок Simulink

Чтобы интегрировать предсказание ансамбля в Simulink®можно использовать блок ClassificationEnsemble Predict в библиотеке Statistics and Machine Learning Toolbox™ или MATLAB® Функциональный блок с predict функция. Для примеров смотрите Предсказание меток классов с использованием ClassificationEnsemble Predict Block и Предсказание меток классов с использованием Блок MATLAB Function.

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

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

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

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

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

.
Введенный в R2011a