ClassificationSVM

Машина опорных векторов (SVM) для и бинарной классификации одного класса

Описание

ClassificationSVM классификатор машины опорных векторов (SVM) для изучения 2D класса и одного класса. Обученный ClassificationSVM классификаторы хранят обучающие данные, значения параметров, априорные вероятности, поддерживают векторы и алгоритмическую информацию о реализации. Используйте эти классификаторы, чтобы выполнить задачи, такие как подбор кривой счету к функции преобразования апостериорной вероятности (см. fitPosterior) и предсказывая метки для новых данных (см. predict).

Создание

Создайте ClassificationSVM объект при помощи fitcsvm.

Свойства

развернуть все

Свойства SVM

Это свойство доступно только для чтения.

Обученные коэффициенты классификатора, заданные как s-by-1 числовой вектор. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector).

Alpha содержит обученные коэффициенты классификатора от двойной проблемы, то есть, предполагаемых множителей Лагранжа. Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, Alpha содержит один коэффициент, соответствующий целому набору. That is, MATLAB® приписывает ненулевой коэффициент одному наблюдению от набора копий и коэффициент 0 ко всем другим дублирующимся наблюдениям в наборе.

Типы данных: single | double

Это свойство доступно только для чтения.

Линейные коэффициенты предиктора, заданные как числовой вектор. Длина Beta равно количеству предикторов, используемых, чтобы обучить модель.

MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Beta хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Например, если существует три предиктора, один из которых является категориальной переменной с тремя уровнями, затем Beta числовой вектор, содержащий пять значений.

Если KernelParameters.Function 'linear', затем счет классификации к наблюдению x

f(x)=(x/s)β+b.

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

Это свойство доступно только для чтения.

Сместите термин, заданный как скаляр.

Типы данных: single | double

Это свойство доступно только для чтения.

Ограничения поля, заданные как числовой вектор n-by-1 ограничения поля. n является количеством наблюдений в обучающих данных (см. NumObservations свойство.

Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, MATLAB суммирует ограничения поля и затем приписывает сумму одному наблюдению. MATLAB приписывает ограничения поля 0 ко всем другим наблюдениям в наборе.

Типы данных: single | double

Это свойство доступно только для чтения.

Кэширование информации, указанной как массив структур. Кэширующаяся информация содержит поля, описанные в этой таблице.

Поле Описание
Размер

Размер кэша (в Мбайте), который программное обеспечение резервирует, чтобы обучить классификатор SVM. Для получения дополнительной информации смотрите 'CacheSize'.

Алгоритм

Алгоритм кэширования, который программное обеспечение использует во время оптимизации. В настоящее время единственным доступным алгоритмом кэширования является Queue. Вы не можете установить алгоритм кэширования.

Отобразите поля CacheInfo при помощи записи через точку. Например, Mdl.CacheInfo.Size отображает значение размера кэша.

Типы данных: struct

Это свойство доступно только для чтения.

Поддержите векторный индикатор, заданный как n-by-1 логический вектор, который отмечает, является ли соответствующее наблюдение в матрице данных предиктора Вектором Поддержки. n является количеством наблюдений в обучающих данных (см. NumObservations).

Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, IsSupportVector флаги только одно наблюдение как вектор поддержки.

Типы данных: логический

Это свойство доступно только для чтения.

Параметры ядра, заданные как массив структур. Свойство параметров ядра содержит поля, перечисленные в этой таблице.

Поле Описание
Функция

Функция ядра использовалась для расчета элементов матрицы Грамма. Для получения дополнительной информации смотрите 'KernelFunction'.

Шкала

Масштабный коэффициент ядра раньше масштабировал все элементы данных о предикторе, на которых обучена модель. Для получения дополнительной информации смотрите 'KernelScale'.

Отобразить значения KernelParameters, используйте запись через точку. Например, Mdl.KernelParameters.Scale отображает значение масштабного коэффициента ядра.

Программное обеспечение принимает KernelParameters как входные параметры и не изменяет их.

Типы данных: struct

Это свойство доступно только для чтения.

Параметр изучения одного класса ν, заданный как положительная скалярная величина.

Типы данных: single | double

Это свойство доступно только для чтения.

Пропорция выбросов в обучающих данных, заданных в виде числа.

Типы данных: double

Это свойство доступно только для чтения.

Стандартная программа оптимизации раньше обучала классификатор SVM, заданный как 'ISDA', 'L1QP', или 'SMO'. Для получения дополнительной информации смотрите 'Solver'.

Это свойство доступно только для чтения.

Поддержите векторные метки класса, заданные как s-by-1 числовой вектор. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector).

