Классифицируйте наблюдения с помощью наивного классификатора Байеса
[ также возвращает Апостериорную вероятность (label,Posterior,Cost]
= resubPredict(Mdl)Posterior) и предсказанный (ожидал) Стоимость Misclassification (Cost) соответствие наблюдениям (строки) в Mdl.X.
Загрузите fisheriris набор данных. Создайте X как числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Создайте Y как массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.
load fisheriris X = meas; Y = species; rng('default') % for reproducibility
Обучите наивный классификатор Байеса с помощью предикторов X и класс маркирует Y. Методические рекомендации должны задать имена классов. fitcnb принимает, что каждый предиктор условно и нормально распределен.
Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'})
Mdl =
ClassificationNaiveBayes
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'setosa' 'versicolor' 'virginica'}
ScoreTransform: 'none'
NumObservations: 150
DistributionNames: {'normal' 'normal' 'normal' 'normal'}
DistributionParameters: {3x4 cell}
Properties, Methods
Mdl обученный ClassificationNaiveBayes классификатор.
Предскажите метки обучающей выборки.
label = resubPredict(Mdl);
Отобразите результаты для случайного набора 10 наблюдений.
idx = randsample(size(X,1),10); table(Y(idx),label(idx),'VariableNames', ... {'TrueLabel','PredictedLabel'})
ans=10×2 table
TrueLabel PredictedLabel
______________ ______________
{'virginica' } {'virginica' }
{'setosa' } {'setosa' }
{'virginica' } {'virginica' }
{'versicolor'} {'versicolor'}
{'virginica' } {'virginica' }
{'versicolor'} {'versicolor'}
{'virginica' } {'virginica' }
{'setosa' } {'setosa' }
{'virginica' } {'virginica' }
{'setosa' } {'setosa' }
Создайте график беспорядка от истины, маркирует Y и предсказанные метки label.
cm = confusionchart(Y,label);

Оцените апостериорные вероятности в выборке и затраты misclassification с помощью наивного классификатора Байеса.
Загрузите fisheriris набор данных. Создайте X как числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Создайте Y как массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.
load fisheriris X = meas; Y = species; rng('default') %for reproducibility
Обучите наивный классификатор Байеса с помощью предикторов X и класс маркирует Y. Методические рекомендации должны задать имена классов. fitcnb принимает, что каждый предиктор условно и нормально распределен.
Mdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'});
Mdl обученный ClassificationNaiveBayes классификатор.
Оцените апостериорные вероятности и ожидаемые затраты misclassification для обучающих данных.
[label,Posterior,MisclassCost] = resubPredict(Mdl); Mdl.ClassNames
ans = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Отобразите результаты для 10 случайным образом выбранных наблюдений.
idx = randsample(size(X,1),10); table(Y(idx),label(idx),Posterior(idx,:),MisclassCost(idx,:),'VariableNames', ... {'TrueLabel','PredictedLabel','PosteriorProbability','MisclassificationCost'})
ans=10×4 table
TrueLabel PredictedLabel PosteriorProbability MisclassificationCost
______________ ______________ _________________________________________ ______________________________________
{'virginica' } {'virginica' } 6.2514e-269 1.1709e-09 1 1 1 1.1709e-09
{'setosa' } {'setosa' } 1 5.5339e-19 2.485e-25 5.5339e-19 1 1
{'virginica' } {'virginica' } 7.4191e-249 1.4481e-10 1 1 1 1.4481e-10
{'versicolor'} {'versicolor'} 3.4472e-62 0.99997 3.362e-05 1 3.362e-05 0.99997
{'virginica' } {'virginica' } 3.4268e-229 6.597e-09 1 1 1 6.597e-09
{'versicolor'} {'versicolor'} 6.0941e-77 0.9998 0.00019663 1 0.00019663 0.9998
{'virginica' } {'virginica' } 1.3467e-167 0.002187 0.99781 1 0.99781 0.002187
{'setosa' } {'setosa' } 1 1.5776e-15 5.7172e-24 1.5776e-15 1 1
{'virginica' } {'virginica' } 2.0116e-232 2.6206e-10 1 1 1 2.6206e-10
{'setosa' } {'setosa' } 1 1.8085e-17 1.9639e-24 1.8085e-17 1 1
Порядок столбцов Posterior и MisclassCost соответствует порядку классов в Mdl.ClassNames.
Mdl — Полный, обученный наивный классификатор БайесаClassificationNaiveBayes модельПолный, обученный наивный классификатор Байеса в виде ClassificationNaiveBayes модель, обученная fitcnb.
label — Предсказанные метки классаПредсказанные метки класса, возвращенные как категориальный вектор, символьный массив, логический или числовой вектор или массив ячеек из символьных векторов.
Предсказанные метки класса имеют следующее:
Совпадающий тип данных как наблюдаемый класс помечает (Mdl.Y). (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Длина, равная количеству строк Mdl.X.
Класс, дающий к самому низкому, ожидал стоимость misclassification (Cost).
Posterior — Апостериорная вероятность классаАпостериорная вероятность класса, возвращенная как числовая матрица. Posterior имеет строки, равные количеству строк Mdl.X и столбцы равняются количеству отличных классов в обучающих данных (size(Mdl.ClassNames,1)).
Posterior(j,k) предсказанная апостериорная вероятность класса k (в классе Mdl.ClassNames(k)) учитывая наблюдение в строке j из Mdl.X.
Cost — Ожидаемые затраты misclassificationОжидаемая Стоимость Misclassification, возвращенная как числовая матрица. Cost имеет строки, равные количеству строк Mdl.X и столбцы равняются количеству отличных классов в обучающих данных (size(Mdl.ClassNames,1)).
Cost(j,k) ожидаемая misclassification стоимость наблюдения в строке j из Mdl.X предсказанный в класс k (в классе Mdl.ClassNames(k)).
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 класса является принятой относительной частотой, с которой наблюдения от того класса происходят в населении.
ClassificationNaiveBayes | CompactClassificationNaiveBayes | fitcnb | loss | predict
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.