Найдите ребро классификации для классификатора машины вектора поддержки (SVM)
e = edge(SVMModel,TBL,ResponseVarName)
e = edge(SVMModel,TBL,Y)
e = edge(SVMModel,X,Y)
e = edge(___,'Weights',weights)
возвращает ребро классификации (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.8319
partEdge = edge(PCSVMModel,XTest(:,end-20:end),YTest)
partEdge = 1.5540
Ребро для классификатора, обученного на наборе полных данных, больше, предполагая, что классификатор, обученный со всеми предикторами, лучше.
SVMModel
— Модель классификации SVMClassificationSVM
| объект модели CompactClassificationSVM
Модель классификации SVM, заданная как объект модели ClassificationSVM
или объект модели CompactClassificationSVM
, возвращенный 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).
Если поля находятся в той же шкале, то они служат мерой по уверенности классификации. Среди нескольких классификаторов те, которые приводят к большим полям, лучше.
classification score SVM для классификации наблюдения 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. и Дж. К. Шейв-Тейлор. Введение, чтобы поддержать векторные машины и другое основанное на ядре изучение методов. Кембридж, Великобритания: Издательство Кембриджского университета, 2000.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
ClassificationSVM
| CompactClassificationSVM
| fitcsvm
| kfoldedge
| loss
| margin
| predict
| resubEdge
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.