Значение +1 в SupportVectorLabels указывает, что соответствующий вектор поддержки находится в положительном классе (ClassNames{2}). Значение –1 указывает, что соответствующий вектор поддержки находится в отрицательном классе (ClassNames{1}).

Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, SupportVectorLabels содержит одну уникальную метку вектора поддержки.

Типы данных: single | double

Это свойство доступно только для чтения.

Поддержите векторы в обученном классификаторе, заданном как s-by-p числовая матрица. s является количеством векторов поддержки в обученном классификаторе, sum(Mdl.IsSupportVector), и p является количеством переменных предикторов в данных о предикторе.

SupportVectors содержит строки данных о предикторе X тот MATLAB считает векторами поддержки. Если вы задаете 'Standardize',true когда обучение классификатор SVM с помощью fitcsvm, затем SupportVectors содержит стандартизированные строки X.

Если вы удаляете копии при помощи RemoveDuplicates аргумент пары "имя-значение" fitcsvm, затем для данного набора дублирующихся наблюдений, которые являются векторами поддержки, SupportVectors содержит один уникальный вектор поддержки.

Типы данных: single | double

Другие свойства классификации

Это свойство доступно только для чтения.

Категориальные индексы предиктора, заданные как вектор положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]).

Типы данных: single | double

Это свойство доступно только для чтения.

Уникальные метки класса использовали в обучении модель, заданную как категориальное или символьный массив, логический или числовой вектор или массив ячеек из символьных векторов.

Типы данных: single | double | logical | char | cell | categorical

Это свойство доступно только для чтения.

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 совпадает с PredictorNames.

Типы данных: cell

Это свойство доступно только для чтения.

Значения градиента обучающих данных, заданные как числовой вектор. Длина Gradient равно количеству наблюдений (см. NumObservations).

Типы данных: single | double

Это свойство доступно только для чтения.

Параметры раньше обучали ClassificationSVM модель, заданная как массив структур. ModelParameters содержит значения параметров, такие как значения аргумента пары "имя-значение", используемые, чтобы обучить классификатор SVM. ModelParameters не содержит оцененные параметры.

Доступ к полям ModelParameters при помощи записи через точку. Например, получите доступ к начальным значениям для оценки Alpha при помощи Mdl.ModelParameters.Alpha.

Типы данных: struct

Это свойство доступно только для чтения.

Средние значения предиктора, заданные как числовой вектор. Если вы задаете 'Standardize',1 или 'Standardize',true когда вы обучаете классификатор SVM с помощью fitcsvm, затем длина Mu равно количеству предикторов.

MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Mu хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Однако MATLAB не стандартизирует столбцы, которые содержат категориальные переменные.

Если вы устанавливаете 'Standardize',false когда вы обучаете классификатор SVM с помощью fitcsvm, затем Mu пустой вектор ([]).

Типы данных: single | double

Это свойство доступно только для чтения.

Количество наблюдений в обучающих данных, хранимых в X и Y, заданных в виде числа.

Типы данных: single | double

Это свойство доступно только для чтения.

Имена переменного предиктора, заданные как массив ячеек из символьных векторов. Порядок элементов PredictorNames соответствует порядку, в котором имена предиктора появляются в обучающих данных.

Типы данных: cell

Это свойство доступно только для чтения.

Априорные вероятности для каждого класса, заданного как числовой вектор. Порядок элементов Prior соответствует элементам Mdl.ClassNames.

Для изучения 2D класса, если вы задаете матрицу стоимости, затем обновления программного обеспечения априорные вероятности путем слияния штрафов, описанных в матрице стоимости.

Для получения дополнительной информации см. Алгоритмы.

