exponenta event banner

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 ® или функции введите ее дескриптор. Например, можно ввести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) в Тасмании. И. Блэклип Абалоне (Х. рубра) с Северного побережья и островов Бассова пролива ". Отдел морского рыболовства, Технический доклад № 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