Классификационные ребра для Гауссовой модели классификации ядер
возвращает ребро классификации для обученного классификатора ядра 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
.
X
- Данные предиктораДанные предиктора, заданные как n -by p числовая матрица, где n - количество наблюдений, а p - количество предикторов, используемых для обучения Mdl
.
Длина Y
и количество наблюдений в X
должно быть равным.
Типы данных: single
| double
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 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.