Ребро классификации для Гауссовой модели классификации ядер
возвращает ребро классификации для обученного классификатора ядра e
= edge(Mdl
,Tbl
,ResponseVarName
)Mdl
использование данных о предикторе в таблице Tbl
и класс помечает в Tbl.ResponseVarName
.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 15%-ю выборку затяжки для набора тестов.
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
Обучите бинарную модель классификации ядер использование набора обучающих данных.
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds));
Оцените ребро набора обучающих данных и ребро набора тестов.
eTrain = edge(Mdl,X(trainingInds,:),Y(trainingInds))
eTrain = 2.1703
eTest = edge(Mdl,X(testInds,:),Y(testInds))
eTest = 1.5643
Выполните выбор признаков путем сравнения ребер набора тестов от многоуровневых моделей. Базирующийся только на этом критерии, классификатор с самым высоким ребром является лучшим классификатором.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Разделите набор данных в наборы обучающих данных и наборы тестов. Задайте 15%-ю выборку затяжки для набора тестов.
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set XTrain = X(trainingInds,:); YTrain = Y(trainingInds); testInds = test(Partition); % Indices for the test set XTest = X(testInds,:); YTest = Y(testInds);
Случайным образом выберите половину переменных предикторов.
p = size(X,2); % Number of predictors
idxPart = randsample(p,ceil(0.5*p));
Обучите две бинарных модели классификации ядер: тот, который использует все предикторы и тот, который использует половину предикторов.
Mdl = fitckernel(XTrain,YTrain); PMdl = fitckernel(XTrain(:,idxPart),YTrain);
Mdl
и PMdl
ClassificationKernel
модели.
Оцените ребро набора тестов для каждого классификатора.
fullEdge = edge(Mdl,XTest,YTest)
fullEdge = 1.6335
partEdge = edge(PMdl,XTest(:,idxPart),YTest)
partEdge = 2.0205
На основе ребер набора тестов классификатор, который использует половину предикторов, является лучшей моделью.
Mdl
— Бинарная модель классификации ядерClassificationKernel
объект моделиБинарная модель классификации ядер в виде ClassificationKernel
объект модели. Можно создать ClassificationKernel
использование объекта модели fitckernel
.
Y
— Метки классаКласс помечает в виде категориального, символа, или массива строк, логического или числового вектора или массива ячеек из символьных векторов.
Тип данных Y
должен совпасть с типом данных Mdl.ClassNames
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
Отличные классы в Y
должно быть подмножество Mdl.ClassNames
.
Если Y
символьный массив, затем каждый элемент должен соответствовать одной строке массива.
Длина Y
должно быть равно количеству наблюдений в X
или Tbl
.
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
Tbl
— Выборочные данныеВыборочные данные раньше обучали модель в виде таблицы. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. Опционально, Tbl
может содержать дополнительные столбцы для весов наблюдения и переменной отклика. Tbl
должен содержать все предикторы, используемые, чтобы обучить Mdl
. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.
Если Tbl
содержит переменную отклика, используемую, чтобы обучить Mdl
, затем вы не должны задавать ResponseVarName
или Y
.
Если вы обучаете Mdl
использование выборочных данных, содержавшихся в таблице, затем входные данные для edge
должен также быть в таблице.
ResponseVarName
— Имя переменной откликаTbl
Имя переменной отклика в виде имени переменной в Tbl
. Если Tbl
содержит переменную отклика, используемую, чтобы обучить Mdl
, затем вы не должны задавать ResponseVarName
.
Если вы задаете ResponseVarName
, затем необходимо задать его как вектор символов или строковый скаляр. Например, если переменная отклика хранится как Tbl.Y
, затем задайте ResponseVarName
как 'Y'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая Tbl.Y
, как предикторы.
Переменная отклика должна быть категориальным, символом, или массивом строк, логическим или числовым вектором или массивом ячеек из символьных векторов. Если переменная отклика является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Типы данных: char |
string
weights
— Веса наблюденияones(size(X,1),1)
(значение по умолчанию) | числовой вектор | имя переменной в Tbl
Веса наблюдения в виде числового вектора или имени переменной в Tbl
.
Если weights
числовой вектор, затем размер weights
должно быть равно количеству строк в X
или Tbl
.
Если weights
имя переменной в Tbl
, необходимо задать weights
как вектор символов или строковый скаляр. Например, если веса хранятся как Tbl.W
, затем задайте weights
как 'W'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая Tbl.W
, как предикторы.
Если вы предоставляете веса, edge
вычисляет взвешенное ребро классификации. Программное обеспечение взвешивает наблюдения в каждой строке X
или Tbl
с соответствующими весами в weights
.
edge
нормирует weights
суммировать до значения априорной вероятности в соответствующем классе.
Типы данных: single
| double
| char
| string
e
— Ребро классификацииРебро классификации, возвращенное в виде числа.
classification edge является взвешенным средним classification margins.
Один способ выбрать среди нескольких классификаторов, например, выполнить выбор признаков, состоит в том, чтобы выбрать классификатор, который дает к самому большому ребру.
classification margin для бинарной классификации, для каждого наблюдения, различия между классификационной оценкой для истинного класса и классификационной оценкой для ложного класса.
Программное обеспечение задает поле классификации для бинарной классификации как
x является наблюдением. Если истинная метка x является положительным классом, то y равняется 1, и –1 в противном случае. f (x) является классификационной оценкой положительного класса для наблюдения x. Поле классификации обычно задается как m = y f (x).
Если поля находятся по той же шкале, то они служат мерой по доверию классификации. Среди нескольких классификаторов те, которые дают к большим полям, лучше.
Для моделей классификации ядер, необработанного classification score для классификации наблюдения x, вектор-строка, в положительный класс задан
преобразование наблюдения для расширения функции.
β является предполагаемым вектор-столбцом коэффициентов.
b является предполагаемым скалярным смещением.
Необработанная классификационная оценка для классификации x в отрицательный класс является −f (x). Программное обеспечение классифицирует наблюдения в класс, который дает к положительному счету.
Если модель классификации ядер состоит из учеников логистической регрессии, то программное обеспечение применяет 'logit'
выиграйте преобразование к необработанным классификационным оценкам (см. ScoreTransform
).
Указания и ограничения по применению:
edge
не поддерживает высокий table
данные.
Для получения дополнительной информации см. Раздел "Высокие массивы".
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.