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.

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

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

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

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

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

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

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

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

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

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

Предиктор называет в порядке их внешнего вида в данных о предикторе (X), заданный как массив ячеек из символьных векторов формы {'x1','x2',...}. Длина PredictorNames равна количеству столбцов в X.

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

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

Имя переменной отклика, заданное как 'Y'. Поскольку модели RegressionKernel не могут быть обучены с помощью табличных данных, этим свойством всегда является 'Y'.

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

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

Для функции MATLAB® или функции, которую вы задаете, вводят ее указатель на функцию. Например, можно ввести 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 перекрестная подтвержденная модель. Поскольку fitrkernel реализует 10-кратную перекрестную проверку по умолчанию, CVMdl.Trained содержит вектор ячейки 10 моделей RegressionKernel. Отобразите обученное свойство.

CVMdl.Trained
ans = 5x1 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