Ошибка классификации для наивного классификатора Байеса
возвращает минимальную потерю классификации (см. Потерю Классификации), скалярное представление, как хорошо обученный наивный классификатор Байеса L
= loss(Mdl
,tbl
,ResponseVarName
)Mdl
классифицирует данные о предикторе на таблицу tbl
) по сравнению с истинным классом помечает в tbl.ResponseVarName
.
loss
нормирует вероятности класса в tbl.ResponseVarName
к предшествующим вероятностям класса fitcnb
используемый в обучении, сохраненном в Prior
свойство Mdl
.
возвращает минимальную потерю классификации (L
= loss(Mdl
,tbl
,Y
)L
), скалярное представление, как хорошо обученный наивный классификатор Байеса Mdl
классифицирует данные о предикторе на таблицу tbl
) по сравнению с истинным классом помечает в Y
.
loss
нормирует вероятности класса в Y
к предшествующим вероятностям класса fitcnb
используемый в обучении, сохраненном в Prior
свойство Mdl
.
возвращает минимальную потерю классификации (L
= loss(Mdl
,X
,Y
)L
), скалярное представление, как хорошо обученный наивный классификатор Байеса Mdl
классифицирует данные о предикторе (X
) по сравнению с истинными метками класса (Y
).
loss
нормирует вероятности класса в Y
к предшествующим вероятностям класса fitcnb
используемый в обучении, сохраненном в Prior
свойство Mdl
.
возвращает потерю классификации с дополнительными опциями, заданными одним или несколькими L
= loss(___,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
.
'LossFun'
— Функция потерь'classiferror'
(значение по умолчанию) | 'binodeviance'
| 'exponential'
| 'hinge'
| 'logit'
| 'mincost'
| 'quadratic'
| указатель на функциюФункция потерь в виде разделенной запятой пары, состоящей из 'LossFun'
и встроенное имя функции потерь или указатель на функцию.
В следующей таблице перечислены доступные функции потерь. Задайте тот с помощью его соответствующего вектора символов или строкового скаляра.
Значение | Описание |
---|---|
'binodeviance' | Биномиальное отклонение |
'classiferror' | Ошибка классификации |
'exponential' | Экспоненциал |
'hinge' | Стержень |
'logit' | Логистический |
'mincost' | Минимальный ожидал стоимость misclassification (для классификационных оценок, которые являются апостериорными вероятностями), |
'quadratic' | Квадратичный |
'mincost'
подходит для классификационных оценок, которые являются апостериорными вероятностями. Наивные модели Bayes возвращают апостериорные вероятности как классификационные оценки по умолчанию (см. predict
).
Задайте свою собственную функцию с помощью обозначения указателя на функцию.
Предположим тот n
будьте количеством наблюдений в X
и K
будьте количеством отличных классов (numel(Mdl.ClassNames)
, Mdl
входная модель). Ваша функция должна иметь эту подпись
lossvalue = lossfun
(C,S,W,Cost)
Выходной аргумент lossvalue
скаляр.
Вы выбираете имя функции (lossfun
).
C
n
- K
логическая матрица со строками, указывающими, которые классифицируют соответствующее наблюдение, принадлежит. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNames
.
Создайте C
установкой C(p,q) = 1
если наблюдение p
находится в классе q
, для каждой строки. Установите все другие элементы строки p
к 0
.
S
n
- K
числовая матрица классификационных оценок. Порядок следования столбцов соответствует порядку класса в Mdl.ClassNames
S
матрица классификационных оценок, похожих на выход predict
.
W
n
- 1 числовой вектор весов наблюдения. Если вы передаете W
, программное обеспечение нормирует их, чтобы суммировать к 1
.
Cost
K-by-K
числовая матрица затрат misclassification. Например, Cost = ones(K) - eye(K)
задает стоимость 0
для правильной классификации и 1
для misclassification.
Задайте свое использование функции 'LossFun', @
.lossfun
Для получения дополнительной информации о функциях потерь смотрите Потерю Классификации.
Типы данных: char |
string
| function_handle
'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
L
— Потеря классификацииПотеря классификации, возвращенная как скаляр. L
обобщение или качественная мера по перезамене. Его интерпретация зависит от функции потерь и схемы взвешивания, но в целом лучшие классификаторы дают к меньшим значениям потерь.
Загрузите ирисовый набор данных Фишера.
load fisheriris X = meas; % Predictors Y = species; % Response rng(1); % For reproducibility
Обучите наивный классификатор Байеса. Задайте 15%-ю выборку затяжки для тестирования. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно нормально распределен, учитывая свою метку.
CVMdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'},... 'Holdout',0.15); CMdl = CVMdl.Trained{1}; % Extract the trained, compact classifier testInds = test(CVMdl.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds);
CVMdl
ClassificationPartitionedModel
классификатор. Это содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationNaiveBayes
классификатор, что программное обеспечение обучило использование набора обучающих данных.
Определите, как хорошо алгоритм делает вывод путем оценки тестовой выборки минимальная потеря стоимости.
L = loss(CMdl,XTest,YTest)
L = 0.0476
Тестовая выборка средняя стоимость классификации является приблизительно 0,05.
Вы можете улучшить ошибку классификации путем определения лучших распределений предиктора, когда вы обучаете классификатор.
Загрузите ирисовый набор данных Фишера.
load fisheriris X = meas; % Predictors Y = species; % Response rng(1); % For reproducibility
Обучите наивный классификатор Байеса. Задайте 15%-ю выборку затяжки для тестирования. Это - хорошая практика, чтобы задать порядок класса. Примите, что каждый предиктор условно нормально распределен, учитывая свою метку.
CVMdl = fitcnb(X,Y,'ClassNames',{'setosa','versicolor','virginica'},... 'Holdout',0.15); CMdl = CVMdl.Trained{1}; % Extract the trained, compact classifier testInds = test(CVMdl.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds);
CVMdl
ClassificationPartitionedModel
классификатор. Это содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationNaiveBayes
классификатор, что программное обеспечение обучило использование набора обучающих данных.
Определите, как хорошо алгоритм делает вывод путем оценки тестовой ошибки классификации выборок.
L = loss(CMdl,XTest,YTest,'LossFun','classiferror')
L = 0.0476
Классификатор неправильно классифицировал приблизительно 5% тестовых демонстрационных наблюдений.
Функции Classification loss измеряют прогнозирующую погрешность моделей классификации. Когда вы сравниваете тот же тип потери среди многих моделей, более низкая потеря указывает на лучшую прогнозную модель.
Рассмотрите следующий сценарий.
L является средневзвешенной потерей классификации.
n является объемом выборки.
Для бинарной классификации:
yj является наблюдаемой меткой класса. Программные коды это как –1 или 1, указывая на отрицательный или положительный класс, соответственно.
f (Xj) является необработанной классификационной оценкой для наблюдения (строка) j данных о предикторе X.
mj = yj f (Xj) является классификационной оценкой для классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не способствуют очень средней потере. Отрицательные величины mj указывают на неправильную классификацию и значительно способствуют средней потере.
Для алгоритмов, которые поддерживают классификацию мультиклассов (то есть, K ≥ 3):
yj* является вектором K – 1 нуль, с 1 в положении, соответствующем истинному, наблюдаемому классу yj. Например, если истинный класс второго наблюдения является третьим классом и K = 4, то y *2 = [0 0 1 0] ′. Порядок классов соответствует порядку в ClassNames
свойство входной модели.
f (Xj) является длиной вектор K музыки класса к наблюдению j данных о предикторе X. Порядок баллов соответствует порядку классов в ClassNames
свойство входной модели.
mj = yj* ′ f (Xj). Поэтому mj является скалярной классификационной оценкой, которую модель предсказывает для истинного, наблюдаемого класса.
Весом для наблюдения j является wj. Программное обеспечение нормирует веса наблюдения так, чтобы они суммировали к соответствующей предшествующей вероятности класса. Программное обеспечение также нормирует априорные вероятности, таким образом, они суммируют к 1. Поэтому
Учитывая этот сценарий, следующая таблица описывает поддерживаемые функции потерь, которые можно задать при помощи 'LossFun'
аргумент пары "имя-значение".
Функция потерь | Значение LossFun | Уравнение |
---|---|---|
Биномиальное отклонение | 'binodeviance' | |
Экспоненциальная потеря | 'exponential' | |
Ошибка классификации | 'classiferror' | Это - взвешенная часть неправильно классифицированных наблюдений где метка класса, соответствующая классу с максимальной апостериорной вероятностью. I {x} является функцией индикатора. |
Потеря стержня | 'hinge' | |
Потеря логита | 'logit' | |
Минимальная стоимость | 'mincost' | Минимальная стоимость. Программное обеспечение вычисляет взвешенную минимальную стоимость с помощью этой процедуры в наблюдениях j = 1..., n.
Взвешенная, средняя, минимальная потеря стоимости |
Квадратичная потеря | 'quadratic' |
Этот рисунок сравнивает функции потерь (кроме 'mincost'
) для одного наблюдения по m. Некоторые функции нормированы, чтобы пройти [0,1].
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.
Эта функция полностью поддерживает "высокие" массивы. Можно использовать модели, обученные или на или на высоких данных в оперативной памяти с этой функцией.
Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
ClassificationNaiveBayes
| CompactClassificationNaiveBayes
| fitcnb
| predict
| resubLoss
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.