resubPredict

Класс: ClassificationNaiveBayes

Предскажите метки перезамены наивного классификатора Байеса

Синтаксис

label = resubPredict(Mdl)
[label,Posterior,Cost] = predict(Mdl)

Описание

пример

label = resubPredict(Mdl) возвращается вектор предсказанного класса маркирует (label) для обученного наивного классификатора Байеса Mdl с помощью данных о предикторе Mdl.X.

пример

[label,Posterior,Cost] = predict(Mdl) дополнительно возвращает апостериорные вероятности (Posterior), и предсказанный (ожидал), что misclassification стоит (Cost), соответствующий наблюдениям (строки) в Mdl.X.

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

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

Полностью обученный наивный классификатор Байеса, заданный как модель ClassificationNaiveBayes, обученная fitcnb.

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

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

Предсказанные метки класса, возвращенные как категориальный вектор, символьный массив, логический или числовой вектор или массив ячеек из символьных векторов.

метка:

  • Совпадающий тип данных, когда наблюдаемый класс маркирует (Y), который обучил Mdl. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

  • Имеет длину, равную количеству строк X.

  • Класс, приводящий к самому низкому ожидаемому misclassification, стоит (Cost).

Апостериорные вероятности класса, возвращенные как числовая матрица. Posterior имеет строки, равные количеству строк Mdl.X и столбцов, равных количеству отличных классов в данных тренировки (size(Mdl.ClassNames,1)).

Posterior(j,k) является предсказанной апостериорной вероятностью класса k (т.е. в классе Mdl.ClassNames(k)), учитывая наблюдение в строке j Mdl.X.

Типы данных: double

Ожидаемые затраты misclassification, возвращенные как числовая матрица. Cost имеет строки, равные количеству строк Mdl.X и столбцов, равных количеству отличных классов в данных тренировки (size(Mdl.ClassNames,1)).

Cost(j,k) является ожидаемой misclassification стоимостью наблюдения в строке j Mdl.X, предсказываемого в класс k (т.е. в классе Mdl.ClassNames(k)).

Примеры

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

Загрузите ирисовый набор данных Фишера.

load fisheriris
X = meas;    % Predictors
Y = species; % Response

Обучите наивный классификатор Байеса. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно, нормально распределен, учитывая свою метку.

Mdl = fitcnb(X,Y,...
    'ClassNames',{'setosa','versicolor','virginica'});

Mdl является классификатором ClassificationNaiveBayes.

Предскажите учебные демонстрационные метки. Отобразите результаты для этих 10 наблюдений.

label = resubPredict(Mdl);
rng(1); % For reproducibility
idx = randsample(size(X,1),10);
table(Y(idx),label(idx),'VariableNames',...
    {'TrueLabel','PredictedLabel'})
ans=10×2 table
     TrueLabel      PredictedLabel
    ____________    ______________

    'setosa'         'setosa'     
    'versicolor'     'versicolor' 
    'virginica'      'virginica'  
    'setosa'         'setosa'     
    'versicolor'     'versicolor' 
    'setosa'         'setosa'     
    'versicolor'     'versicolor' 
    'versicolor'     'versicolor' 
    'setosa'         'setosa'     
    'setosa'         'setosa'     

Загрузите ирисовый набор данных Фишера.

load fisheriris
X = meas;    % Predictors
Y = species; % Response

Обучите наивный классификатор Байеса. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно, нормально распределен, учитывая свою метку.

Mdl = fitcnb(X,Y,...
    'ClassNames',{'setosa','versicolor','virginica'});

Mdl является классификатором ClassificationNaiveBayes.

Оцените апостериорные вероятности и ожидаемые затраты misclassification для данных тренировки. Отобразите результаты для 10 наблюдений.

[label,Posterior,MisclassCost] = resubPredict(Mdl);
rng(1); % For reproducibility
idx = randsample(size(X,1),10);
Mdl.ClassNames
ans = 3x1 cell array
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

table(Y(idx),label(idx),Posterior(idx,:),'VariableNames',...
    {'TrueLabel','PredictedLabel','PosteriorProbability'})
ans=10×3 table
     TrueLabel      PredictedLabel              PosteriorProbability           
    ____________    ______________    _________________________________________

    'setosa'         'setosa'                   1     3.8821e-16     5.5878e-24
    'versicolor'     'versicolor'      1.2516e-54              1     4.5001e-06
    'virginica'      'virginica'      5.5646e-188     0.00058232        0.99942
    'setosa'         'setosa'                   1     4.5352e-20     3.1301e-27
    'versicolor'     'versicolor'      5.0002e-69        0.99989     0.00010716
    'setosa'         'setosa'                   1     2.9813e-18     2.1524e-25
    'versicolor'     'versicolor'      4.6313e-60        0.99999     7.5413e-06
    'versicolor'     'versicolor'     7.9205e-100        0.94293       0.057072
    'setosa'         'setosa'                   1      1.799e-19     6.0606e-27
    'setosa'         'setosa'                   1     1.5426e-17     1.2744e-24

MisclassCost(idx,:)
ans = 10×3

    0.0000    1.0000    1.0000
    1.0000    0.0000    1.0000
    1.0000    0.9994    0.0006
    0.0000    1.0000    1.0000
    1.0000    0.0001    0.9999
    0.0000    1.0000    1.0000
    1.0000    0.0000    1.0000
    1.0000    0.0571    0.9429
    0.0000    1.0000    1.0000
    0.0000    1.0000    1.0000

Порядок столбцов Posterior и MisclassCost соответствует порядку классов в Mdl.ClassNames.

Больше о

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

Ссылки

[1] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, второго выпуска. Нью-Йорк: Спрингер, 2008.