Типы данных: single | double

Это свойство доступно только для чтения.

Имя переменной отклика, заданное как вектор символов.

Типы данных: char

Это свойство доступно только для чтения.

Строки исходных данных X используемый в подборе кривой ClassificationSVM модель, заданная как логический вектор. Это свойство пусто, если все строки используются.

Типы данных: логический

Выиграйте преобразование, заданное как вектор символов или указатель на функцию. 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

Это свойство доступно только для чтения.

Стандартные отклонения предиктора, заданные как числовой вектор.

Если вы задаете 'Standardize',true когда вы обучаете классификатор SVM с помощью fitcsvm, затем длина Sigma равно количеству переменных предикторов.

MATLAB расширяет категориальные переменные в данных о предикторе с помощью полного фиктивного кодирования. Таким образом, MATLAB создает одну фиктивную переменную для каждого уровня каждой категориальной переменной. Sigma хранилища одно значение для каждого переменного предиктора, включая фиктивные переменные. Однако MATLAB не стандартизирует столбцы, которые содержат категориальные переменные.

Если вы устанавливаете 'Standardize',false когда вы обучаете классификатор SVM с помощью fitcsvm, затем Sigma пустой вектор ([]).

Типы данных: single | double

Это свойство доступно только для чтения.

Веса наблюдения раньше обучали классификатор SVM, заданный как n-by-1 числовой вектор. n является количеством наблюдений (см. NumObservations).

fitcsvm нормирует веса наблюдения, заданные в 'Weights' аргумент пары "имя-значение" так, чтобы элементы W в конкретном классе суммируют до априорной вероятности того класса.

Типы данных: single | double

Это свойство доступно только для чтения.

Нестандартизированные предикторы раньше обучали классификатор SVM, заданный как числовая матрица или таблица.

Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

MATLAB исключает наблюдения, содержащие по крайней мере одно отсутствующее значение, и удаляет соответствующие элементы из Y.

Типы данных: single | double

Это свойство доступно только для чтения.

Метки класса раньше обучали классификатор SVM, заданный как категориальное или символьный массив, логический или числовой вектор или массив ячеек из символьных векторов. Y совпадающий тип данных как входной параметр Y из fitcsvm. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

Каждая строка Y представляет наблюдаемую классификацию соответствующей строки X.

MATLAB исключает элементы, содержащие отсутствующие значения, и удаляет соответствующие наблюдения из X.

Типы данных: single | double | logical | char | cell | categorical

Свойства элементов управления сходимости

Это свойство доступно только для чтения.

Информация сходимости, указанная как массив структур.

Поле Описание
ConvergedЛогический флаг, указывающий, сходился ли алгоритм (1 указывает на сходимость).
ReasonForConvergenceВектор символов, указывающий на критерий использование программного обеспечения, чтобы обнаружить сходимость.
GapСкалярный разрыв выполнимости между двойными и основными целевыми функциями.
GapToleranceСкалярный допуск разрыва выполнимости. Установите этот допуск, например, к 1e-2, при помощи аргумента пары "имя-значение" 'GapTolerance',1e-2 из fitcsvm.
DeltaGradientДостигнутое скаляром различие в градиенте между верхними и более низкими нарушителями
DeltaGradientToleranceСкалярный допуск к различию в градиенте между верхними и более низкими нарушителями. Установите этот допуск, например, к 1e-2, при помощи аргумента пары "имя-значение" 'DeltaGradientTolerance',1e-2 из fitcsvm.
LargestKKTViolationМаксимальное скалярное значение нарушения Karush-Kuhn-Tucker (KKT).
KKTToleranceСкалярный допуск к самому большому нарушению KKT. Установите этот допуск, например, к 1e-3, при помощи аргумента пары "имя-значение" 'KKTTolerance',1e-3 из fitcsvm.
History

Массив структур, содержащий информацию о сходимости в итерациях оптимизации набора. Поля:

  • NumIterations: числовой вектор индексов итерации, для которых программное обеспечение записывает информацию о сходимости

  • Gap: числовой вектор Gap значения в итерациях

  • DeltaGradient: числовой вектор DeltaGradient значения в итерациях

  • LargestKKTViolation: числовой вектор LargestKKTViolation значения в итерациях

  • NumSupportVectors: числовой вектор, указывающий на количество векторов поддержки в итерациях

  • Objective: числовой вектор Objective значения в итерациях

