RegressionSVM class

Суперклассы: CompactRegressionSVM

Машина опорных векторов

Описание

RegressionSVM является машина опорных векторов регрессионной моделью (SVM). Обучите RegressionSVM модель с использованием fitrsvm и выборочные данные.

RegressionSVM модели сохраняют данные, значения параметров, векторы поддержки и информацию алгоритмической реализации. Можно использовать эти модели для:

  • Оцените предсказания реституции. Для получения дополнительной информации смотрите resubPredict.

  • Спрогнозируйте значения для новых данных. Для получения дополнительной информации смотрите predict.

  • Вычислите потери на реституцию. Для получения дополнительной информации смотрите resubLoss.

  • Вычислите среднюю квадратную ошибку или нечувствительные к эпсилону потери. Для получения дополнительной информации смотрите loss.

Конструкция

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

Свойства

расширить все

Двойственные коэффициенты задачи, заданные как вектор числовых значений. Alpha содержит m элементов, где m - количество поддержки векторов в обученной регрессионой модели SVM. Двойственная задача вводит два множителя Лагранжа для каждого вектора поддержки. Значения Alpha являются различиями между двумя предполагаемыми множителями Лагранжа для поддерживающих векторов. Для получения дополнительной информации смотрите Понимание Машины опорных векторов регрессия.

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

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

Основные линейные коэффициенты задачи, сохраненные как числовой вектор длины p, где p - количество предикторов в регрессионой модели SVM.

Значения в Beta являются линейными коэффициентами для основной задачи оптимизации.

Если модель получена с помощью функции ядра, отличной от 'linear', это свойство пустое ('[]').

The predict метод вычисляет предсказанные значения отклика для модели как YFIT = (X/S)×Beta + Bias, где S - значение шкалы ядра, сохраненное в KernelParameters.Scale свойство.

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

Термин смещения в регрессионной модели SVM, сохраненный в виде скалярного значения.

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

Прямоугольные ограничения для двойственных альфа-коэффициентов задачи, сохраненные как числовой вектор, содержащий n элементы, где n количество наблюдений в X (Mdl.NumObservations).

Абсолютное значение двойственного коэффициента Alpha для наблюдения i не может превышать BoxConstraints(i).

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

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

Информация о кэшировании, сохраненная как структура со следующими полями.

ОбластьОписание
'Size'Положительное скалярное значение, указывающее размер кэша (в МБ), который программное обеспечение резервирует для хранения записей матрицы Gram. Установите размер кэша при помощи 'CacheSize' аргумент пары "имя-значение" в fitrsvm.
'Algorithm'Вектор символов, содержащий имя алгоритма, используемого для удаления записей из кэша при превышении его емкости. В настоящее время единственным доступным алгоритмом кэширования является 'Queue'. Вы не можете задать алгоритм кэширования.

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

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

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

Информация о сходимости, сохраненная как структура со следующими полями.

ОбластьОписание
ConvergedЛогический флаг, указывающий, сходился ли алгоритм. Значение 1 указывает на сходимость.
ReasonForConvergenceВектор символов, указывающий критерий, используемый программным обеспечением для обнаружения сходимости.
GapСкалярная погрешность осуществимости между двойственной и основной целевыми функциями.
GapToleranceСкалярный допуск для погрешности выполнимости. Вы можете задать этот допуск с помощью 'GapTolerance' аргумент пары "имя-значение" в fitrsvm.
DeltaGradientСкалярное различие градиентов между верхним и нижним нарушителями.
DeltaGradientToleranceСкалярный допуск для различия градиентов. Вы можете задать этот допуск с помощью DeltaGradientTolerance аргумент пары "имя-значение" в fitrsvm.
LargestKKTViolationМаксимальный скаляр нарушения Каруша-Куна-Такера (KKT).
KKTToleranceСкалярный допуск для наибольшего нарушения KKT. Вы можете задать этот допуск с помощью 'KKTTolerance' аргумент пары "имя-значение" в fitrsvm.
History

Структура, содержащая информацию о сходимости, записанную через периодические интервалы во время процесса обучения модели. Эта структура содержит следующие поля:

  • NumIterations - Массив индексов итерации, при которых программное обеспечение записало критерии сходимости.

  • GapGap значения в этих итерациях.

  • DeltaGradientDeltaGradient значения в этих итерациях.

  • LargestKKTViolationLargestKKTViolation значения в этих итерациях.

  • NumSupportVectors - Количество поддерживающих векторов в этих итерациях.

  • ObjectiveObjective значения в этих итерациях.

ObjectiveЧисловое значение двойственной цели.

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

Половина ширины эпсилонно-нечувствительной полосы, сохраненная как неотрицательное скалярное значение.

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

Расширенные имена предикторов, сохраненные как массив ячеек из векторов символов.

Если модель использует кодировку для категориальных переменных, то ExpandedPredictorNames включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames то же, что и PredictorNames.

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

Значения градиента в обучающих данных, сохраненные как числовой вектор, содержащий 2 n элемента, где n количество наблюдений в обучающих данных.

