RegressionPartitionedKernel

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

Описание

RegressionPartitionedKernel - набор регрессионных моделей ядра, обученный на перекрестно проверенных складках. Чтобы получить перекрестно проверенную регрессионую модель ядра, используйте fitrkernel и укажите один из опций перекрестной проверки. Можно оценить прогнозирующее качество модели или как хорошо обобщается линейная регрессионая модель, используя один или несколько из этих методов «kfold»: kfoldPredict и kfoldLoss.

Каждый метод «kfold» использует модели, обученные на наблюдениях с складкой обучения, чтобы предсказать ответ для наблюдений с складкой валидации. Например, предположим, что вы перекрестно проверяете с помощью пяти складок. В этом случае программное обеспечение случайным образом присваивает каждое наблюдение пяти группам равного размера (примерно). training fold содержит четыре группы (то есть примерно 4/5 данных), а validation fold - другую группу (то есть примерно 1/5 данных). В этом случае перекрестная валидация выполняется следующим образом:

  1. Программное обеспечение обучает первую модель (хранится в CVMdl.Trained{1}) использование наблюдений в последних четырех группах и резервирует наблюдения в первой группе для валидации.

  2. Программное обеспечение обучает вторую модель (хранится в CVMdl.Trained{2}) использование наблюдений в первой группе и трех последних группах. Программа резервирует наблюдения во второй группе для валидации.

  3. Аналогичным образом программное обеспечение протекает для моделей с третьей по пятую.

Если вы подтверждаете, вызывая kfoldPredict, он вычисляет предсказания для наблюдений в группе 1, используя первую модель, группу 2 для второй модели и так далее. Короче говоря, программное обеспечение оценивает ответ для каждого наблюдения, используя модель, обученную без этого наблюдения.

Примечание

RegressionPartitionedKernel объекты модели не хранят набор данных предиктора.

Создание

Создайте RegressionPartitionedKernel использование объекта fitrkernel функция. Используйте один из 'CrossVal', 'CVPartition', 'Holdout', 'KFold', или 'Leaveout' аргументы пары "имя-значение" в вызове fitrkernel. Для получения дополнительной информации смотрите fitrkernel страница с описанием функции.

Свойства

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

Свойства перекрестной валидации

Это свойство доступно только для чтения.

Перекрестное имя модели, заданное как вектор символов.

Для примера, 'Kernel' задает перекрестно проверенную модель ядра.

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

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

Значения параметров перекрестной проверки, заданные как объект. Значения параметров соответствуют значениям аргумента пары "имя-значение", используемым для перекрестной проверки регрессионой модели ядра. ModelParameters не содержит предполагаемых параметров.

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

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

Это свойство доступно только для чтения.

Модели регрессии ядра, обученные на сгибах перекрестной валидации, заданные как массив ячеек RegressionKernel модели. Trained имеет k камер, где k количество складок.

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

Это свойство доступно только для чтения.

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

Программное обеспечение нормализует веса, используемые для обучения, так, чтобы sum(W,'omitnan') является 1.

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

Это свойство доступно только для чтения.

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

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

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

Другие регрессионные свойства

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

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

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

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

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

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

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

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

Примеры

свернуть все

Моделируйте выборочные данные.

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*2e-2 + sin(x)./x + 0.2*randn(n,1);

Перекрестная валидация регрессионной модели ядра.

CVMdl = fitrkernel(x,y,'Kfold',5);

CVMdl является RegressionPartitionedKernel 5-кратная перекрестная проверенная модель. CVMdl.Trained содержит вектор камеры из пяти RegressionKernel модели. Отображение обученного свойства.

CVMdl.Trained
ans=5×1 cell array
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}
    {1x1 RegressionKernel}

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

Спрогнозируйте ответы на наблюдения в складках валидации и оцените ошибку обобщения передачей CVMdl на kfoldPredict и kfoldLoss, соответственно.

yHat = kfoldPredict(CVMdl);
L = kfoldLoss(CVMdl)
L = 0.1887

kfoldLoss вычисляет среднюю квадратичную невязку для всех складок по умолчанию. Оценка средней квадратичной невязки составляет 0,1887.

См. также

|

Введенный в R2018b