Поля классификации для наивного классификатора Байеса
возвращает Поле Классификации (m
= margin(Mdl
,tbl
,ResponseVarName
)m
) для обученного наивного классификатора Байеса Mdl
использование данных о предикторе в таблице tbl
и класс помечает в tbl.ResponseVarName
.
возвращает поля классификации для m
= margin(Mdl
,X
,Y
)Mdl
использование данных о предикторе в матричном X
и класс помечает в Y
.
m
возвращен как числовой вектор с той же длиной как Y
. Программное обеспечение оценивает каждую запись m
использование обученного наивного классификатора Байеса Mdl
, соответствующая строка X
, и истинная метка Y
класса.
Оцените тестовые поля классификации выборок наивного классификатора Байеса. Поле наблюдения является наблюдаемым истинным счетом класса минус максимальный ложный счет класса среди всех баллов в соответствующем классе.
Загрузите fisheriris
набор данных. Создайте X
как числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Создайте Y
как массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.
load fisheriris X = meas; Y = species; rng('default') % for reproducibility
Случайным образом наблюдения раздела в набор обучающих данных и набор тестов со стратификацией, с помощью информации о классе в Y
. Задайте 30%-ю выборку затяжки для тестирования.
cv = cvpartition(Y,'HoldOut',0.30);
Извлеките обучение и протестируйте индексы.
trainInds = training(cv); testInds = test(cv);
Задайте наборы тестовых данных и обучение.
XTrain = X(trainInds,:); YTrain = Y(trainInds); XTest = X(testInds,:); YTest = Y(testInds);
Обучите наивный классификатор Байеса с помощью предикторов XTrain
и класс маркирует YTrain
. Методические рекомендации должны задать имена классов. fitcnb
принимает, что каждый предиктор условно и нормально распределен.
Mdl = fitcnb(XTrain,YTrain,'ClassNames',{'setosa','versicolor','virginica'})
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 105 DistributionNames: {'normal' 'normal' 'normal' 'normal'} DistributionParameters: {3x4 cell} Properties, Methods
Mdl
обученный ClassificationNaiveBayes
классификатор.
Оцените тестовые поля классификации выборок.
m = margin(Mdl,XTest,YTest); median(m)
ans = 1.0000
Отобразите гистограмму тестовых полей классификации выборок.
histogram(m,length(unique(m)),'Normalization','probability') xlabel('Test Sample Margins') ylabel('Probability') title('Probability Distribution of the Test Sample Margins')
Предпочтены классификаторы, которые дают к относительно большим полям.
Выполните выбор признаков путем сравнения тестовых демонстрационных полей от многоуровневых моделей. Базирующийся только на этом сравнении, классификатор с самыми высокими полями является лучшей моделью.
Загрузите fisheriris
набор данных. Задайте предикторы X
и класс маркирует Y
.
load fisheriris X = meas; Y = species; rng('default') % for reproducibility
Случайным образом наблюдения раздела в набор обучающих данных и набор тестов со стратификацией, с помощью информации о классе в Y
. Задайте 30%-ю выборку затяжки для тестирования. Partition
задает раздел набора данных.
cv = cvpartition(Y,'Holdout',0.30);
Извлеките обучение и протестируйте индексы.
trainInds = training(cv); testInds = test(cv);
Задайте наборы тестовых данных и обучение.
XTrain = X(trainInds,:); YTrain = Y(trainInds); XTest = X(testInds,:); YTest = Y(testInds);
Задайте эти два набора данных:
fullX
содержит все предикторы.
partX
содержит последние два предиктора.
fullX = XTrain; partX = XTrain(:,3:4);
Обучите наивный классификатор Байеса каждому набору предиктора.
fullMdl = fitcnb(fullX,YTrain); partMdl = fitcnb(partX,YTrain);
fullMdl
и partMdl
обученный ClassificationNaiveBayes
классификаторы.
Оцените тестовые демонстрационные поля для каждого классификатора.
fullM = margin(fullMdl,XTest,YTest); median(fullM)
ans = 1.0000
partM = margin(partMdl,XTest(:,3:4),YTest); median(partM)
ans = 1.0000
Отобразите распределение полей для каждой модели с помощью коробчатых диаграмм.
boxplot([fullM partM],'Labels',{'All Predictors','Two Predictors'}) ylim([0.98 1.01]) % Modify the y-axis limits to see the boxes title('Boxplots of Test Sample Margins')
Поля для fullMdl
(вся модель предикторов) и partMdl
(две модели предикторов), имеют подобное распределение с той же медианой. partMdl
является менее комплексным, но имеет выбросы.
Mdl
— Наивная Байесова модель классификацииClassificationNaiveBayes
объект модели | CompactClassificationNaiveBayes
объект моделиНаивная Байесова модель классификации в виде ClassificationNaiveBayes
объект модели или CompactClassificationNaiveBayes
объект модели, возвращенный fitcnb
или compact
, соответственно.
tbl
— Выборочные данныеВыборочные данные раньше обучали модель в виде таблицы. Каждая строка tbl
соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. tbl
должен содержать все предикторы, используемые, чтобы обучить Mdl
. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены. Опционально, tbl
может содержать дополнительные столбцы для весов наблюдения и переменной отклика.
Если вы обучаете Mdl
использование выборочных данных, содержавшихся в таблице, затем входные данные для margin
должен также быть в таблице.
ResponseVarName
— Имя переменной откликаtbl
Имя переменной отклика в виде имени переменной в tbl
.
Необходимо задать ResponseVarName
как вектор символов или строковый скаляр. Например, если переменная отклика y
хранится как tbl.y
, затем задайте его как 'y'
. В противном случае программное обеспечение обрабатывает все столбцы tbl
, включая y
, как предикторы.
Если tbl
содержит переменную отклика, используемую, чтобы обучить Mdl
, затем вы не должны задавать ResponseVarName
.
Переменная отклика должна быть категориальным, символом, или массивом строк, логическим или числовым вектором или массивом ячеек из символьных векторов. Если переменная отклика является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Типы данных: char |
string
X
— Данные о предиктореДанные о предикторе в виде числовой матрицы.
Каждая строка X
соответствует одному наблюдению (также известный как экземпляр или пример), и каждый столбец соответствует одной переменной (также известный как функцию). Переменные в столбцах X
должен совпасть с переменными, которые обучили Mdl
классификатор.
Длина Y
и количество строк X
должно быть равным.
Типы данных: double |
single
Y
— Метки классаКласс помечает в виде категориального, символа, или массива строк, логического или числового вектора или массива ячеек из символьных векторов. Y
должен иметь совпадающий тип данных как Mdl.ClassNames
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Длина Y
должно быть равно количеству строк tbl
или X
.
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
classification edge является взвешенным средним полей классификации.
Если вы предоставляете веса, то программное обеспечение нормирует их, чтобы суммировать к априорной вероятности их соответствующего класса. Программное обеспечение использует нормированные веса, чтобы вычислить взвешенное среднее.
При желании среди нескольких классификаторов выполнить задачу, такую как раздел функции, выберите классификатор, который дает к самому высокому ребру.
classification margin для каждого наблюдения является различием между счетом к истинному классу и максимальным счетом к ложным классам. Поля обеспечивают меру по доверию классификации; среди нескольких классификаторов те, которые дают к большим полям (по той же шкале) лучше.
posterior probability является вероятностью, что наблюдение принадлежит конкретного класса, учитывая данные.
Для наивного Бейеса апостериорная вероятность, что классификацией является k для заданного наблюдения (x 1..., xP)
где:
условная объединенная плотность предикторов, учитывая, они находятся в классе k. Mdl.DistributionNames
хранит имена распределения предикторов.
π (Y = k) является априорным распределением вероятностей класса. Mdl.Prior
хранит предшествующее распределение.
объединенная плотность предикторов. Классы дискретны, таким образом,
prior probability класса является принятой относительной частотой, с которой наблюдения от того класса происходят в населении.
Наивный Байесов score является апостериорной вероятностью класса, учитывая наблюдение.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации см. Раздел "Высокие массивы".
ClassificationNaiveBayes
| CompactClassificationNaiveBayes
| edge
| fitcnb
| loss
| predict
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.