предсказать

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

Синтаксис

labels = predict(Mdl,X)
labels = predict(Mdl,X,Name,Value)
[labels,score] = predict(___)

Описание

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

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

[labels,score] = predict(___) также возвращает матрицу очков классификации (score), указывая на вероятность, что метка прибывает из конкретного класса, с помощью любого из входных параметров в предыдущих синтаксисах. Для каждого наблюдения в 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

score

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

Примеры

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

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

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);

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

Больше о

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

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

Введенный в R2011a