Элементный i Gradient содержит значение градиента для Alpha коэффициент, который соответствует верхнему контуру эпсилонно-нечувствительной полосы при наблюдении i в конце оптимизации.

Элементный i + NumObservations Gradient содержит значение градиента для Alpha коэффициент, который соответствует нижнему контуру эпсилонно-нечувствительной полосы при наблюдении i в конце оптимизации.

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

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

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

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

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

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

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

Параметры функции ядра, сохраненные как структура со следующими полями.

ОбластьОписание
Function Имя функции ядра (a вектора символов).
ScaleЧисленный масштабный коэффициент, используемый для деления значений предиктора.

Можно задать значения для KernelParameters.Function и KernelParameters.Scale при помощи KernelFunction и KernelScale аргументы пары "имя-значение" в fitrsvm, соответственно.

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

Значения параметров, используемые для обучения регрессионой модели SVM, хранятся как объект параметра модели. Доступ к свойствам ModelParameters использование записи через точку. Для примера получите доступ к значению Epsilon используется для обучения модели следующим Mdl.ModelParameters.Epsilon.

Предиктор означает, сохраненный как вектор числовых значений.

Если предикторы стандартизированы, то Mu является числовым вектором длины p, где p - количество предикторов, используемых для обучения модели. В этом случае predict матрица предикторов центров методов X путем вычитания соответствующего элемента Mu из каждого столбца.

Если предикторы не стандартизированы, то Mu пуст ('[]').

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

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

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

Чтобы установить предел на количество итераций, используйте 'IterationLimit' Аргумент пары "имя-значение" из fitrsvm.

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

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

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

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

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

Ожидаемая доля выбросов в набор обучающих данных, сохраненная в виде скалярного значения в область значений [0,1]. Можно задать ожидаемую долю выбросов с помощью 'OutlierFraction' аргумент пары "имя-значение" в fitrsvm.

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

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

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

Функция преобразования отклика, заданная как 'none' или указатель на функцию. ResponseTransform описывает, как программное обеспечение преобразует значения необработанного отклика.

Для функции MATLAB или функции, которую вы задаете, введите указатель на функцию. Для примера можно ввести Mdl.ResponseTransform = @function, где function принимает числовой вектор исходных откликов и возвращает числовой вектор того же размера, содержащий преобразованные отклики.

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

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

Период усадки можно задать при помощи 'ShrinkagePeriod' аргумент пары "имя-значение" в fitrsvm.

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

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

Если предикторы стандартизированы, то Sigma является числовым вектором длины p, где p - количество предикторов, используемых для обучения модели. В этом случае predict метод масштабирует матрицу предиктора X путем деления каждого столбца на соответствующий элемент Sigma, после центрирования каждого элемента с помощью Mu.

Если предикторы не стандартизированы, то Sigma пуст ('[]').

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

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

Имя алгоритма решателя, используемого для решения задачи оптимизации, сохраненное как значение в этой таблице.

ЗначениеОписание
'SMO'Последовательная минимальная оптимизация
'ISDA'Итерационный алгоритм единичных данных
'L1QP'L1 минимизацию мягкого запаса путем квадратичного программирования (требует лицензии Optimization Toolbox™).

Поддерживающие векторы, сохраненные как m -by - p матрица числовых значений. m - количество векторов поддержки (sum(Mdl.IsSupportVector)), и p количество предикторов в X.

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

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

Веса наблюдений, используемые для обучения модели, сохраняются как числовой вектор, содержащий NumObservation количество элементов. fitrsvm нормализует веса, используемые для обучения, так, чтобы их сумма равнялась 1.

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

Предикторные значения, используемые для обучения модели, хранятся в виде матрицы числовых значений, если модель обучена на матрице, или таблицы, если модель обучена на таблице. X имеет размер n -by - p, где n - количество строк, а p - количество переменных предиктора или столбцов в обучающих данных.

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

Наблюдаемые значения отклика, сохраненные как числовой вектор, содержащий NumObservations количество элементов.

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

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

compactКомпактная машина опорных векторов
crossvalПерекрестная проверенная модель регрессии машины опорных векторов
discardSupportVectorsСбросьте поддерживающие векторы
incrementalLearnerПреобразуйте машину опорных векторов (SVM) регрессионую модель в инкрементальную обучающуюся
limeЛокальные интерпретируемые модели-агностические объяснения (LIME)
lossОшибка регрессии для модели регрессии машины опорных векторов
partialDependenceВычисление частичной зависимости
plotPartialDependenceСоздайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE)
predictСпрогнозируйте ответы, используя модель машины опорных векторов
resubLossРеституционные потери для модели регрессии машины опорных векторов
resubPredictПредсказать ответ реституции модели регрессии машины опорных векторов
resumeВозобновите обучение машины опорных векторов регрессионую модель
shapleyЗначения 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) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.

[2] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.

[3] Кларк, Д., З. Шретер, А. Адамс. «A Quantitative Comparison of Dystal and Backpropagation». представлено на Австралийской конференции по нейронным сетям, 1996.

[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорнийский университет, Школа информации и компьютерных наук.

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

.
Введенный в R2015b