Суперклассы: CompactRegressionSVM
Модель опорной векторной машинной регрессии
RegressionSVM является регрессионной моделью опорной векторной машины (SVM). Тренировать а RegressionSVM модель с использованием fitrsvm и выборочные данные.
RegressionSVM модели хранят данные, значения параметров, векторы поддержки и информацию алгоритмической реализации. Эти модели можно использовать для:
Оценка прогнозов повторного замещения. Для получения более подробной информации см. resubPredict.
Прогнозировать значения для новых данных. Для получения более подробной информации см. predict.
Вычислить потерю повторного замещения. Для получения более подробной информации см. resubLoss.
Вычислите среднеквадратическую ошибку или потери, не чувствительные к эпсилону. Для получения более подробной информации см. loss.
Создать RegressionSVM объект с помощью fitrsvm.
Alpha - Двойные коэффициенты проблемыСдвоенные коэффициенты задачи, заданные как вектор числовых значений. Alpha содержит m элементов, где m - количество векторов поддержки в тренированной регрессионной модели SVM. Двойственная задача вводит два множителя Лагранжа для каждого вектора поддержки. Значения Alpha - различия между двумя оценочными множителями Лагранжа для векторов поддержки. Дополнительные сведения см. в разделе Общие сведения о поддержке векторной машинной регрессии.
Если указано удаление дубликатов с помощью RemoveDuplicatesзатем для определенного набора дублирующих наблюдений, которые являются векторами поддержки, Alpha содержит один коэффициент, соответствующий всему набору. То есть MATLAB ® приписывает ненулевой коэффициент одному наблюдению из набора дубликатов и коэффициенту 0 ко всем другим дублирующимся наблюдениям в наборе.
Типы данных: single | double
Beta - Основные линейные коэффициенты задачи'[]'Коэффициенты основной линейной задачи, хранящиеся в виде числового вектора длины p, где p - количество предикторов в модели регрессии SVM.
Значения в Beta - линейные коэффициенты для основной задачи оптимизации.
Если модель получена с использованием функции ядра, отличной от 'linear', это свойство пустое ('[]').
predict метод вычисляет прогнозируемые значения отклика для модели как YFIT = (X/S)×Beta + Bias, где S - значение шкалы ядра, хранящееся в KernelParameters.Scale собственность.
Типы данных: single | double
Bias - Срок смещенияЧлен смещения в регрессионной модели SVM, хранящийся как скалярное значение.
Типы данных: single | double
BoxConstraints - Ограничения для двойных коэффициентов проблемыОграничения поля для альфа-коэффициентов двойной задачи, хранящиеся в виде числового вектора, содержащего n элементов, где n - количество наблюдений в X (Mdl.NumObservations).
Абсолютное значение двойного коэффициента Alpha для наблюдения i не может превышать BoxConstraints(i).
При указании удаления дубликатов с помощью 'RemoveDuplicates', то для данного набора повторяющихся наблюдений MATLAB суммирует ограничения поля, а затем приписывает сумму одному наблюдению и ограничениям поля 0 ко всем остальным наблюдениям в наборе.
Типы данных: single | double
CacheInfo - Кэширование информацииКэширование информации, хранящейся в виде структуры со следующими полями.
| Область | Описание |
|---|---|
'Size' | Положительное скалярное значение, указывающее размер кэша (в МБ), который программное обеспечение резервирует для хранения записей матрицы Gram. Задайте размер кэша с помощью 'CacheSize' аргумент пары имя-значение в fitrsvm. |
'Algorithm' | Вектор символов, содержащий имя алгоритма, используемого для удаления записей из кэша при превышении его емкости. В настоящее время единственным доступным алгоритмом кэширования является 'Queue'. Невозможно задать алгоритм кэширования. |
Типы данных: struct
CategoricalPredictors - Индексы категориальных предикторовИндексы категориального предиктора, указанные как вектор положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не категоричен, то это свойство пустое ([]).
Типы данных: single | double
ConvergenceInfo - Сведения о сходимостиСведения о сходимости, хранящиеся в виде структуры со следующими полями.
| Область | Описание |
|---|---|
Converged | Логический флаг, указывающий, сходился ли алгоритм. Значение 1 указывает сходимость. |
ReasonForConvergence | Вектор символов, указывающий критерий, используемый программным обеспечением для обнаружения сходимости. |
Gap | Скалярный промежуток осуществимости между двойной и основной объективными функциями. |
GapTolerance | Скалярный допуск для зазора выполнимости. Этот допуск можно задать с помощью 'GapTolerance' аргумент пары имя-значение в fitrsvm. |
DeltaGradient | Разница скалярных градиентов между верхним и нижним нарушителями. |
DeltaGradientTolerance | Скалярный допуск для разности градиентов. Этот допуск можно задать с помощью DeltaGradientTolerance аргумент пары имя-значение в fitrsvm. |
LargestKKTViolation | Максимальное скалярное значение нарушения Каруша-Куна-Такера (KKT). |
KKTTolerance | Скалярный допуск для наибольшего нарушения ККТ. Этот допуск можно задать с помощью 'KKTTolerance' аргумент пары имя-значение в fitrsvm. |
History | Структура, содержащая информацию о сходимости, регистрируемую с периодическими интервалами в процессе обучения модели. Эта структура содержит следующие поля:
|
Objective | Числовое значение двойного объекта. |
Типы данных: struct
Epsilon - Половина ширины эпсилон-нечувствительной полосыПоловина ширины эпсилон-нечувствительной полосы, хранящейся как неотрицательное скалярное значение.
Типы данных: single | double
ExpandedPredictorNames - Расширенные имена предикторовРасширенные имена предикторов, хранящиеся в виде клеточного массива символьных векторов.
Если модель использует кодировку для категориальных переменных, то ExpandedPredictorNames содержит имена, описывающие развернутые переменные. В противном случае ExpandedPredictorNames является таким же, как PredictorNames.
Типы данных: cell
Gradient - Значения градиента в данных обученияЗначения градиента в обучающих данных, хранящиеся в виде числового вектора, содержащего 2n элементов, где n - количество наблюдений в обучающих данных.
Элемент i из Gradient содержит значение градиента для Alpha коэффициент, который соответствует верхней границе эпсилон-нечувствительной полосы при наблюдении i в конце оптимизации.
Элемент i + NumНаблюдения Gradient содержит значение градиента для Alpha коэффициент, который соответствует нижней границе эпсилон-нечувствительной полосы при наблюдении i в конце оптимизации.
Типы данных: single | double
HyperparameterOptimizationResults - Оптимизация гиперпараметров при перекрестной проверкеBayesianOptimization объект | таблицаЭто свойство доступно только для чтения.
Оптимизация гиперпараметров с перекрестной проверкой, указанная как BayesianOptimization объект или таблица гиперпараметров и связанных значений. Это свойство не является пустым, если 'OptimizeHyperparameters' аргумент пары «имя-значение» не является пустым при создании модели. Значение HyperparameterOptimizationResults зависит от настройки Optimizer в поле HyperparameterOptimizationOptions структура при создании модели.
Значение Optimizer Область | Значение HyperparameterOptimizationResults |
|---|---|
'bayesopt' (по умолчанию) | Объект класса BayesianOptimization |
'gridsearch' или 'randomsearch' | Таблица используемых гиперпараметров, наблюдаемые значения целевой функции (потеря перекрестной проверки) и ранг наблюдений от самого низкого (лучший) до самого высокого (худший) |
IsSupportVector - Флаг, указывающий, является ли наблюдение вектором поддержкиФлаг, указывающий, является ли наблюдение вектором поддержки, хранящимся как логический вектор n-by-1. n - количество наблюдений в X (см. NumObservations). Значение 1 указывает, что соответствующее наблюдение в обучающих данных является вектором поддержки.
При указании удаления дубликатов с помощью RemoveDuplicates, то для данного набора повторяющихся наблюдений, которые являются векторами поддержки, IsSupportVector помечает только один в качестве вектора поддержки.
Типы данных: logical
KernelParameters - Параметры функции ядраПараметры функции ядра, хранящиеся в виде структуры со следующими полями.
| Область | Описание |
|---|---|
Function
| Имя функции ядра (символьный вектор). |
Scale | Числовой масштабный коэффициент, используемый для деления значений предиктора. |
Можно указать значения для KernelParameters.Function и KernelParameters.Scale с помощью KernelFunction и KernelScale аргументы пары имя-значение в fitrsvmсоответственно.
Типы данных: struct
ModelParameters - Значения параметровЗначения параметров, используемые для обучения модели регрессии SVM, хранящиеся как объект параметра модели. Доступ к свойствам ModelParameters с использованием точечной нотации. Например, получить доступ к значению Epsilon используется для обучения модели в качестве Mdl.ModelParameters.Epsilon.
Mu - Предиктор означает'[]'Средство прогнозирования, хранящееся в виде вектора числовых значений.
Если предикторы стандартизированы, то Mu - числовой вектор длины p, где p - количество предикторов, используемых для обучения модели. В этом случае predict метод центрирует матрицу предиктора X вычитанием соответствующего элемента из Mu из каждого столбца.
Если предикторы не стандартизированы, то Mu пуст ('[]').
Если данные содержат категориальные предикторы, то Mu включает элементы для фиктивных переменных для этих предикторов. Соответствующие записи в Mu равны 0, поскольку фиктивные переменные не центрированы и не масштабированы.
Типы данных: single | double
NumIterations - количество итераций, необходимых для сходимости;Число итераций, необходимых подпрограмме оптимизации для достижения сходимости, сохраненное как положительное целое значение.
Чтобы задать ограничение на число итераций, используйте 'IterationLimit' аргумент пары имя-значение fitrsvm.
Типы данных: single | double
NumObservations - Количество наблюденийКоличество наблюдений в данных обучения, сохраненных как положительное целое значение.
Типы данных: single | double
PredictorNames - Имена предикторовИмена предикторов, хранящиеся как массив ячеек символьных векторов, содержащих имя каждого предиктора в порядке их появления в X. PredictorNames имеет длину, равную количеству столбцов в X.
Типы данных: cell
OutlierFraction - Ожидаемая доля отклоненийОжидаемая доля отклонений в обучающем наборе, сохраненная как скалярное значение в диапазоне [0,1]. Можно указать ожидаемую долю отклонений с помощью 'OutlierFraction' аргумент пары имя-значение в fitrsvm.
Типы данных: double
ResponseName - Имя переменной ответаИмя ответной переменной, хранящейся в виде символьного вектора.
Типы данных: char
ResponseTransform - Функция преобразования ответа'none' | дескриптор функцииФункция преобразования ответа, указанная как 'none' или дескриптор функции. ResponseTransform описывает, как программное обеспечение преобразует необработанные значения ответа.
Для определяемой функции MATLAB введите ее дескриптор. Например, можно ввести Mdl.ResponseTransform = @function, где function принимает числовой вектор исходных ответов и возвращает числовой вектор того же размера, содержащий преобразованные ответы.
Типы данных: char | function_handle
ShrinkagePeriod - количество итераций между сокращениями активного набора;Число итераций между сокращениями активного набора во время оптимизации, сохраненных как неотрицательное целое значение.
Можно задать период усадки с помощью 'ShrinkagePeriod' аргумент пары имя-значение в fitrsvm.
Типы данных: single | double
Sigma - Предикторные стандартные отклонения'[]'Предикторные стандартные отклонения, хранящиеся как вектор числовых значений.
Если предикторы стандартизированы, то Sigma - числовой вектор длины p, где p - количество предикторов, используемых для обучения модели. В этом случае predict метод масштабирует матрицу предиктора X делением каждого столбца на соответствующий элемент Sigma, после центрирования каждого элемента с использованием Mu.
Если предикторы не стандартизированы, то Sigma пуст ('[]').
Если данные содержат категориальные предикторы, Sigma включает элементы для фиктивных переменных для этих предикторов. Соответствующие записи в Sigma равны 1, поскольку фиктивные переменные не центрированы и не масштабированы.
Типы данных: single | double
Solver - Наименование алгоритма решателяИмя алгоритма решателя, используемого для решения задачи оптимизации, сохраненное как значение в этой таблице.
| Стоимость | Описание |
|---|---|
'SMO' | Последовательная минимальная оптимизация |
'ISDA' | Итеративный алгоритм одиночных данных |
'L1QP' | L1 минимизация мягких полей с помощью квадратичного программирования (требуется лицензия Optimization Toolbox™). |
SupportVectors - Векторы поддержкиПоддерживают векторы, хранящиеся в виде матрицы m-by-p числовых значений. m - число векторов поддержки (sum(Mdl.IsSupportVector)), и p - количество предикторов в X.
Если указано удаление дубликатов с помощью RemoveDuplicates, то для данного набора повторяющихся наблюдений, которые являются векторами поддержки, SupportVectors содержит один уникальный вектор поддержки.
Типы данных: single | double
W - Наблюдательные весаВеса наблюдений, используемые для обучения модели, хранящиеся в виде числового вектора, содержащего NumObservation количество элементов. fitrsvm нормализует веса, используемые для тренировок, таким образом, чтобы они равнялись 1.
Типы данных: single | double
X - Предикторные значенияПредикторные значения, используемые для обучения модели, хранятся в виде матрицы числовых значений, если модель обучена матрице, или таблицы, если модель обучена таблице. X имеет размер n-by-p, где n - количество строк, а p - число переменных предиктора или столбцов в обучающих данных.
Типы данных: single | double | table
Y - Наблюдаемые значения откликаНаблюдаемые значения ответа, хранящиеся в виде числового вектора, содержащего NumObservations количество элементов.
Типы данных: single | double
compact | Компактная опорная векторная модель регрессии машины |
crossval | Перекрестно проверенная модель машинной регрессии вектора поддержки |
discardSupportVectors | Отбросить векторы поддержки |
incrementalLearner | Преобразование регрессионной модели вспомогательной векторной машины (SVM) в инкрементную модель ученика |
lime | Локальные интерпретируемые модели-агностические объяснения (LIME) |
loss | Ошибка регрессии для модели регрессии машины опорных векторов |
partialDependence | Вычислить частичную зависимость |
plotPartialDependence | Создание графиков частичной зависимости (PDP) и индивидуального условного ожидания (ICE) |
predict | Прогнозирование откликов с использованием модели опорной векторной машинной регрессии |
resubLoss | Потеря повторного замещения для модели регрессии машины опорных векторов |
resubPredict | Прогнозировать отклик на повторное замещение модели регрессии машины вектора поддержки |
resume | Возобновить модель регрессии вектора поддержки обучения |
shapley | Значения Шапли |
Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.
В этом примере показано, как обучить регрессионную модель линейного вектора поддержки (SVM), используя данные выборки, хранящиеся в матрицах.
Загрузить carsmall набор данных.
load carsmall rng default % for reproducibility
Определить Horsepower и Weight в качестве переменных предиктора (X) и MPG в качестве переменной ответа (Y).
X = [Horsepower,Weight]; Y = MPG;
Обучение модели линейной регрессии SVM.
Mdl = fitrsvm(X,Y)
Mdl =
RegressionSVM
ResponseName: 'Y'
CategoricalPredictors: []
ResponseTransform: 'none'
Alpha: [75x1 double]
Bias: 57.3958
KernelParameters: [1x1 struct]
NumObservations: 93
BoxConstraints: [93x1 double]
ConvergenceInfo: [1x1 struct]
IsSupportVector: [93x1 logical]
Solver: 'SMO'
Properties, Methods
Окно команд показывает, что Mdl является обученным RegressionSVM модель и список ее свойств.
Проверьте модель на сходимость.
Mdl.ConvergenceInfo.Converged
ans = logical
0
0 указывает, что модель не сходилась.
MdlStd = fitrsvm(X,Y,'Standardize',true)MdlStd =
RegressionSVM
ResponseName: 'Y'
CategoricalPredictors: []
ResponseTransform: 'none'
Alpha: [77x1 double]
Bias: 22.9131
KernelParameters: [1x1 struct]
Mu: [109.3441 2.9625e+03]
Sigma: [45.3545 805.9668]
NumObservations: 93
BoxConstraints: [93x1 double]
ConvergenceInfo: [1x1 struct]
IsSupportVector: [93x1 logical]
Solver: 'SMO'
Properties, Methods
Проверьте модель на сходимость.
MdlStd.ConvergenceInfo.Converged
ans = logical
1
1 указывает, что модель действительно сошлась.
Вычислите среднеквадратическую ошибку повторного замещения для новой модели.
lStd = resubLoss(MdlStd)
lStd = 17.0256
Обучение модели регрессии машины с вектором поддержки с использованием данных abalone из репозитория машинного обучения UCI.
Загрузите данные и сохраните их в текущей папке с именем 'abalone.csv'.
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'; websave('abalone.csv',url);
Считывайте данные в таблицу. Укажите имена переменных.
varnames = {'Sex'; 'Length'; 'Diameter'; 'Height'; 'Whole_weight';...
'Shucked_weight'; 'Viscera_weight'; 'Shell_weight'; 'Rings'};
Tbl = readtable('abalone.csv','Filetype','text','ReadVariableNames',false);
Tbl.Properties.VariableNames = varnames;
Данные выборки содержат 4177 наблюдений. Все переменные предиктора непрерывны, за исключением Sex, которая является категориальной переменной с возможными значениями 'M' (для мужчин), 'F' (для женщин), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество колец (сохраненных в Rings) на абалоне и определить его возраст с помощью физических измерений.
Обучение модели регрессии SVM с использованием гауссовой функции ядра с автоматическим масштабом ядра. Стандартизация данных.
rng default % For reproducibility Mdl = fitrsvm(Tbl,'Rings','KernelFunction','gaussian','KernelScale','auto',... 'Standardize',true)
Mdl =
RegressionSVM
PredictorNames: {1×8 cell}
ResponseName: 'Rings'
CategoricalPredictors: 1
ResponseTransform: 'none'
Alpha: [3635×1 double]
Bias: 10.8144
KernelParameters: [1×1 struct]
Mu: [1×10 double]
Sigma: [1×10 double]
NumObservations: 4177
BoxConstraints: [4177×1 double]
ConvergenceInfo: [1×1 struct]
IsSupportVector: [4177×1 logical]
Solver: 'SMO'
Окно команд показывает, что Mdl является обученным RegressionSVM и отображает список свойств.
Отображение свойств Mdl с использованием точечной нотации. Например, проверьте, сходилась ли модель и сколько итераций она выполнила.
conv = Mdl.ConvergenceInfo.Converged iter = Mdl.NumIterations
conv =
logical
1
iter =
2759
Возвращенные результаты показывают, что модель сошлась после 2759 итераций.
[1] Нэш, У. Джей, Т. Л. Селлерс, С. Р. Толбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (вид Haliotis) в Тасмании. И. Блэклип Абалоне (Х. рубра) с Северного побережья и островов Бассова пролива ". Отдел морского рыболовства, Технический доклад № 48, 1994 год.
[2] Во, С. «Расширение и сравнительный анализ каскадной корреляции: расширение каскадно-корреляционной архитектуры и сравнительный анализ искусственных нейронных сетей, находящихся под контролем Feed-Forward». Факультет компьютерных наук Тасманийского университета, 1995 год.
[3] Кларк, Д., З. Шретер, А. Адамс. «A Quantificative Comparison of Dystal and Backpropagation» («Количественное сравнение кристалла и обратного распространения»), представленный Австралийской конференции по нейронным сетям, 1996 год.
[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорния: Калифорнийский университет, Школа информации и компьютерных наук.
Примечания и ограничения по использованию:
Чтобы интегрировать прогнозирование модели регрессии SVM в Simulink ®, можно использовать блок прогнозирования RegingSVM в библиотеке Toolbox™ статистики и машинного обучения или блок функции MATLAB с помощью predict функция.
При обучении модели регрессии SVM с помощью fitrsvm, применяются следующие ограничения.
Значение 'ResponseTransform' аргумент пары имя-значение должен быть 'none' (по умолчанию).
Для создания кода с фиксированной точкой значение 'KernelFunction' аргумент пары имя-значение должен быть 'gaussian', 'linear', или 'polynomial'.
Генерация кода с фиксированной точкой и генерация кода с помощью конфигуратора кодера не поддерживают категориальные предикторы (logical, categorical, char, string, или cell). Вы не можете использовать 'CategoricalPredictors' аргумент «имя-значение».
Чтобы включить категориальные предикторы в модель, выполните их предварительную обработку с помощью dummyvar перед подгонкой модели.
Дополнительные сведения см. в разделе Введение в создание кода.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.