crossval

Класс: RegressionSVM

Перекрестная подтвержденная модель регрессии машины вектора поддержки

Синтаксис

CVMdl = crossval(mdl)
CVMdl = crossval(mdl,Name,Value)

Описание

CVMdl = crossval(mdl) возвращает перекрестную подтвержденную (разделенную) модель регрессии машины вектора поддержки, CVMdl, из обученной модели регрессии SVM, mdl.

CVMdl = crossval(mdl,Name,Value) возвращает перекрестную подтвержденную модель с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Входные параметры

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

Полная, обученная модель регрессии SVM, заданная как модель RegressionSVM, возвращенная fitrsvm.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Раздел перекрестной проверки, заданный как пара, разделенная запятой, состоящая из 'CVPartition' и объекта раздела cvpartition, создается cvpartition. Объект раздела задает тип перекрестной проверки и индексации для наборов обучения и валидации.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.

Пример: Предположим, что вы создаете случайный раздел для 5-кратной перекрестной проверки на 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5). Затем можно задать перекрестную подтвержденную модель при помощи 'CVPartition',cvp.

Часть данных используется для валидации затяжки, заданной как пара, разделенная запятой, состоящая из 'Holdout' и скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p, то программное обеспечение завершает эти шаги:

  1. Случайным образом выберите и зарезервируйте % p*100 данных как данные о валидации и обучите модель с помощью остальной части данных.

  2. Сохраните компактную, обученную модель в свойстве Trained перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.

Пример: 'Holdout',0.1

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

Количество сгибов, чтобы использовать в перекрестной подтвержденной модели, заданной как пара, разделенная запятой, состоящая из 'KFold' и положительного целочисленного значения, больше, чем 1. Если вы задаете 'KFold',k, то программное обеспечение завершает эти шаги:

  1. Случайным образом разделите данные в наборы k.

  2. Для каждого набора зарезервируйте набор как данные о валидации и обучите модель с помощью другого k – 1 набор.

  3. Сохраните k компактные, обученные модели в ячейках k-by-1 вектор ячейки в свойстве Trained перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.

Пример: 'KFold',5

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

Флаг перекрестной проверки "Пропускает один", заданный как пара, разделенная запятой, состоящая из 'Leaveout' и 'on' или 'off'. Если вы задаете 'Leaveout','on', то, для каждого из наблюдений n (где n является количеством наблюдений, исключая недостающие наблюдения, заданные в свойстве NumObservations модели), программное обеспечение завершает эти шаги:

  1. Зарезервируйте наблюдение как данные о валидации и обучите модель с помощью другого n – 1 наблюдение.

  2. Сохраните n компактные, обученные модели в ячейках n-by-1 вектор ячейки в свойстве Trained перекрестной подтвержденной модели.

Чтобы создать перекрестную подтвержденную модель, можно использовать один из этих четырех аргументов пары "имя-значение" только: CVPartition, Holdout, KFold или Leaveout.

Пример: 'Leaveout','on'

Выходные аргументы

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

Перекрестная подтвержденная модель регрессии SVM, возвращенная как модель RegressionPartitionedSVM.

Примеры

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

Этот пример показывает, как обучить перекрестную подтвержденную модель регрессии SVM использование crossval.

Этот пример использует данные о морском ушке из Репозитория Машинного обучения UCI. Загрузите данные и сохраните их в вашей текущей папке с именем 'abalone.data'. Считайте данные в table.

tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);
rng default  % for reproducibility

Выборочные данные содержат 4 177 наблюдений. Все переменные прогноза непрерывны за исключением sex, который является категориальной переменной с возможными значениями 'M' (для штекеров), 'F' (для розеток), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество звонков на морском ушке и определить его возраст с помощью физических измерений.

Обучите модель регрессии SVM, с помощью Гауссовой функции ядра со шкалой ядра, равной 2,2. Стандартизируйте данные.

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale',2.2,'Standardize',true);

mdl является обученной моделью регрессии RegressionSVM.

Крест подтверждает модель с помощью 10-кратной перекрестной проверки.

CVMdl = crossval(mdl)
CVMdl = 

  classreg.learning.partition.RegressionPartitionedSVM
      CrossValidatedModel: 'SVM'
           PredictorNames: {1x8 cell}
    CategoricalPredictors: 1
             ResponseName: 'Var9'
          NumObservations: 4177
                    KFold: 10
                Partition: [1x1 cvpartition]
        ResponseTransform: 'none'


  Properties, Methods

CVMdl является RegressionPartitionedSVM перекрестная подтвержденная модель регрессии. Программное обеспечение:

1. Случайным образом делит данные в 10 одинаково размерных наборов.

2. Обучает модель регрессии SVM на девяти из 10 наборов.

3. Шаги 1 и 2 повторений k = 10 раз. Это не учитывает один из разделов каждый раз и обучается на других девяти разделах.

4. Статистика обобщения объединений для каждого сгиба.

Вычислите потерю перезамены для перекрестной подтвержденной модели.

loss = kfoldLoss(CVMdl)
loss =

    4.5712

Этот пример показывает, как задать пропорцию затяжки для обучения перекрестная подтвержденная модель регрессии SVM.

Этот пример использует данные о морском ушке из Репозитория Машинного обучения UCI. Загрузите данные и сохраните их в вашей текущей папке с именем 'abalone.data'. Считайте данные в table.

tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);
rng default  % for reproducibility

Выборочные данные содержат 4 177 наблюдений. Все переменные прогноза непрерывны за исключением sex, который является категориальной переменной с возможными значениями 'M' (для штекеров), 'F' (для розеток), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество звонков на морском ушке и определить его возраст с помощью физических измерений.

Обучите модель регрессии SVM, с помощью Гауссовой функции ядра с автоматической шкалой ядра. Стандартизируйте данные.

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale','auto','Standardize',true);

mdl является обученной моделью регрессии RegressionSVM.

Крест подтверждает модель регрессии путем определения 10%-й выборки затяжки.

CVMdl = crossval(mdl,'Holdout',0.1)
CVMdl = 

  classreg.learning.partition.RegressionPartitionedSVM
      CrossValidatedModel: 'SVM'
           PredictorNames: {1x8 cell}
    CategoricalPredictors: 1
             ResponseName: 'Var9'
          NumObservations: 4177
                    KFold: 1
                Partition: [1x1 cvpartition]
        ResponseTransform: 'none'


  Properties, Methods

CVMdl является объектом модели RegressionPartitionedSVM.

Вычислите потерю перезамены для перекрестной подтвержденной модели.

loss = kfoldLoss(CVMdl)
loss =

    5.2499

Альтернативы

Вместо обучения модель регрессии SVM и затем перекрестная проверка его, можно создать перекрестную подтвержденную модель непосредственно при помощи fitrsvm и задающий любой из этих аргументов пары "имя-значение": 'CrossVal', 'CVPartition', 'Holdout', 'Leaveout' или 'KFold'.

Ссылки

[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