Найдите ребро классификации для классификатора машины опорных векторов (SVM)
возвращает ребро классификации (e
= edge(SVMModel
,TBL
,ResponseVarName
)e
) для классификатора машины опорных векторов (SVM) SVMModel
использование данных предиктора в таблице TBL
и метки классов в TBL.ResponseVarName
.
Классификационное ребро (e
) - скалярное значение, которое представляет средневзвешенное значение классификационных полей.
возвращает ребро классификации (e
= edge(SVMModel
,TBL
,Y
)e
) для классификатора SVM SVMModel
использование данных предиктора в таблице TBL
и метки классов в Y
.
Загрузите ionosphere
набор данных.
load ionosphere rng(1); % For reproducibility
Обучите классификатор SVM. Укажите 15% -ную выборку для проверки, стандартизируйте данные и укажите, что 'g'
- положительный класс.
CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'b','g'},... 'Standardize',true); CompactSVMModel = CVSVMModel.Trained{1}; % Extract trained, compact classifier testInds = test(CVSVMModel.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds,:);
CVSVMModel
является ClassificationPartitionedModel
классификатор. Оно содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationSVM
классификатор, который программное обеспечение обучило с использованием набора обучающих данных.
Оцените ребро тестовой выборки.
e = edge(CompactSVMModel,XTest,YTest)
e = 5.0765
Запас среднее значение тестовой выборки составляет приблизительно 5.
Предположим, что наблюдения в наборе данных измеряются последовательно, и что последние 150 наблюдений имеют лучшее качество из-за обновления технологии. Включите это продвижение путем взвешивания лучших качественных наблюдений больше, чем других наблюдений.
Загрузите ionosphere
набор данных.
load ionosphere rng(1); % For reproducibility
Задайте вектор веса, который взвешивает наблюдения лучшего качества в два раза больше, чем другие наблюдения.
n = size(X,1); weights = [ones(n-150,1);2*ones(150,1)];
Обучите классификатор SVM. Укажите схему взвешивания и 15% -ную выборку удержания для проверки. Также стандартизируйте данные и задайте, что 'g'
- положительный класс.
CVSVMModel = fitcsvm(X,Y,'Weights',weights,'Holdout',0.15,... 'ClassNames',{'b','g'},'Standardize',true); CompactSVMModel = CVSVMModel.Trained{1}; testInds = test(CVSVMModel.Partition); % Extract the test indices XTest = X(testInds,:); YTest = Y(testInds,:); wTest = weights(testInds,:);
CVSVMModel
является обученным ClassificationPartitionedModel
классификатор. Оно содержит свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationSVM
классификатор, который программное обеспечение обучило с использованием набора обучающих данных.
Оцените взвешенное ребро тестовой выборки с помощью схемы взвешивания.
e = edge(CompactSVMModel,XTest,YTest,'Weights',wTest)
e = 4.8341
Средневзвешенный запас тестовой выборки составляет приблизительно 5.
Выполните выбор признаков путем сравнения ребер тестовой выборки из нескольких моделей. Основываясь исключительно на этом сравнении, классификатор с самым высоким ребром является лучшим классификатором.
Загрузите ionosphere
набор данных.
load ionosphere rng(1); % For reproducibility
Разделите набор данных на наборы для обучения и тестирования. Укажите 15% -ная выборка удержания для проверки.
Partition = cvpartition(Y,'Holdout',0.15); testInds = test(Partition); % Indices for the test set XTest = X(testInds,:); YTest = Y(testInds,:);
Partition
определяет раздел набора данных.
Задайте эти два набора данных:
fullX
содержит все предикторы (кроме удаленного столбца 0s).
partX
содержит последние 20 предикторов.
fullX = X; partX = X(:,end-20:end);
Обучите классификаторы SVM для каждого набора предикторов. Задайте определение раздела.
FullCVSVMModel = fitcsvm(fullX,Y,'CVPartition',Partition); PartCVSVMModel = fitcsvm(partX,Y,'CVPartition',Partition); FCSVMModel = FullCVSVMModel.Trained{1}; PCSVMModel = PartCVSVMModel.Trained{1};
FullCVSVMModel
и PartCVSVMModel
являются ClassificationPartitionedModel
классификаторы. Они содержат свойство Trained
, который является массивом ячеек 1 на 1, содержащим CompactClassificationSVM
классификатор, который программное обеспечение обучило с использованием набора обучающих данных.
Оцените ребро тестовой выборки для каждого классификатора.
fullEdge = edge(FCSVMModel,XTest,YTest)
fullEdge = 2.8320
partEdge = edge(PCSVMModel,XTest(:,end-20:end),YTest)
partEdge = 1.5539
Ребро для классификатора, обученного на полном наборе данных, больше, что позволяет предположить, что классификатор, обученный со всеми предикторами, лучше.
SVMModel
- модель классификации SVMClassificationSVM
объект модели | CompactClassificationSVM
объект моделиSVM классификационная модель, заданная как ClassificationSVM
объект модели
объект модели, возвращенный fitcsvm
или compact
, соответственно.
TBL
- Выборочные данныеВыборочные данные, заданный как таблица. Каждая строка TBL
соответствует одному наблюдению, и каждый столбец соответствует одной переменной предиктора. Опционально TBL
может содержать дополнительные столбцы для переменной отклика и весов наблюдений. TBL
должны содержать все предикторы, используемые для обучения SVMModel
. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не разрешены.
Если TBL
содержит переменную отклика, используемую для обучения SVMModel
, тогда вам не нужно указывать ResponseVarName
или Y
.
Если вы тренировались SVMModel
используя выборочные данные, содержащуюся в таблице, затем входные данные для edge
также должно быть в таблице.
Если вы задаете 'Standardize',true
в fitcsvm
при обучении SVMModel
затем программное обеспечение стандартизирует столбцы данных предиктора с помощью соответствующего средства в SVMModel.Mu
и стандартные отклонения в SVMModel.Sigma
.
Типы данных: table
X
- Данные предиктораДанные предиктора, заданные как числовая матрица.
Каждая строка X
соответствует одному наблюдению (также известному как образец или пример), и каждый столбец соответствует одной переменной (также известной как функция). Переменные в столбцах X
должно быть таким же, как переменные, которые обучили SVMModel
классификатор.
Длина Y
и количество строк в X
должно быть равным.
Если вы задаете 'Standardize',true
в fitcsvm
для обучения SVMModel
, затем программное обеспечение стандартизирует столбцы X
использование соответствующих средств в SVMModel.Mu
и стандартные отклонения в SVMModel.Sigma
.
Типы данных: double
| single
ResponseVarName
- Имя переменной откликаTBL
Имя переменной отклика, заданное как имя переменной в TBL
. Если TBL
содержит переменную отклика, используемую для обучения SVMModel
, тогда вам не нужно указывать ResponseVarName
.
Если вы задаете ResponseVarName
, тогда вы должны сделать это как вектор символов или строковый скаляр. Для примера, если переменная отклика сохранена как TBL.Response
, затем задайте ResponseVarName
как 'Response'
. В противном случае программное обеспечение обрабатывает все столбцы TBL
, включая TBL.Response
, как предикторы.
Переменная отклика должна быть категориальными символьными или строковыми массивами, логическим или числовым вектором или массивом ячеек из векторов символов. Если переменная отклика является символьным массивом, то каждый элемент должен соответствовать одной строке массива.
Типы данных: char
| string
Y
- Метки классовМетки класса, заданные как категориальные символьные или строковые массивы, логический или числовой вектор или массив ячеек из векторов символов. Y
должно совпадать с типом данных SVMModel.ClassNames
. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)
Длина Y
должно равняться количеству строк в TBL
или количество строк в X
.
weights
- Веса наблюденийones(size(X,1),1)
(по умолчанию) | числовой вектор | имя переменной в TBL
Веса наблюдений, заданные как числовой вектор или имя переменной в TBL
.
Если вы задаете weights
в виде числового вектора, затем размера weights
должно быть равно количеству строк в X
или TBL
.
Если вы задаете weights
как имя переменной в TBL
, вы должны сделать это как вектор символов или строковый скаляр. Для примера, если веса сохранены как TBL.W
, затем задайте weights
как 'W'
. В противном случае программное обеспечение обрабатывает все столбцы TBL
, включая TBL.W
, как предикторы.
Если вы поставляете веса, edge
вычисляет взвешенное ребро классификации. Программа взвешивает наблюдения в каждой строке X
или TBL
с соответствующим весом в weights
.
Пример: 'Weights','W'
Типы данных: single
| double
| char
| string
Этот edge является средневзвешенным значением classification margins.
Веса являются вероятностями предыдущего класса. Если вы поставляете веса, то программное обеспечение нормализует их, чтобы суммировать с предыдущими вероятностями в соответствующих классах. Программа использует ренормализованные веса, чтобы вычислить взвешенное среднее.
Один из способов выбрать один из нескольких классификаторов, например, для выбора признаков, - выбрать классификатор, который дает наивысшее ребро.
Для каждого наблюдения classification margin двоичной классификации является различие между классификационной оценкой для истинного класса и классификационной оценкой для ложного класса.
Программное обеспечение определяет классификационный запас для двоичной классификации как
x является наблюдением. Если истинная метка x является положительным классом, то y равен 1, и -1 в противном случае. f (x) является классификационной оценкой положительного класса для x наблюдений. Классификационное поле обычно определяется как m = y f (x).
Если поля находятся в одной шкале, то они служат классификационной доверительной мерой. Среди нескольких классификаторов лучше те, которые дают большую маржу.
SVM- classification score для классификации x наблюдений является подписанным расстоянием от x до контура принятия решения в диапазоне от - ∞ до +∞. Положительный счет для класса указывает, что x, по прогнозам, находится в этом классе. Отрицательный счет указывает на обратное.
Положительный класс классификационной оценки - это обученная функция классификации SVM. является также численным предсказанным ответом для x или счетом для предсказания x в положительный класс.
где являются оцененными параметрами SVM, является скалярным произведением в пространстве предикторов между x и поддерживающими векторами, и сумма включает наблюдения обучающего набора. Отрицательная классификационная оценка для x или балл для предсказания x в отрицательный класс равен - f (x).
Если G (xj, x) = xj − x (линейное ядро), то функция оценки уменьшается до
s - шкала ядра, а β - вектор подгоняемых линейных коэффициентов.
Для получения дополнительной информации смотрите Общие сведения о машинах опорных векторов.
Для двоичной классификации программное обеспечение определяет поле для j наблюдений, mj как
где yj ∊ {-1,1} и f (xj) является предсказанным счетом j наблюдений для положительного класса. Однако mj = yj f (xj) обычно используется для определения запаса.
[1] Christianini, N., and J. C. Shawe-Taylor. Введение в машины опорных векторов и других основанных на ядре методов обучения. Кембридж, Великобритания: Cambridge University Press, 2000.
Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»
ClassificationSVM
| CompactClassificationSVM
| fitcsvm
| kfoldEdge
| loss
| margin
| predict
| resubEdge
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.