Компактная машина опорных векторов (SVM) для и бинарной классификации одного класса
CompactClassificationSVM компактная версия классификатора машины опорных векторов (SVM). Компактный классификатор не включает данные, используемые для обучения классификатор SVM. Поэтому вы не можете выполнить некоторые задачи, такие как перекрестная проверка, с помощью компактного классификатора. Используйте компактный классификатор SVM для задач, таких как предсказание меток новых данных.
Создайте CompactClassificationSVM модель от полного, обученного ClassificationSVM классификатор при помощи compact.
Alpha — Обученные коэффициенты классификатораЭто свойство доступно только для чтения.
Обученные коэффициенты классификатора в виде s-by-1 числовой вектор. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector).
Alpha содержит обученные коэффициенты классификатора от двойной проблемы, то есть, предполагаемых множителей Лагранжа. Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, Alpha содержит один коэффициент, соответствующий целому набору. Таким образом, MATLAB® приписывает ненулевой коэффициент одному наблюдению от набора копий и коэффициент 0 ко всем другим дублирующимся наблюдениям в наборе.
Типы данных: single | double
Beta — Линейные коэффициенты предиктораЭто свойство доступно только для чтения.
Линейные коэффициенты предиктора в виде числового вектора. Длина Beta равно количеству предикторов, используемых, чтобы обучить модель.
MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Beta хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, затем Beta числовой вектор, содержащий пять значений.
Если KernelParameters.Function 'linear', затем классификационная оценка для наблюдения x
Mdl хранилища β, b и s в свойствах Beta, Bias, и KernelParameters.Scale, соответственно.
Чтобы оценить классификационные оценки вручную, необходимо сначала применить любые преобразования к данным о предикторе, которые были применены во время обучения. А именно, если вы задаете 'Standardize',true при использовании fitcsvm, затем необходимо стандартизировать данные о предикторе вручную при помощи среднего Mdl.Mu и стандартное отклонение Mdl.Sigma, и затем разделите результат на шкалу ядра в Mdl.KernelParameters.Scale.
Все функции SVM, такой как resubPredict и predict, примените любое необходимое преобразование перед оценкой.
Если KernelParameters.Function не 'linear', затем Beta isempty).
Типы данных: single | double
Bias — Сместите терминЭто свойство доступно только для чтения.
Сместите термин в виде скаляра.
Типы данных: single | double
KernelParameters — Параметры ядраЭто свойство доступно только для чтения.
Параметры ядра в виде массива структур. Свойство параметров ядра содержит поля, перечисленные в этой таблице.
| Поле | Описание |
|---|---|
| Функция | Функция ядра использовалась для расчета элементов матрицы Грамма. Для получения дополнительной информации смотрите |
| Шкала | Масштабный коэффициент ядра раньше масштабировал все элементы данных о предикторе, на которых обучена модель. Для получения дополнительной информации смотрите |
Отобразить значения KernelParameters, используйте запись через точку. Например, Mdl.KernelParameters.Scale отображает значение масштабного коэффициента ядра.
Программное обеспечение принимает KernelParameters как входные параметры и не изменяет их.
Типы данных: struct
SupportVectorLabels — Поддержите векторные метки классаЭто свойство доступно только для чтения.
Поддержите векторные метки класса в виде s-by-1 числовой вектор. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector).
Значение +1 в SupportVectorLabels указывает, что соответствующий вектор поддержки находится в положительном классе (ClassNames{2}). Значение –1 указывает, что соответствующий вектор поддержки находится в отрицательном классе (ClassNames{1}).
Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, SupportVectorLabels содержит одну уникальную метку вектора поддержки.
Типы данных: single | double
SupportVectors — Поддержите векторыЭто свойство доступно только для чтения.
Поддержите векторы в обученном классификаторе в виде s-by-p числовая матрица. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector), и p является количеством переменных предикторов в данных о предикторе.
SupportVectors содержит строки данных о предикторе X тот MATLAB считает векторами поддержки. Если вы задаете 'Standardize',true когда обучение использование классификатора SVM fitcsvm, затем SupportVectors содержит стандартизированные строки X.
Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, SupportVectors содержит один уникальный вектор поддержки.
Типы данных: single | double
CategoricalPredictors — Категориальные индексы предиктора[]Это свойство доступно только для чтения.
Категориальные индексы предиктора в виде вектора из положительных целых чисел. CategoricalPredictors содержит значения индекса, указывающие, что соответствующие предикторы являются категориальными. Значения индекса между 1 и p, где p количество предикторов, используемых, чтобы обучить модель. Если ни один из предикторов не является категориальным, то это свойство пусто ([]).
Типы данных: double
ClassNames — Уникальные метки классаЭто свойство доступно только для чтения.
Уникальные метки класса, используемые в обучении в виде категориального или символьного массива, логического или числового вектора или массива ячеек из символьных векторов. ClassNames имеет совпадающий тип данных, когда класс маркирует Y. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
ClassNames также определяет порядок класса.
Типы данных: single | double | logical | char | cell | categorical
Cost — Misclassification стоитсяЭто свойство доступно только для чтения.
Стоимость Misclassification в виде числовой квадратной матрицы, где Cost(i,j) стоимость классификации точки в класс j если его истинным классом является i.
Во время обучения обновлений программного обеспечения априорные вероятности путем слияния штрафов описаны в матрице стоимости.
Для изучения 2D класса, Cost всегда имеет эту форму: Cost(i,j) = 1 если i ~= j, и Cost(i,j) = 0 если i = j. Строки соответствуют истинному классу, и столбцы соответствуют предсказанному классу. Порядок строк и столбцов Cost соответствует порядку классов в ClassNames.
Для изучения одного класса, Cost = 0.
Для получения дополнительной информации см. Алгоритмы.
Типы данных: double
ExpandedPredictorNames — Расширенные имена предиктораЭто свойство доступно только для чтения.
Расширенный предиктор называет в виде массива ячеек из символьных векторов.
Если модель использует фиктивное переменное кодирование для категориальных переменных, то ExpandedPredictorNames включает имена, которые описывают расширенные переменные. В противном случае, ExpandedPredictorNames совпадает с PredictorNames.
Типы данных: cell
Mu — Средние значения предиктора[]Это свойство доступно только для чтения.
Предиктор означает в виде числового вектора. Если вы задаете 'Standardize',1 или 'Standardize',true когда вы обучаете использование классификатора SVM fitcsvm, затем длина Mu равно количеству предикторов.
MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Mu хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Однако MATLAB не стандартизирует столбцы, которые содержат категориальные переменные.
Если вы устанавливаете 'Standardize',false когда вы обучаете использование классификатора SVM fitcsvm, затем Mu пустой вектор ([]).
Типы данных: single | double
PredictorNames — Имена переменного предиктораЭто свойство доступно только для чтения.
Переменный предиктор называет в виде массива ячеек из символьных векторов. Порядок элементов PredictorNames соответствует порядку, в котором имена предиктора появляются в обучающих данных.
Типы данных: cell
Prior — Априорные вероятностиЭто свойство доступно только для чтения.
Априорные вероятности для каждого класса в виде числового вектора. Порядок элементов Prior соответствует элементам Mdl.ClassNames.
Для изучения 2D класса, если вы задаете матрицу стоимости, затем обновления программного обеспечения априорные вероятности путем слияния штрафов, описанных в матрице стоимости.
Для получения дополнительной информации см. Алгоритмы.
Типы данных: single | double
ScoreTransform — Выиграйте преобразованиеВыиграйте преобразование в виде вектора символов или указателя на функцию. ScoreTransform представляет встроенную функцию преобразования или указатель на функцию для преобразования предсказанных классификационных оценок.
Чтобы изменить преобразование счета функционируют к function, например, используйте запись через точку.
Для встроенной функции введите вектор символов.
Mdl.ScoreTransform = 'function';
Эта таблица описывает доступные встроенные функции.
| Значение | Описание |
|---|---|
'doublelogit' | 1/(1 + e–2x) |
'invlogit' | журнал (x / (1 – x)) |
'ismax' | Устанавливает счет к классу с самым большим счетом к 1 и устанавливает музыку ко всем другим классам к 0 |
'logit' | 1/(1 + e–x) |
'none' или 'identity' | x (никакое преобразование) |
'sign' | – 1 для x <0 0 для x = 0 1 для x> 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает счет к классу с самым большим счетом к 1 и устанавливает музыку ко всем другим классам к –1 |
'symmetriclogit' | 2/(1 + e–x) – 1 |
Для функции MATLAB или функции, которую вы задаете, введите ее указатель на функцию.
Mdl.ScoreTransform = @function;
function должен принять матрицу (исходные баллы) и возвратить матрицу, одного размера (преобразованные баллы).
Типы данных: char | function_handle
Sigma — Стандартные отклонения предиктора[] (значение по умолчанию) | числовой векторЭто свойство доступно только для чтения.
Стандартные отклонения предиктора в виде числового вектора.
Если вы задаете 'Standardize',true когда вы обучаете использование классификатора SVM fitcsvm, затем длина Sigma равно количеству переменных предикторов.
MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Sigma хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Однако MATLAB не стандартизирует столбцы, которые содержат категориальные переменные.
Если вы устанавливаете 'Standardize',false когда вы обучаете использование классификатора SVM fitcsvm, затем Sigma пустой вектор ([]).
Типы данных: single | double
compareHoldout | Сравните точность двух моделей классификации с помощью новых данных |
discardSupportVectors | Отбросьте векторы поддержки для линейного классификатора машины опорных векторов (SVM) |
edge | Найдите ребро классификации для классификатора машины опорных векторов (SVM) |
fitPosterior | Подходящие апостериорные вероятности для компактного классификатора машины опорных векторов (SVM) |
incrementalLearner | Преобразуйте бинарную модель машины опорных векторов (SVM) классификации в инкрементного ученика |
lime | Локальные поддающиеся толкованию объяснения модели агностические (LIME) |
loss | Найдите ошибку классификации для классификатора машины опорных векторов (SVM) |
margin | Найдите поля классификации для классификатора машины опорных векторов (SVM) |
partialDependence | Вычислите частичную зависимость |
plotPartialDependence | Создайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP) |
predict | Классифицируйте наблюдения с помощью классификатора машины опорных векторов (SVM) |
shapley | Шепли оценивает |
update | Обновите параметры модели для генерации кода |
Уменьшайте размер машины вектора полной поддержки (SVM) классификатор путем удаления обучающих данных. Полные классификаторы SVM (то есть, ClassificationSVM классификаторы), содержат обучающие данные. Чтобы повысить эффективность, используйте меньший классификатор.
Загрузите ionosphere набор данных.
load ionosphereОбучите классификатор SVM. Стандартизируйте данные о предикторе и задайте порядок классов.
SVMModel = fitcsvm(X,Y,'Standardize',true,... 'ClassNames',{'b','g'})
SVMModel =
ClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
NumObservations: 351
Alpha: [90x1 double]
Bias: -0.1343
KernelParameters: [1x1 struct]
Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 ... ]
Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 ... ]
BoxConstraints: [351x1 double]
ConvergenceInfo: [1x1 struct]
IsSupportVector: [351x1 logical]
Solver: 'SMO'
Properties, Methods
SVMModel ClassificationSVM классификатор.
Уменьшайте размер классификатора SVM.
CompactSVMModel = compact(SVMModel)
CompactSVMModel =
CompactClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Alpha: [90x1 double]
Bias: -0.1343
KernelParameters: [1x1 struct]
Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 ... ]
Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 ... ]
SupportVectors: [90x34 double]
SupportVectorLabels: [90x1 double]
Properties, Methods
CompactSVMModel CompactClassificationSVM классификатор.
Отобразите объем памяти, используемый каждым классификатором.
whos('SVMModel','CompactSVMModel')
Name Size Bytes Class Attributes CompactSVMModel 1x1 31058 classreg.learning.classif.CompactClassificationSVM SVMModel 1x1 141148 ClassificationSVM
Полный классификатор SVM (SVMModel) больше чем в четыре раза больше, чем компактный классификатор SVM (CompactSVMModel).
Чтобы пометить новые наблюдения эффективно, можно удалить SVMModel от MATLAB® Workspace, и затем передают CompactSVMModel и новые значения предиктора к predict.
Чтобы далее уменьшать размер компактного классификатора SVM, используйте discardSupportVectors функционируйте, чтобы отбросить векторы поддержки.
Загрузите ionosphere набор данных.
load ionosphereОбучите и перекрестный подтвердите классификатор SVM. Стандартизируйте данные о предикторе и задайте порядок классов.
rng(1); % For reproducibility CVSVMModel = fitcsvm(X,Y,'Standardize',true,... 'ClassNames',{'b','g'},'CrossVal','on')
CVSVMModel =
ClassificationPartitionedModel
CrossValidatedModel: 'SVM'
PredictorNames: {1x34 cell}
ResponseName: 'Y'
NumObservations: 351
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Properties, Methods
CVSVMModel ClassificationPartitionedModel перекрестный подтвержденный классификатор SVM. По умолчанию программное обеспечение реализует 10-кратную перекрестную проверку.
В качестве альтернативы можно перекрестный подтвердить обученный ClassificationSVM классификатор путем передачи его crossval.
Смотрите один из обученных сгибов с помощью записи через точку.
CVSVMModel.Trained{1}ans =
CompactClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
Alpha: [78x1 double]
Bias: -0.2209
KernelParameters: [1x1 struct]
Mu: [0.8888 0 0.6320 0.0406 0.5931 0.1205 0.5361 ... ]
Sigma: [0.3149 0 0.5033 0.4441 0.5255 0.4663 0.4987 ... ]
SupportVectors: [78x34 double]
SupportVectorLabels: [78x1 double]
Properties, Methods
Каждым сгибом является CompactClassificationSVM классификатор, обученный на 90% данных.
Оцените ошибку обобщения.
genError = kfoldLoss(CVSVMModel)
genError = 0.1168
В среднем ошибка обобщения составляет приблизительно 12%.
[1] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, второго выпуска. Нью-Йорк: Спрингер, 2008.
[2] Scholkopf, B., Дж. К. Платт, Дж. К. Шейв-Тейлор, А. Дж. Смола и Р. К. Уильямсон. “Оценивая Поддержку Высоко-размерного Распределения”. Нейронный Расчет. Издание 13, Номер 7, 2001, стр 1443–1471.
[3] Christianini, N. и Дж. К. Шейв-Тейлор. Введение в машины опорных векторов и другое основанное на ядре изучение методов. Кембридж, Великобритания: Издательство Кембриджского университета, 2000.
[4] Scholkopf, B. и A. Смола. Изучение с ядрами: машины опорных векторов, регуляризация, оптимизация и вне, адаптивный расчет и машинное обучение. Кембридж, MA: нажатие MIT, 2002.
Указания и ограничения по применению:
Интегрировать предсказание модели классификации SVM в Simulink®, можно использовать блок ClassificationSVM Predict в библиотеке Statistics and Machine Learning Toolbox™ или блоке MATLAB function с predict функция.
Когда вы обучаете модель SVM при помощи fitcsvm, следующие ограничения применяются.
Значение 'ScoreTransform' аргументом пары "имя-значение" не может быть анонимная функция. Для генерации кода, который предсказывает апостериорные вероятности, данные новые наблюдения, передайте обученную модель SVM fitPosterior или fitSVMPosterior. ScoreTransform свойство возвращенной модели содержит анонимную функцию, которая представляет счет функции апостериорной вероятности и сконфигурирована для генерации кода.
Для генерации фиксированной точки, значения 'ScoreTransform' аргументом пары "имя-значение" не может быть 'invlogit'. Кроме того, значение 'KernelFunction' аргументом пары "имя-значение" должен быть 'gaussian', 'linear', или 'polynomial'.
Для генерации фиксированной точки и генерации кода с кодером configurer, применяются следующие дополнительные ограничения.
Категориальные предикторы (logicalкатегориальный'char'Строка, или cell) не поддерживаются. Вы не можете использовать 'CategoricalPredictors' аргумент значения имени.
Чтобы включать категориальные предикторы в модель, предварительно обработайте их при помощи dummyvar прежде, чем подбирать модель.
Класс помечает categorical тип данных не поддерживается. Оба значение метки класса в обучающих данных (Tbl или Y) и значение 'ClassNames' аргумент значения имени не может быть массивом с categorical тип данных.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
ClassificationSVM | fitcsvm | compact | discardSupportVectors
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.