Найти край классификации для классификатора вспомогательных векторных машин (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 объект модели или 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
Край - это средневзвешенное значение полей классификации.
Веса являются предшествующими вероятностями классов. При вводе весов программа нормализует их для суммирования с предыдущими вероятностями в соответствующих классах. Программа использует перенормированные веса для вычисления средневзвешенного значения.
Один из способов выбора из нескольких классификаторов, например, выбор элемента, - выбор классификатора, который дает наивысший край.
Поле классификации для двоичной классификации является для каждого наблюдения разницей между оценкой классификации для истинного класса и оценкой классификации для ложного класса.
Программа определяет поле классификации для двоичной классификации как
x).
x - это наблюдение. Если истинная метка x является положительным классом, то y равно 1, а в противном случае -1. f (x) - показатель классификации положительного класса для наблюдения x. Обычно запас классификации определяется как m = yf (x).
Если поля находятся в одной шкале, то они служат мерой достоверности классификации. Среди нескольких классификаторов лучше те, которые дают большую маржу.
Показатель классификации SVM для классификации наблюдения x представляет собой расстояние со знаком от x до границы принятия решения в диапазоне от - ∞ до +∞. Положительный балл для класса указывает, что x прогнозируется в этом классе. Отрицательный балл указывает на обратное.
Положительным показателем классификации классов ) является обученная функция классификации SVM. x) также является численным прогнозируемым ответом для x или баллом для прогнозирования x в положительный класс.
) + b,
где b) - оцененные параметры SVM, , x) - скалярное произведение в предикторном пространстве между x и векторами поддержки, и сумма включает в себя наблюдения обучающего набора. Отрицательный балл классификации класса для x или балл для прогнозирования x в отрицательный класс равен -f (x).
Если G (xj, x) = xj′x (линейное ядро), то функция оценки уменьшается до
β + b.
s - шкала ядра, а β - вектор аппроксимированных линейных коэффициентов.
Дополнительные сведения см. в разделе Общие сведения о векторных машинах поддержки.
Для двоичной классификации программное обеспечение определяет поле для наблюдения j, mj, как
xj),
где yj ∊ {-1,1} и f (xj) - прогнозируемая оценка наблюдения j для положительного класса. Однако для определения запаса обычно используется mj = yjf (xj).
[1] Кристианини, Н. и Дж. К. Шаве-Тейлор. Введение в поддержку векторных машин и других методов обучения на основе ядра. Кембридж, Великобритания: Cambridge University Press, 2000.
Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
ClassificationSVM | CompactClassificationSVM | fitcsvm | kfoldEdge | loss | margin | predict | resubEdge
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.