Подбор модели машины опорных векторов
fitrsvm
обучает или перекрестно проверяет регрессионую модель машины опорных векторов (SVM) на наборе данных предиктора с низкой по умеренную размерность. fitrsvm
Поддержки отображения данных предиктора с помощью функций ядра и поддержек SMO, ISDA или L 1 минимизации мягких полей посредством квадратичного программирования для минимизации целевой функции.
Чтобы обучить линейную регрессионую модель SVM на высоко-размерном наборе данных, то есть наборах данных, которые включают много переменные, используйте fitrlinear
вместо этого.
Для обучения модели SVM для двоичной классификации см. fitcsvm
для наборов данных предиктора с низкой или умеренной размерностью, или fitclinear
для высоко-размерных наборов данных.
возвращает полную обученную регрессионую модель машины опорных векторов (SVM) Mdl
= fitrsvm(Tbl
,ResponseVarName
)Mdl
обучен с использованием значений предикторов в таблице Tbl
и значений отклика в Tbl.ResponseVarName
.
возвращает регрессионую модель SVM с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", с использованием любого из предыдущих синтаксисов. Для примера можно задать функцию ядра или обучить перекрестно проверенную модель.Mdl
= fitrsvm(___,Name,Value
)
fitrsvm
поддерживает наборы данных с низкой - умеренной размерностью. Для высоко-размерного набора данных используйте fitrlinear
вместо этого.
Если ваш набор данных не велик, всегда старайтесь стандартизировать предикторы (см Standardize
). Стандартизация делает предикторы нечувствительными к шкалам, на которых они измеряются.
Рекомендуется проводить перекрестную валидацию с использованием KFold
аргумент пары "имя-значение". Результаты перекрестной валидации определяют, насколько хорошо обобщается модель SVM.
Разреженность в поддерживающих векторах является желаемым свойством модели SVM. Чтобы уменьшить количество поддерживающих векторов, установите BoxConstraint
аргумент пары "имя-значение" к большому значению. Это действие также увеличивает время обучения.
Для оптимального времени обучения установите CacheSize
так же высоко, как позволяет предел памяти на вашем компьютере.
Если вы ожидаете гораздо меньше векторов поддержки, чем наблюдений в наборе обучающих данных, то можно значительно ускорить сходимость, сжав активное множество с помощью аргумента пары "имя-значение" 'ShrinkagePeriod'
. Передовой практикой является использование 'ShrinkagePeriod',1000
.
Дублирующие наблюдения, которые далеки от линии регрессии, не влияют на сходимость. Однако всего несколько повторяющихся наблюдений, которые происходят около линии регрессии, могут значительно замедлить сходимость. Чтобы ускорить сходимость, задайте 'RemoveDuplicates',true
если:
Ваш набор данных содержит много повторяющихся наблюдений.
Вы подозреваете, что несколько повторяющихся наблюдений могут опуститься около линии регрессии.
Однако, чтобы сохранить исходный набор данных во время обучения, fitrsvm
необходимо временно хранить отдельные наборы данных: оригинал и один без повторяющихся наблюдений. Поэтому, если вы задаете true
для наборов данных, содержащих несколько дубликатов, тогда fitrsvm
потребляет близкую к удвоенной память исходных данных.
После обучения модели можно сгенерировать код C/C + +, который предсказывает ответы для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода.
Для математической формулировки линейных и нелинейных задач регрессии SVM и алгоритмов решателя, см. Понимание машины опорных векторов.
NaN
, <undefined>
, пустой символьный вектор (''
), пустая строка (""
), и <missing>
значения указывают на отсутствующие значения данных. fitrsvm
удаляет целые строки данных, соответствующих отсутствующему ответу. При нормализации весов, fitrsvm
игнорирует любой вес, относящийся к наблюдению, по крайней мере, с одним отсутствующим предиктором. Следовательно, ограничения ящика наблюдений могут не равняться BoxConstraint
.
fitrsvm
удаляет наблюдения с нулевым весом.
Если вы задаете 'Standardize',true
и 'Weights'
, затем fitrsvm
стандартизирует предикторы с помощью их соответствующих взвешенных средств и взвешенных стандартных отклонений. То есть, fitrsvm
стандартизирует предиктор j (xj), используя
xjk - k наблюдения (строка) предиктора j (столбец).
Если ваши данные предиктора содержат категориальные переменные, то программное обеспечение обычно использует полную фиктивную кодировку для этих переменных. Программа создает по одной фиктивной переменной для каждого уровня каждой категориальной переменной.
The PredictorNames
свойство сохраняет по одному элементу для каждого из исходных имен переменных предиктора. Например, предположим, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем PredictorNames
- массив ячеек 1 на 3 из векторов символов, содержащий исходные имена переменных.
The ExpandedPredictorNames
свойство сохраняет по одному элементу для каждой из переменных предиктора, включая фиктивные переменные. Например, предположим, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем ExpandedPredictorNames
- массив ячеек 1 на 5 из векторов символов, содержащий имена переменных-предикторов и новых фиктивных переменных.
Точно так же Beta
свойство сохраняет один бета-коэффициент для каждого предиктора, включая фиктивные переменные.
The SupportVectors
свойство сохраняет значения предиктора для поддерживающих векторов, включая фиктивные переменные. Например, предположим, что существует m векторов поддержки и три предиктора, один из которых является категориальной переменной с тремя уровнями. Затем SupportVectors
является матрицей m -by-5.
The X
свойство сохраняет обучающие данные как исходные входные. Он не включает фиктивные переменные. Когда вход является таблицей, X
содержит только столбцы, используемые в качестве предикторов.
Для предикторов, заданных в таблице, если любая из переменных содержит упорядоченные (порядковые) категории, программа использует порядковую кодировку для этих переменных.
Для переменной, имеющей k упорядоченных уровней, программа создает k - 1 фиктивные переменные. Переменная j-го манекена является -1 для уровней до j и + 1 для уровней j + 1 до k.
Имена фиктивных переменных, хранящихся в ExpandedPredictorNames
свойство указывает на первый уровень со значением + 1. Программное обеспечение хранит k - 1 дополнительные имена предикторов для фиктивных переменных, включая имена уровней 2, 3,..., k.
Все решатели реализуют L 1 минимизации мягких полей.
Позвольте p
быть пропорцией выбросов, которые вы ожидаете в обучающих данных. Если вы задаете 'OutlierFraction',p
, затем программное обеспечение реализует robust learning. Другими словами, программное обеспечение пытается удалить 100 p
% наблюдений, когда алгоритм оптимизации сходится. Удаленные наблюдения соответствуют градиентам, которые являются большими по величине.
[1] Кларк, Д., З. Шретер, А. Адамс. «A Quantitative Comparison of Dystal and Backpropagation». представлено на Австралийской конференции по нейронным сетям, 1996.
[2] Вентилятор, R.-E., P.-H. Чен и К.-Ж. Lin. «Работа набора с использованием информации второго порядка для обучения машин опорных векторов». Journal of Машинного обучения Research, Vol 6, 2005, pp. 1889-1918.
[3] Кечман В., Т. -М. Хуан и М. Фогт. Итерационный алгоритм единичных данных для обучения машин ядра из огромных наборов данных: теория и эффективность. В машинах опорных векторов: теория и приложения. Под редакцией Липо Ван, 255-274. Берлин: Springer-Verlag, 2005.
[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорнийский университет, Школа информации и компьютерных наук.
[5] Nash, W.J., T. L. Sellers, S. R. Talbot, A. J. Cawthorn, and W. B. Ford. "Популяционная биология Абалоне (виды Haliotis) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.
[6] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.
CompactRegressionSVM
| predict
| RegressionPartitionedSVM
| RegressionSVM