Суперклассы: CompactRegressionSVM
Поддержите векторную модель регрессии машины
RegressionSVM
является моделью регрессии машины вектора поддержки (SVM). Обучите модель RegressionSVM
с помощью fitrsvm
и выборочных данных.
Модели RegressionSVM
хранят данные, значения параметров, поддерживают векторы и алгоритмическую информацию о реализации. Можно использовать эти модели для:
Оцените прогнозы перезамены. Для получения дополнительной информации смотрите resubPredict
.
Предскажите значения для новых данных. Для получения дополнительной информации смотрите predict
.
Вычислите потерю перезамены. Для получения дополнительной информации смотрите resubLoss
.
Вычислите среднеквадратичную погрешность или нечувствительную к эпсилону потерю. Для получения дополнительной информации смотрите loss
.
Создайте объект RegressionSVM
при помощи fitrsvm
.
\alpha
Двойные проблемные коэффициентыДвойные проблемные коэффициенты, заданные как вектор числовых значений. Alpha
содержит элементы m, где m является количеством векторов поддержки в обученной модели регрессии SVM. Двойная проблема вводит два множителя Лагранжа для каждого вектора поддержки. Значения Alpha
являются различиями между двумя предполагаемыми множителями Лагранжа для векторов поддержки. Для получения дополнительной информации смотрите Регрессию Машины Вектора Поддержки Понимания.
Если вы задали, чтобы удалить копии с помощью RemoveDuplicates
, то, для определенного набора дублирующихся наблюдений, которые являются векторами поддержки, Alpha
содержит один коэффициент, соответствующий целому набору. That is, 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' | Значение положительной скалярной величины, указывающее на размер кэша (в Мбайте), который программное обеспечение резервирует, чтобы сохранить записи матрицы Грамма. Установите размер кэша при помощи аргумента пары "имя-значение" 'CacheSize' в fitrsvm . |
'Algorithm' | Вектор символов, содержащий имя алгоритма, используемого, чтобы удалить записи из кэша, когда его способность превышена. В настоящее время единственным доступным алгоритмом кэширования является 'Queue' . Вы не можете установить алгоритм кэширования. |
Типы данных: struct
CategoricalPredictors
— Индексы категориальных предикторовКатегориальные индексы предиктора, заданные как вектор положительных целых чисел. CategoricalPredictors
содержит индексные значения, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]
).
Типы данных: single | double
ConvergenceInfo
— Информация о сходимостиИнформация сходимости, хранившая как структура со следующими полями.
Поле | Описание |
---|---|
Converged | Логический флаг, указывающий, сходился ли алгоритм. Значение 1 указывает на сходимость. |
ReasonForConvergence | Вектор символов, указывающий на критерий программное обеспечение раньше, обнаруживал сходимость. |
Gap | Скалярный разрыв выполнимости между двойными и основными целевыми функциями. |
GapTolerance | Скалярный допуск к разрыву выполнимости. Можно установить этот допуск с помощью аргумента пары "имя-значение" 'GapTolerance' в fitrsvm . |
DeltaGradient | Скалярное различие в градиенте между верхними и более низкими нарушителями. |
DeltaGradientTolerance | Скалярный допуск к различию в градиенте. Можно установить этот допуск с помощью аргумента пары "имя-значение" DeltaGradientTolerance в fitrsvm . |
LargestKKTViolation | Максимальное скалярное значение нарушения Karush-Kuhn-Tucker (KKT). |
KKTTolerance | Скалярный допуск к самому большому нарушению KKT. Можно установить этот допуск с помощью аргумента пары "имя-значение" 'KKTTolerance' в fitrsvm . |
History | Структура, содержащая информацию о сходимости, зарегистрирована в периодических интервалах во время образцового учебного процесса. Эта структура содержит следующие поля:
|
Objective | Числовое значение двойной цели. |
Типы данных: struct
\epsilon
Половина ширины нечувствительной к эпсилону полосыПоловина ширины нечувствительной к эпсилону полосы, сохраненной как неотрицательное скалярное значение.
Типы данных: single | double
ExpandedPredictorNames
— Расширенные имена предиктораРасширенные имена предиктора, сохраненные как массив ячеек из символьных векторов.
Если образцовое кодирование использования для категориальных переменных, то ExpandedPredictorNames
включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames
совпадает с PredictorNames
.
Типы данных: cell
Градиент
Значения градиента в данных тренировкиЗначения градиента в данных тренировки, хранимых как числовой вектор, содержащий 2n элементы, где n является количеством наблюдений в данных тренировки.
i элемента Gradient
содержит значение градиента для коэффициента Alpha
, который соответствует верхнему контуру нечувствительной к эпсилону полосы при наблюдении i в конце оптимизации.
i + NumObservations элемента 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
отмечает только один как вектор поддержки.
Типы данных: логический
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
компактный | Компактная модель регрессии машины вектора поддержки |
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: Калифорнийский университет, школа информатики и вычислительной техники.
Указания и ограничения по применению:
Когда вы обучаете модель регрессии SVM при помощи fitrsvm
, следующие ограничения применяются.
Генерация кода не поддерживает категориальные предикторы. Вы не можете снабдить данными тренировки в таблице, которая содержит логический вектор, символьный массив, категориальный массив, массив строк или массив ячеек из символьных векторов. Кроме того, вы не можете использовать аргумент пары "имя-значение" 'CategoricalPredictors'
.
Чтобы включать категориальные предикторы в модель, предварительно обработайте категориальные предикторы при помощи dummyvar
прежде, чем соответствовать модели.
Значение аргумента пары "имя-значение" 'ResponseTransform'
не может быть анонимной функцией.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
CompactRegressionSVM
| RegressionPartitionedSVM
| fitrsvm
| plotPartialDependence
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.