RegressionPartitionedSVM

Пакет: classreg.learning.partition
Суперклассы: RegressionPartitionedModel

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

Описание

RegressionPartitionedSVM - набор машины опорных векторов регрессионных моделей (SVM), обученных на перекрестно проверенных складках.

Конструкция

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

CVMdl = crossval(mdl,Name,Value) возвращает перекрестно проверенную модель с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Name может также быть именем свойства и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

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

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

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

Свойства

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

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

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

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

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

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

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

Параметры перекрестной валидации, сохраненные как объект.

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

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

Раздел данных для перекрестной проверки, сохраненный как cvpartition объект.

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

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

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

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

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

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

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

Обученные, компактные регрессионые модели, сохраненные как массив ячеек CompactRegressionSVM модели.

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

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

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

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

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

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

Каждая строка Y представляет наблюдаемую классификацию соответствующей строки X.

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

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

kfoldLossПотеря для перекрестно проверенной секционированной регрессионой модели
kfoldPredictПрогнозируйте ответы на наблюдения в перекрестно проверенной регрессионой модели
kfoldfunПерекрестная проверка функции для регрессии

Примеры

свернуть все

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

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

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

В выборочные данные содержится 4177 наблюдений. Все переменные предиктора непрерывны, за исключением 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. Случайным образом разделяет данные на десять наборов одинаковых размеров.

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

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

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

Отобразите первую из 10 обученных моделей.

FirstModel = CVMdl.Trained{1}
FirstModel = 

  classreg.learning.regr.CompactRegressionSVM
       PredictorNames: {1x8 cell}
         ResponseName: 'Var9'
    ResponseTransform: 'none'
                Alpha: [3553x1 double]
                 Bias: 11.0623
     KernelParameters: [1x1 struct]
                   Mu: [0 0 0 0.5242 0.4080 0.1393 0.8300 0.3599 0.1811 0.2392]
                Sigma: [1 1 1 0.1205 0.0995 0.0392 0.4907 0.2217 0.1103 0.1392]
       SupportVectors: [3553x10 double]


  Properties, Methods

FirstModel является первым из 10 обученных CompactRegressionSVM модели.

В этом примере показано, как задать пропорцию удержания для настройки перекрестной проверенной регрессионой модели SVM.

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

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

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

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

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale',2.2,'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 объект модели.

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

CVMdl.Trained{1}
TrainedModel = 

  classreg.learning.regr.CompactRegressionSVM
       PredictorNames: {1x8 cell}
         ResponseName: 'Var9'
    ResponseTransform: 'none'
                Alpha: [3530x1 double]
                 Bias: 11.2646
     KernelParameters: [1x1 struct]
                   Mu: [0 0 0 0.5244 0.4080 0.1393 0.8282 0.3595 0.1805 0.2386]
                Sigma: [1 1 1 0.1198 0.0989 0.0388 0.4891 0.2218 0.1093 0.1390]
       SupportVectors: [3530x10 double]


  Properties, Methods

TrainedModel является CompactRegressionSVM регрессионная модель, которая была обучена с использованием 90% данных.

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

Можно создать RegressionPartitionedSVM моделировать используя следующие методы:

  • Используйте функцию обучения fitrsvm и укажите одно из 'CrossVal', 'Holdout', 'KFold', или 'Leaveout' Пары "имя-значение".

  • Обучите модель, используя fitrsvm, затем перекрестно проверьте модель с помощью crossval способ.

  • Создайте раздел перекрестной валидации с помощью cvpartition, затем передайте полученный объект раздела в fitrsvm во время обучения с использованием 'CVPartition' Пара "имя-значение".

Ссылки

[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