Ребро классификации для наивных классификаторов Байеса
возвращает ребро классификации (e
= edge(Mdl
,tbl
,ResponseVarName
)e
) для наивного классификатора Байеса Mdl
использование данных о предикторе в таблице tbl
и класс помечает в tbl.ResponseVarName
.
вычисляет ребро классификации с дополнительными опциями, заданными одним или несколькими e
= edge(___,Name,Value
)Name,Value
парные аргументы, с помощью любого из предыдущих синтаксисов.
Mdl
— Наивный классификатор БайесаClassificationNaiveBayes
модель | CompactClassificationNaiveBayes
модельНаивный классификатор Байеса в виде ClassificationNaiveBayes
модель или CompactClassificationNaiveBayes
модель возвращена fitcnb
или compact
, соответственно.
tbl
— Выборочные данныеВыборочные данные в виде таблицы. Каждая строка tbl
соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. Опционально, tbl
может содержать дополнительные столбцы для весов наблюдения и переменной отклика. tbl
должен содержать все предикторы, используемые, чтобы обучить Mdl
. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.
Если вы обучили Mdl
использование выборочных данных содержится в table
, затем входные данные для этого метода должны также быть в таблице.
Типы данных: table
ResponseVarName
— Имя переменной откликаtbl
Имя переменной отклика в виде имени переменной в tbl
.
Необходимо задать ResponseVarName
как вектор символов или строковый скаляр. Например, если переменная отклика y
хранится как tbl.y
, затем задайте его как 'y'
. В противном случае программное обеспечение обрабатывает все столбцы tbl
, включая y
, как предикторы, когда обучение модель.
Переменная отклика должна быть категориальным, символом, или массивом строк, логическим или числовым вектором или массивом ячеек из символьных векторов. Если переменная отклика является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Типы данных: char |
string
X
— Данные о предиктореДанные о предикторе в виде числовой матрицы.
Каждая строка X
соответствует одному наблюдению (также известный как экземпляр или пример), и каждый столбец соответствует одной переменной (также известный как функцию). Переменные, составляющие столбцы X
должен совпасть с переменными, которые обучили Mdl
.
Длина Y
и количество строк X
должно быть равным.
Типы данных: double |
single
Y
— Метки классаКласс помечает в виде категориального, символа, или массива строк, логического или числового вектора или массива ячеек из символьных векторов. Y
должен совпасть с типом данных Mdl.ClassNames
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Длина Y
и количество строк tbl
или X
должно быть равным.
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Weights'
— Веса наблюденияones(size(X,1),1)
(значение по умолчанию) | числовой вектор | имя переменной в tbl
Веса наблюдения в виде разделенной запятой пары, состоящей из 'Weights'
и числовой вектор или имя переменной в tbl
. Программное обеспечение взвешивает наблюдения в каждой строке X
или tbl
с соответствующим весом в Weights
.
Если вы задаете Weights
как вектор, затем размер Weights
должно быть равно количеству строк X
или tbl
.
Если вы задаете Weights
как имя переменной в tbl
, необходимо сделать так как вектор символов или строковый скаляр. Например, если веса хранятся как tbl.w
, затем задайте Weights
как 'w'
. В противном случае программное обеспечение обрабатывает все столбцы tbl
, включая tbl.w
, как предикторы.
Если вы не задаете свою собственную функцию потерь, то программное обеспечение нормирует Weights
составить в целом 1
.
Типы данных: double |
char
| string
e
— Ребро классификацииРебро классификации, возвращенное как скаляр. Если вы предоставляете Weights
, затем e
взвешенное ребро классификации.
Загрузите ирисовый набор данных Фишера.
load fisheriris X = meas; % Predictors Y = species; % Response rng(1); % For reproducibility
Обучите наивный классификатор Байеса. Задайте 30%-ю выборку затяжки для тестирования. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно, нормально распределен, учитывая свою метку.
CVMdl = fitcnb(X,Y,'Holdout',0.30,... 'ClassNames',{'setosa','versicolor','virginica'}); CMdl = CVMdl.Trained{1}; % Extract trained, compact classifier testInds = test(CVMdl.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds);
CVMdl
ClassificationPartitionedModel
классификатор. Это содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationNaiveBayes
классификатор, что программное обеспечение обучило использование набора обучающих данных.
Оцените тестовое демонстрационное ребро.
e = edge(CMdl,XTest,YTest)
e = 0.8244
Предполагаемым тестовым демонстрационным средним значением поля является приблизительно 0.82
. Это указывает, что в среднем тестовое демонстрационное различие между предполагаемой апостериорной вероятностью для предсказанного класса и апостериорной вероятностью для класса со следующей самой низкой апостериорной вероятностью - приблизительно 0,82. Это указывает, что классификатор помечает высоким доверием.
Загрузите ирисовый набор данных Фишера.
load fisheriris X = meas; % Predictors Y = species; % Response rng(1);
Предположим, что ирисовые измерения setosa являются более низким качеством, потому что они были измерены с более старой технологией. Один способ включить это состоит в том, чтобы взвесить ирисовые измерения setosa меньше, чем другие наблюдения.
Задайте вектор веса, который взвешивает лучшие качественные наблюдения дважды другие наблюдения.
n = size(X,1);
idx = strcmp(Y,'setosa');
weights = ones(size(X,1),1);
weights(idx) = 0.5;
Обучите наивный классификатор Байеса. Задайте схему взвешивания и 30%-ю выборку затяжки для тестирования. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно, нормально распределен, учитывая свою метку.
CVMdl = fitcnb(X,Y,'Weights',weights,'Holdout',0.30,... 'ClassNames',{'setosa','versicolor','virginica'}); CMdl = CVMdl.Trained{1}; % Extract trained, compact classifier testInds = test(CVMdl.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds); wTest = weights(testInds);
CVMdl
ClassificationPartitionedModel
классификатор. Это содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationNaiveBayes
классификатор, что программное обеспечение обучило использование набора обучающих данных.
Оцените, что тестовая выборка взвесила ребро с помощью схемы взвешивания.
e = edge(CMdl,XTest,YTest,'Weights',wTest)
e = 0.7893
Тестовое демонстрационное поле взвешенного среднего - приблизительно 0,79. Это указывает, что в среднем тестовое демонстрационное различие между предполагаемой апостериорной вероятностью для предсказанного класса и апостериорной вероятностью для класса со следующей самой низкой апостериорной вероятностью - приблизительно 0,79. Это указывает, что классификатор помечает высоким доверием.
Ребро классификатора измеряет среднее значение полей классификатора. Один способ выполнить выбор признаков состоит в том, чтобы сравнить тестовые демонстрационные ребра от многоуровневых моделей. Базирующийся только на этом критерии, классификатор с самым высоким ребром является лучшим классификатором.
Загрузите ирисовый набор данных Фишера.
load fisheriris X = meas; % Predictors Y = species; % Response rng(1);
Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 30%-ю выборку затяжки для тестирования.
Partition = cvpartition(Y,'Holdout',0.30); testInds = test(Partition); % Indices for the test set XTest = X(testInds,:); YTest = Y(testInds,:);
Partition
задает раздел набора данных.
Задайте эти два набора данных:
fullX
содержит все предикторы.
partX
содержит последние два предиктора.
fullX = X; partX = X(:,3:4);
Обучите наивные классификаторы Байеса каждому набору предиктора. Задайте определение раздела.
FCVMdl = fitcnb(fullX,Y,'CVPartition',Partition); PCVMdl = fitcnb(partX,Y,'CVPartition',Partition); FCMdl = FCVMdl.Trained{1}; PCMdl = PCVMdl.Trained{1};
FCVMdl
и PCVMdl
ClassificationPartitionedModel
классификаторы. Они содержат свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationNaiveBayes
классификатор, что программное обеспечение обучило использование набора обучающих данных.
Оцените тестовое демонстрационное ребро для каждого классификатора.
fullEdge = edge(FCMdl,XTest,YTest)
fullEdge = 0.8244
partEdge = edge(PCMdl,XTest(:,3:4),YTest)
partEdge = 0.8420
Демонстрационные тестом ребра классификаторов являются почти тем же самым. Однако модель, обученная с помощью двух предикторов (PCMdl
) является менее комплексным.
classification edge является взвешенным средним полей классификации.
Если вы предоставляете веса, то программное обеспечение нормирует их, чтобы суммировать к априорной вероятности их соответствующего класса. Программное обеспечение использует нормированные веса, чтобы вычислить взвешенное среднее.
Один способ выбрать среди нескольких классификаторов, например, выполнить выбор признаков, состоит в том, чтобы выбрать классификатор, который дает к самому высокому ребру.
classification margins, для каждого наблюдения, различия между счетом к истинному классу и максимальным счетом к ложным классам. При условии, что они находятся по той же шкале, поля служат мерой по доверию классификации, т.е. среди нескольких классификаторов, те, которые уступают, большие поля лучше.
posterior probability является вероятностью, что наблюдение принадлежит конкретного класса, учитывая данные.
Для наивного Бейеса апостериорная вероятность, что классификацией является k для заданного наблюдения (x 1..., xP)
где:
условная объединенная плотность предикторов, учитывая, они находятся в классе k. Mdl.DistributionNames
хранит имена распределения предикторов.
π (Y = k) является распределением априорной вероятности класса. Mdl.Prior
хранит предшествующее распределение.
объединенная плотность предикторов. Классы дискретны, таким образом,
prior probability класса является относительной частотой, которой верят, с которой наблюдения от того класса происходят в населении.
Наивный Байесов score является апостериорной вероятностью класса, учитывая наблюдение.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
ClassificationNaiveBayes
| CompactClassificationNaiveBayes
| fitcnb
| loss
| margin
| predict
| resubEdge
| resubLoss
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.