ObjectiveСкалярное значение двойной целевой функции.

Типы данных: struct

Это свойство доступно только для чтения.

Количество итераций, требуемых стандартной программой оптимизации достигнуть сходимости, заданной как положительное целое число.

Устанавливать предел для количества итераций к 1000, например, задайте 'IterationLimit',1000 когда вы обучаете классификатор SVM с помощью fitcsvm.

Типы данных: double

Это свойство доступно только для чтения.

Количество итераций между сокращениями активного набора, заданного как неотрицательное целое число.

Установить период уменьшения на 1000, например, задайте 'ShrinkagePeriod',1000 когда вы обучаете классификатор SVM с помощью fitcsvm.

Типы данных: single | double

Свойства гипероптимизации параметров управления

Это свойство доступно только для чтения.

Описание оптимизации перекрестной проверки гиперпараметров, заданных как BayesianOptimization возразите или таблица гиперпараметров и присваиваемых значений. Это свойство непусто когда 'OptimizeHyperparameters' аргумент пары "имя-значение" fitcsvm непусто при создании. Значение HyperparameterOptimizationResults зависит от установки Optimizer поле в HyperparameterOptimizationOptions структура fitcsvm при создании, как описано в этой таблице.

Значение Optimizer Поле Значение HyperparameterOptimizationResults
'bayesopt' (значение по умолчанию)Объект класса BayesianOptimization
'gridsearch' или 'randomsearch'Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому

Функции объекта

compactУменьшайте размер классификатора машины опорных векторов (SVM)
compareHoldoutСравните точность двух моделей классификации с помощью новых данных
crossvalПерекрестный подтвердите классификатор машины опорных векторов (SVM)
discardSupportVectorsОтбросьте векторы поддержки для линейного классификатора машины опорных векторов (SVM)
edgeНайдите ребро классификации для классификатора машины опорных векторов (SVM)
fitPosteriorПодходящие апостериорные вероятности для классификатора машины опорных векторов (SVM)
lossНайдите ошибку классификации для классификатора машины опорных векторов (SVM)
marginНайдите поля классификации для классификатора машины опорных векторов (SVM)
predictКлассифицируйте наблюдения с помощью классификатора машины опорных векторов (SVM)
resubEdgeНайдите ребро классификации для классификатора машины опорных векторов (SVM) перезаменой
resubLossНайдите потерю классификации для классификатора машины опорных векторов (SVM) перезаменой
resubMarginНайдите поля классификации для классификатора машины опорных векторов (SVM) перезаменой
resubPredictКлассифицируйте наблюдения на классификатор машины опорных векторов (SVM)
resumeВозобновите учебный классификатор машины опорных векторов (SVM)

Примеры

свернуть все

Загрузите ирисовый набор данных Фишера. Удалите длины чашелистика и ширины, и все наблюдали ирисовые диафрагмы setosa.

load fisheriris
inds = ~strcmp(species,'setosa');
X = meas(inds,3:4);
y = species(inds);

Обучите классификатор SVM с помощью обработанного набора данных.

SVMModel = fitcsvm(X,y)
SVMModel = 
  ClassificationSVM
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'versicolor'  'virginica'}
           ScoreTransform: 'none'
          NumObservations: 100
                    Alpha: [24x1 double]
                     Bias: -14.4149
         KernelParameters: [1x1 struct]
           BoxConstraints: [100x1 double]
          ConvergenceInfo: [1x1 struct]
          IsSupportVector: [100x1 logical]
                   Solver: 'SMO'


  Properties, Methods

SVMModel обученный ClassificationSVM классификатор. Отобразите свойства SVMModel. Например, чтобы определить порядок класса, используйте запись через точку.

classOrder = SVMModel.ClassNames
classOrder = 2x1 cell array
    {'versicolor'}
    {'virginica' }

