Обучите классификатор машины вектора поддержки (SVM) и бинарной классификации одного класса
fitcsvm
обучает или перекрестный подтверждает модель машины вектора поддержки (SVM) для одного класса и 2D класса (двоичный файл) классификация на низко-размерном или умеренно-размерном наборе данных предиктора. поддержки fitcsvm
, сопоставляющие данные о предикторе с помощью функций ядра, и последовательной минимальной оптимизации (SMO) поддержек, итеративного одного алгоритма данных (ISDA) или L 1 мягко-граничная минимизация через квадратичное программирование для минимизации целевой функции.
Чтобы обучить линейную модель SVM бинарной классификации на высоко-размерном наборе данных, то есть, набор данных, который включает много переменных прогноза, использует fitclinear
вместо этого.
Для мультикласса, учащегося с объединенными бинарными моделями SVM, используйте выходные коды с коррекцией ошибок (ECOC). Для получения дополнительной информации смотрите fitcecoc
.
Чтобы обучить модель регрессии SVM, смотрите fitrsvm
для низко-размерных и умеренно-размерных наборов данных предиктора или fitrlinear
для высоко-размерных наборов данных.
Mdl = fitcsvm(Tbl,ResponseVarName)
Mdl = fitcsvm(Tbl,formula)
Mdl = fitcsvm(Tbl,Y)
Mdl = fitcsvm(X,Y)
Mdl = fitcsvm(___,Name,Value)
возвращает классификатор машины вектора поддержки (SVM)
Mdl
= fitcsvm(Tbl
,ResponseVarName
), Mdl
обучил использование выборочных данных, содержавшихся в таблице Tbl
. ResponseVarName
является именем переменной в Tbl
, который содержит метки класса для классификации 2D классов или одного класса.
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Например, можно задать тип перекрестной проверки, стоимости для misclassification и типа функции преобразования счета.Mdl
= fitcsvm(___,Name,Value
)
fitcsvm
обучает классификаторы SVM одного класса или приложениям изучения 2D класса. Чтобы обучить классификаторы SVM с помощью данных больше чем с двумя классами, используйте fitcecoc
.
fitcsvm
поддерживает низко-размерные и умеренно-размерные наборы данных. Для высоко-размерных наборов данных используйте fitclinear
вместо этого.
Если ваш набор данных не является большим, всегда пытайтесь стандартизировать предикторы (см. Standardize
). Стандартизация делает предикторы нечувствительными к шкалам, в которых они измеряются.
Это - хорошая практика, чтобы перекрестный подтвердить использование аргумента пары "имя-значение" KFold
. Результаты перекрестной проверки определяют, как хорошо классификатор SVM делает вывод.
Для изучения одного класса:
Настройка по умолчанию для аргумента пары "имя-значение" Alpha
может привести к долгим учебным временам. Чтобы ускорить обучение, установите Alpha
на вектор, в основном состоявший из 0
s.
Установите аргумент пары "имя-значение" Nu
значению ближе к 0
приводить к меньшему количеству векторов поддержки и, поэтому, более сглаженный, но грубый контур решения.
Разреженность в векторах поддержки является желательным свойством классификатора SVM. Чтобы сократить число векторов поддержки, установите BoxConstraint
на большое значение. Это действие увеличивает учебное время.
В течение оптимального учебного времени набор CacheSize
настолько же высоко как предел памяти ваш компьютер позволяет.
Если вы ожидаете много меньше векторов поддержки, чем наблюдения в наборе обучающих данных, то можно значительно ускорить сходимость путем уменьшения активного набора с помощью аргумента пары "имя-значение" 'ShrinkagePeriod'
. Это - хорошая практика, чтобы задать 'ShrinkagePeriod',1000
.
Дублирующиеся наблюдения, которые далеки от контура решения, не влияют на сходимость. Однако всего несколько дублирующихся наблюдений, которые происходят около контура решения, могут значительно замедлить сходимость. Чтобы ускорить сходимость, задайте 'RemoveDuplicates',true
если:
Ваш набор данных содержит много дублирующихся наблюдений.
Вы подозреваете, что несколько дублирующихся наблюдений падают около контура решения.
Чтобы поддержать исходный набор данных во время обучения, fitcsvm
должен временно сохранить отдельные наборы данных: оригинал и один без дублирующихся наблюдений. Поэтому, если вы задаете true
для наборов данных, содержащих немного копий, затем fitcsvm
использует близко к дважды памяти об исходных данных.
После обучения модель можно сгенерировать код C/C++, который предсказывает метки для новых данных. Генерация кода C/C++ требует MATLAB Coder™. Для получения дополнительной информации смотрите Введение в Генерацию кода.
Для математической формулировки бинарного алгоритма классификации SVM смотрите Машины Вектора Поддержки для Бинарной Классификации и Понимающий Машины Вектора Поддержки.
NaN
, <undefined>
, пустой символьный вектор (''
), пустая строка (""
) и значения <missing>
указывают на отсутствующие значения. fitcsvm
удаляет целые строки данных, соответствующих недостающему ответу. При вычислении общих масс (см. следующие маркеры), fitcsvm
игнорирует любой вес, соответствующий наблюдению по крайней мере с одним недостающим предиктором. Это действие может привести к несбалансированным априорным вероятностям в проблемах сбалансированного класса. Следовательно, ограничения поля наблюдения не могут равняться BoxConstraint
.
fitcsvm
удаляет наблюдения, которые имеют нулевой вес или априорную вероятность.
Для изучения 2D класса, если вы задаете матрицу стоимости (см. Cost
), затем обновления программного обеспечения априорные вероятности класса p (см. Prior
) к pc путем слияния штрафов, описанных в .
А именно, fitcsvm
завершает эти шаги:
Вычислить
Нормируйте pc* так, чтобы обновленные априорные вероятности суммировали к 1.
K является количеством классов.
Сбросьте матрицу стоимости к значению по умолчанию
Удалите наблюдения из данных тренировки, соответствующих классам с нулевой априорной вероятностью.
Для изучения 2D класса fitcsvm
нормирует все веса наблюдения (см. Weights
) суммировать к 1. Функция затем повторно нормирует нормированные веса, чтобы суммировать до обновленной априорной вероятности класса, которому принадлежит наблюдение. Таким образом, общая масса для наблюдения j в классе k
wj является нормированным весом для наблюдения j; p c, k является обновленной априорной вероятностью класса k (см. предыдущий маркер).
Для изучения 2D класса fitcsvm
присваивает ограничение поля каждому наблюдению в данных тренировки. Формула для ограничения поля наблюдения j
n является учебным объемом выборки, C 0 является начальным ограничением поля (см. аргумент пары "имя-значение" 'BoxConstraint'
), и общая масса наблюдения j (см. предыдущий маркер).
Если вы устанавливаете 'Standardize',true
и 'Cost'
, 'Prior'
или аргумент пары "имя-значение" 'Weights'
, то fitcsvm
стандартизирует предикторы с помощью их соответствующих взвешенных средних и взвешенных стандартных отклонений. Таким образом, fitcsvm
стандартизирует предиктор j (xj) использование
xjk является наблюдением k (строка) предиктора j (столбец).
Примите, что 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, такой что
[1] Christianini, N. и Дж. К. Шейв-Тейлор. Введение, чтобы поддержать векторные машины и другое основанное на ядре изучение методов. Кембридж, Великобритания: Издательство Кембриджского университета, 2000.
[2] Вентилятор, R.-E., P.-H. Чен и C.-J. Лин. “Выбор рабочего набора с помощью информации о втором порядке для учебных машин вектора поддержки”. Журнал Исследования Машинного обучения, Издания 6, 2005, стр 1889–1918.
[3] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, второго выпуска. Нью-Йорк: Спрингер, 2008.
[4] Кекмен V, T.-M. Хуан и М. Вогт. “Итеративный Один Алгоритм Данных для Учебных Машин Ядра от Огромных Наборов данных: Теория и Производительность”. Поддержите Векторные Машины: Теория и Приложения. Отредактированный Липо Ваном, 255–274. Берлин: Springer-Verlag, 2005.
[5] Scholkopf, B., Дж. К. Платт, Дж. К. Шейв-Тейлор, А. Дж. Смола и Р. К. Уильямсон. “Оценивая Поддержку Высоко-размерного Распределения”. Нейронный Comput., Издание 13, Номер 7, 2001, стр 1443–1471.
[6] Scholkopf, B. и A. Смола. Изучение с ядрами: поддержите векторные машины, регуляризацию, оптимизацию и вне, адаптивное вычисление и машинное обучение. Кембридж, MA: нажатие MIT, 2002.
ClassificationPartitionedModel
| ClassificationSVM
| CompactClassificationSVM
| fitSVMPosterior
| fitcecoc
| fitclinear
| predict
| quadprog
| rng