resubPredict

Класс: ClassificationNaiveBayes

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

Описание

пример

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

пример

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

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

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

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

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

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

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

label:

  • Совпадающий тип данных, когда наблюдаемый класс помечает (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.