Первый класс ('versicolor') отрицательный класс и второе ('virginica') положительный класс. Можно изменить порядок класса во время обучения при помощи 'ClassNames' аргумент пары "имя-значение".

Постройте точечную диаграмму данных и окружите векторы поддержки.

sv = SVMModel.SupportVectors;
figure
gscatter(X(:,1),X(:,2),y)
hold on
plot(sv(:,1),sv(:,2),'ko','MarkerSize',10)
legend('versicolor','virginica','Support Vector')
hold off

Векторы поддержки являются наблюдениями, которые происходят на или вне их предполагаемых контуров класса.

Можно настроить контуры (и, поэтому, количество векторов поддержки) путем установки ограничения поля во время обучения с помощью 'BoxConstraint' аргумент пары "имя-значение".

Загрузите ionosphere набор данных.

load ionosphere

Обучите и перекрестный подтвердите классификатор SVM. Стандартизируйте данные о предикторе и задайте порядок классов.

rng(1);  % For reproducibility
CVSVMModel = fitcsvm(X,Y,'Standardize',true,...
    'ClassNames',{'b','g'},'CrossVal','on')
CVSVMModel = 
  classreg.learning.partition.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 = 
  classreg.learning.classif.CompactClassificationSVM
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
                    Alpha: [78x1 double]
                     Bias: -0.2209
         KernelParameters: [1x1 struct]
                       Mu: [1x34 double]
                    Sigma: [1x34 double]
           SupportVectors: [78x34 double]
      SupportVectorLabels: [78x1 double]


  Properties, Methods

Каждым сгибом является CompactClassificationSVM классификатор, обученный на 90% данных.

Оцените ошибку обобщения.

genError = kfoldLoss(CVSVMModel)
genError = 0.1168

В среднем ошибка обобщения составляет приблизительно 12%.

Больше о

развернуть все

