RegressionSVM class

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

Модель регрессии машины опорных векторов

Описание

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

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

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

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

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

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

Конструкция

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

Свойства

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

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

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

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

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

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

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

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'Значение положительной скалярной величины, указывающее на размер кэша (в Мбайте), который программное обеспечение резервирует, чтобы сохранить записи матрицы Грамма. Установите размер кэша при помощи 'CacheSize' аргумент пары "имя-значение" в fitrsvm.
'Algorithm'Вектор символов, содержащий имя алгоритма, используемого, чтобы удалить записи из кэша, когда его способность превышена. В настоящее время единственным доступным алгоритмом кэширования является 'Queue'. Вы не можете установить алгоритм кэширования.

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

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

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

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

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

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

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

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

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

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

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

  • Objective Цель значения в этих итерациях.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если предикторы не стандартизированы, то Mu isempty).

Если данные содержат категориальные предикторы, то 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 isempty).

Если данные содержат категориальные предикторы, 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

Методы

компактныйКомпактная модель регрессии машины опорных векторов
crossvalПерекрестная подтвержденная модель регрессии машины опорных векторов
resubLossПотеря перезамены для модели регрессии машины опорных векторов
resubPredictПредскажите ответ перезамены модели регрессии машины опорных векторов
резюмеВозобновите учебную модель регрессии машины опорных векторов

Унаследованные методы

discardSupportVectorsОтбросьте векторы поддержки
потеряОшибка регрессии для модели регрессии машины опорных векторов
предсказатьПредскажите ответы с помощью модели регрессии машины опорных векторов

Копировать семантику

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

В этом примере показано, как обучить линейную модель регрессии машины опорных векторов (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: [76x1 double]
                     Bias: 43.1920
         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

Обучите модель регрессии машины опорных векторов использование данных о морском ушке из Репозитория Машинного обучения 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;

Выборочные данные содержат 4 177 наблюдений. Все переменные предикторы непрерывны за исключением 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

Возвращенные результаты показывают, что модель сходилась после 2 759 итераций.

Ссылки

[1] Нэш, W.J., Т. Л. Селлерс, С. Р. Тэлбот, А. Дж. Которн и В. Б. Форд. Биология Населения Морского ушка (разновидности Haliotis) на Тасмании. I. Морское ушко Blacklip (H. rubra) от Северного Побережья и Островов Пролива Басса, Морского Деления Рыболовства, Технического отчета № 48, 1994.

[2] Во, S. Расширяя и Каскадная Корреляция сравнительного тестирования, кандидатская диссертация, Кафедра информатики, Университет Тасмании, 1995.

[3] Кларк, D., З. Шретер, А. Адамс. Количественное Сравнение Dystal и Backpropagation, представленного австралийской Конференции по Нейронным сетям, 1996.

[4] Личмен, M. Репозиторий Машинного обучения UCI, [http://archive.ics.uci.edu/ml]. Ирвин, CA: Калифорнийский университет, Школа Информатики и вычислительной техники.

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

Введенный в R2015b