exponenta event banner

Класс RegingSVM

Суперклассы: 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', это свойство пустое ('[]').

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Скалярный допуск для наибольшего нарушения ККТ. Этот допуск можно задать с помощью 'KKTTolerance' аргумент пары имя-значение в fitrsvm.
History

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

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

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

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

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

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

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

ObjectiveЧисловое значение двойного объекта.

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

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

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

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

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

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

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

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

Элемент i + NumНаблюдения 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 помечает только один в качестве вектора поддержки.

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

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

ОбластьОписание
Function Имя функции ядра (символьный вектор).
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Значения Шапли

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

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

В этом примере показано, как обучить регрессионную модель линейного вектора поддержки (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]. Ирвин, Калифорния: Калифорнийский университет, Школа информации и компьютерных наук.

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

.
Представлен в R2015b