Класс: ClassificationNaiveBayes
Предскажите метки перезамены наивного классификатора Байеса
label = resubPredict(Mdl)
[label,Posterior,Cost]
= predict(Mdl)
[
дополнительно возвращает апостериорные вероятности (label
,Posterior
,Cost
]
= predict(Mdl
)Posterior
), и предсказанный (ожидал), что misclassification стоит (Cost
), соответствующий наблюдениям (строки) в Mdl.X
.
Mdl
— Полностью обученный наивный классификатор БайесаClassificationNaiveBayes
Полностью обученный наивный классификатор Байеса, заданный как модель ClassificationNaiveBayes
, обученная fitcnb
.
метка
Предсказанные метки классаПредсказанные метки класса, возвращенные как категориальный вектор, символьный массив, логический или числовой вектор или массив ячеек из символьных векторов.
метка:
Posterior
— Апостериорные вероятности классаАпостериорные вероятности класса, возвращенные как числовая матрица. Posterior
имеет строки, равные количеству строк Mdl.X
и столбцов, равных количеству отличных классов в данных тренировки (size(Mdl.ClassNames,1)
).
Posterior(j,k)
является предсказанной апостериорной вероятностью класса k
(т.е. в классе Mdl.ClassNames(k)
), учитывая наблюдение в строке j
Mdl.X
.
Типы данных: double
Cost
— Ожидаемые затраты misclassificationОжидаемые затраты 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
.
misclassification cost является относительной серьезностью классификатора, маркирующего наблюдение в неправильный класс.
Существует два типа затрат misclassification: верный и ожидаемый. Позвольте K быть количеством классов.
True misclassification cost — K-by-K матрица, где элемент (i, j) указывает на misclassification стоимость предсказания наблюдения в класс j, если его истинным классом является i. Программное обеспечение хранит стоимость misclassification в свойстве Mdl.Cost
, и используемый в вычислениях. По умолчанию, Mdl.Cost(i,j)
= 1, если i
≠ j
и Mdl.Cost(i,j)
= 0, если i
= j
. Другими словами, стоимостью является 0
для правильной классификации и 1
для любой неправильной классификации.
Expected misclassification cost — K - размерный вектор, где элемент k является взвешенным средним misclassification стоимость классификации наблюдения в класс k, взвешенный апостериорными вероятностями класса. Другими словами,
программное обеспечение классифицирует наблюдения к классу, соответствующему с самой низкой ожидаемой стоимостью misclassification.
posterior probability является вероятностью, что наблюдение принадлежит конкретного класса, учитывая данные.
Для наивного Бейеса апостериорная вероятность, что классификацией является k для данного наблюдения (x 1..., xP)
где:
условная объединенная плотность предикторов, учитывая, они находятся в классе k. Mdl.DistributionNames
хранит имена распределения предикторов.
π (Y = k) является распределением априорной вероятности класса. Mdl.Prior
хранит предшествующее распределение.
объединенная плотность предикторов. Классы дискретны, таким образом,
prior probability класса является относительной частотой, которой верят, с которой наблюдения от того класса происходят в генеральной совокупности.
[1] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, второго выпуска. Нью-Йорк: Спрингер, 2008.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.