Алгоритмы

  • Для математической формулировки бинарного алгоритма классификации SVM смотрите Машины опорных векторов для Бинарной Классификации и Понимания Машин опорных векторов.

  • NaN, <undefined>, пустой символьный вектор (''), пустая строка (""), и <missing> значения указывают на отсутствующие значения. fitcsvm удаляет целые строки данных, соответствующих недостающему ответу. При вычислении общих масс (см. следующие маркеры), fitcsvm игнорирует любой вес, соответствующий наблюдению по крайней мере с одним недостающим предиктором. Это действие может привести к несбалансированным априорным вероятностям в проблемах сбалансированного класса. Следовательно, ограничения поля наблюдения не могут равняться BoxConstraint.

  • fitcsvm удаляет наблюдения, которые имеют нулевой вес или априорную вероятность.

  • Для изучения 2D класса, если вы задаете матрицу стоимости C (см. Cost), затем обновления программного обеспечения априорные вероятности класса p (см. Prior) к pc путем слияния штрафов, описанных в C.

    А именно, fitcsvm завершает эти шаги:

    1. Вычислить pc=pC.

    2. Нормируйте pc* так, чтобы обновленные априорные вероятности суммировали к 1.

      pc=1j=1Kpc,jpc.

      K является количеством классов.

    3. Сбросьте матрицу стоимости к значению по умолчанию

      C=[0110].

    4. Удалите наблюдения из обучающих данных, соответствующих классам с нулевой априорной вероятностью.

  • Для изучения 2D класса, fitcsvm нормирует все веса наблюдения (см. Weights) суммировать к 1. Функция затем повторно нормирует нормированные веса, чтобы суммировать до обновленной априорной вероятности класса, которому принадлежит наблюдение. Таким образом, общая масса для наблюдения j в классе k

    wj=wjjКласс kwjpc,k.

    wj является нормированным весом для наблюдения j; p c, k является обновленной априорной вероятностью класса k (см. предыдущий маркер).

  • Для изучения 2D класса, fitcsvm присваивает ограничение поля каждому наблюдению в обучающих данных. Формула для ограничения поля наблюдения j

    Cj=nC0wj.

    n является учебным объемом выборки, C 0 является начальным ограничением поля (см. 'BoxConstraint' аргумент пары "имя-значение"), и wj общая масса наблюдения j (см. предыдущий маркер).

  • Если вы устанавливаете 'Standardize',true и 'Cost', 'Prior', или 'Weights' аргумент пары "имя-значение", затем fitcsvm стандартизирует предикторы с помощью их соответствующих взвешенных средних и взвешенных стандартных отклонений. Таким образом, fitcsvm стандартизирует предиктор j (xj) использование

    xj=xjμjσj.

    μj=1kwkkwkxjk.

    xjk является наблюдением k (строка) предиктора j (столбец).

    (σj)2=v1v12v2kwk(xjkμj)2.

    v1=jwj.

    v2=j(wj)2.

  • Примите тот p пропорция выбросов, которые вы ожидаете в обучающих данных, и что вы устанавливаете 'OutlierFraction',p.

    • Для изучения одного класса программное обеспечение обучает срок смещения, таким образом что 100p% из наблюдений в обучающих данных имеют отрицательные баллы.

    • Программное обеспечение реализует robust learning для изучения 2D класса. Другими словами, программное обеспечение пытается удалить 100p% из наблюдений, когда алгоритм оптимизации сходится. Удаленные наблюдения соответствуют градиентам, которые являются большими в величине.

  • Если ваши данные о предикторе содержат категориальные переменные, то программное обеспечение обычно использует полное фиктивное кодирование в этих переменных. Программное обеспечение создает одну фиктивную переменную для каждого уровня каждой категориальной переменной.

    • PredictorNames свойство хранит один элемент для каждого из исходных имен переменного предиктора. Например, примите, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем PredictorNames 1 3 массив ячеек из символьных векторов, содержащий настоящие имена переменных предикторов.

    • ExpandedPredictorNames свойство хранит один элемент для каждого из переменных предикторов, включая фиктивные переменные. Например, примите, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем ExpandedPredictorNames массив ячеек из символьных векторов 1 на 5, содержащий имена переменных предикторов и новых фиктивных переменных.

    • Точно так же Beta свойство хранит один бета коэффициент для каждого предиктора, включая фиктивные переменные.

    • SupportVectors свойство хранит значения предиктора для векторов поддержки, включая фиктивные переменные. Например, примите, что существуют векторы поддержки m и три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем SupportVectors n-by-5 матрица.

    • X свойство хранит обучающие данные, как первоначально введено и не включает фиктивные переменные. Когда вход является таблицей, X содержит только столбцы, используемые в качестве предикторов.

  • Для предикторов, заданных в таблице, если какая-либо из переменных содержит упорядоченные (порядковые) категории, программное обеспечение использует порядковое кодирование в этих переменных.

    • Поскольку переменная с k заказала уровни, программное обеспечение создает k – 1 фиктивная переменная. j th фиктивная переменная –1 для уровней до j, и +1 для уровней j + 1 через k.

    • Имена фиктивных переменных сохранены в ExpandedPredictorNames свойство указывает на первый уровень со значением +1. Программное обеспечение хранит k – 1 дополнительное имя предиктора для фиктивных переменных, включая имена уровней 2, 3..., k.

  • Все решатели реализуют L 1 мягко-граничная минимизация.

  • Для изучения одного класса программное обеспечение оценивает множители Лагранжа, α 1..., αn, такой что

    j=1nαj=nν.

Ссылки

[1] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, второго выпуска. Нью-Йорк: Спрингер, 2008.

[2] Scholkopf, B., Дж. К. Платт, Дж. К. Шейв-Тейлор, А. Дж. Смола и Р. К. Уильямсон. “Оценивая Поддержку Высоко-размерного Распределения”. Нейронный Comput., Издание 13, Номер 7, 2001, стр 1443–1471.

[3] Christianini, N. и Дж. К. Шейв-Тейлор. Введение в машины опорных векторов и другое основанное на ядре изучение методов. Кембридж, Великобритания: Издательство Кембриджского университета, 2000.

[4] Scholkopf, B. и A. Смола. Изучение с ядрами: машины опорных векторов, регуляризация, оптимизация и вне, адаптивный расчет и машинное обучение. Кембридж, MA: нажатие MIT, 2002.

Расширенные возможности

Введенный в R2014a