Загуба от регресия за модел на регресия на Gaussian ядро

регресия

Синтаксис

Описание

L = загуба (Mdl, X, Y) връща средната квадратична грешка (MSE) за регресионния модел на Gaussian ядро ​​Mdl, използвайки предикторните данни в X и съответните отговори в Y .

L = загуба (Mdl, Tbl, ResponseVarName) връща MSE за модела Mdl, използвайки данните за предсказване в Tbl и истинските отговори в Tbl.ResponseVarName .

L = загуба (Mdl, Tbl, Y) връща MSE за модела Mdl, използвайки предикторните данни в таблица Tbl и истинските отговори в Y .

L = загуба (___, Име, Стойност) указва опции, използващи един или повече аргументи двойка име-стойност в допълнение към която и да е комбинация от входни аргументи в предишни синтаксиси. Например можете да зададете функция за загуба на регресия и тегла за наблюдение. След това загубата връща претеглената загуба на регресия, използвайки посочената функция за загуба.

Примери

Изчислете загуба на извадка за модел на регресия на ядрото на Gaussian

Обучете модел на регресия на ядрото на Gaussian за висок масив, след това изчислете средната квадратна грешка на повторното заместване и грешка, нечувствителна към епсилон.

Когато извършвате изчисления на високи масиви, MATLAB® използва или паралелен пул (по подразбиране, ако имате Parallel Computing Toolbox ™) или локалната сесия MATLAB. За да стартирате примера с помощта на локалната сесия MATLAB, когато имате Parallel Computing Toolbox, променете глобалната среда за изпълнение с помощта на функцията mapreducer.

Създайте хранилище за данни, което препраща местоположението на папката с данните. Данните могат да се съдържат в един файл, колекция от файлове или цяла папка. Третирайте стойностите на „NA“ като липсващи данни, така че хранилището на данни да ги замества със стойности на NaN. Изберете подмножество от променливите, които да използвате. Създайте висока таблица в горната част на хранилището за данни.

Задайте DepTime и ArrTime като променливите на предиктора (X) и ActualElapsedTime като променливата за отговор (Y). Изберете наблюденията, за които ArrTime е по-късно от DepTime .

Стандартизирайте прогнозните променливи.

Обучете модел на регресия на ядрото по Гаус със стандартизираните предиктори. Задайте „Многословно“, 0 за потискане на диагностичните съобщения.

Mdl е обучен RegressionKernel модел и масивът на структурата FitInfo съдържа подробности за оптимизацията.

Определете доколко добре обученият модел се обобщава до нови предикторни стойности, като се изчисли повторното заместване на средната квадратична грешка и грешката, нечувствителна към епсилон.

Оценете високите масиви и въведете резултатите в паметта, като използвате сбор .

Посочете персонализирана загуба на регресия

Посочете персонализирана загуба на регресия (загуба на Хубер) за модел на регресия на Gaussian ядро.

Заредете набора от данни на carbig.

Посочете променливите на предиктора (X) и променливата на отговора (Y).

Изтрийте редове от X и Y, където единият масив има NaN стойности. Премахването на редове със стойности на NaN преди предаване на данни на fitrkernel може да ускори обучението и да намали използването на паметта.

Запазете 10% от наблюденията като извадка. Извлечете индексите за обучение и тест от дефиницията на дяла.

Стандартизирайте данните за обучение и обучете модела на регресионното ядро.

Mdl е модел RegressionKernel.

Създайте анонимна функция, която измерва загубата на Хубер (δ = 1), т.е.,

L = 1 ∑ w j ∑ j = 1 n w j ℓ j,

e j ˆ е остатъкът за наблюдение j. Функциите за персонализирани загуби трябва да бъдат написани в определена форма. За правила за писане на персонализирана функция за загуба вижте аргумента двойка име-стойност „LossFun“.

Оценете загубата на регресия на тренировъчния набор, като използвате функцията за загуба на Хубер.

Стандартизирайте данните от теста, като използвате същото средно и стандартно отклонение на колоните с данни за обучение. Оценете загубата на регресия на тестовия набор, като използвате функцията за загуба на Хубер.

Аргументи за въвеждане

MDL - Модел на регресия на ядрото
RegressionKernel модел обект

Модел на регресия на ядрото, посочен като обект на модел RegressionKernel. Можете да създадете обект на модел RegressionKernel с помощта на fitrkernel .

X - Данни за предиктор
n-by-p цифрова матрица

Данни за предиктор, посочени като n-by-p числова матрица, където n е броят на наблюденията и p е броят на предикторите. p трябва да е равен на броя на предикторите, използвани за обучение на Mdl .

Типове данни: единичен | двойно

Y - Данни за отговор
числов вектор

Данни за отговор, посочени като n-измерно числово вектор. Дължината на Y трябва да бъде равна на броя на наблюденията в X или Tbl .

Типове данни: единичен | двойно

Tbl - Примерни данни
маса

Примерни данни, използвани за обучение на модела, посочени като таблица. Всеки ред на Tbl съответства на едно наблюдение, а всяка колона съответства на една променлива на предиктор. По желание Tbl може да съдържа допълнителни колони за променливата на реакцията и тежестите за наблюдение. Tbl трябва да съдържа всички предиктори, използвани за обучение на Mdl. Не са разрешени многоколонни променливи и клетъчни масиви, различни от клетъчни масиви със символни вектори.

Ако Tbl съдържа променливата за отговор, използвана за обучение на Mdl, тогава не е необходимо да указвате ResponseVarName или Y .

Ако тренирате Mdl, като използвате примерни данни, съдържащи се в таблица, тогава входните данни за загуба също трябва да са в таблица.

ResponseVarName - Име на променлива за отговор
име на променлива в Tbl

Име на променлива за отговор, посочено като име на променлива в Tbl. Променливата за отговор трябва да е числов вектор. Ако Tbl съдържа променливата на отговора, използвана за обучение на Mdl, тогава не е необходимо да указвате ResponseVarName .

Ако посочите ResponseVarName, тогава трябва да го посочите като вектор на символи или скалар на низове. Например, ако променливата на отговора се съхранява като Tbl.Y, тогава посочете ResponseVarName като 'Y'. В противен случай софтуерът третира всички колони на Tbl, включително Tbl.Y, като предсказатели.

Типове данни: char | низ

Аргументи за двойка име-стойност

Посочете незадължителни двойки, разделени със запетая, на аргументи Name, Value. Name е името на аргумента, а Value е съответната стойност. Името трябва да се появи в кавичките. Можете да посочите няколко аргумента за двойка имена и стойност в произволен ред като Name1, Value1. NameN, ValueN .

Пример: L = загуба (Mdl, X, Y, 'LossFun', 'epsiloninsensitive', 'Weights', teights) връща претеглената загуба на регресия, използвайки функцията за загуба на чувствителност към epsilon.

„LossFun“ - функция за загуба
'mse' (по подразбиране) | „epsiloninsensitive“ | дръжка на функцията

Функция за загуба, посочена като двойка, разделена със запетая, състояща се от „LossFun“ и вградено име на функция за загуба или манипулатор на функция.

Следващата таблица изброява наличните функции за загуби. Посочете такъв, като използвате съответния вектор от символи или скаларен низ. Също така в таблицата f (x) = T (x) β + b .

x е наблюдение (векторен ред) от p променливи предиктор.

T (·) е трансформация на наблюдение (вектор на редове) за разширяване на характеристиките. T (x) преобразува x в ℝ p в пространство с големи размери (ℝ m).

β е вектор на m коефициенти.

b е скаларното отклонение.

ValueDescription
„епсилон нечувствителен“ Епсилон-нечувствителна загуба: ℓ [y, f (x)] = max [0, | y - f (x) | - ε]
'mse' MSE: ℓ [y, f (x)] = [y - f (x)] 2

„epsiloninsensitive“ е подходящ само за учащи SVM.

Посочете вашата собствена функция, като използвате нотация на функцията.

Нека n е броят на наблюденията в X. Вашата функция трябва да има този подпис:

Изходният аргумент lossvalue е скаларен.

Вие избирате името на функцията (lossfun).

Y е n-измерен вектор на наблюдаваните отговори. загубата предава входния аргумент Y в за Y .

Това е n-измерен вектор на предсказуемите отговори, който е подобен на изхода на предсказване .

W е n -by-1 числов вектор на теглата за наблюдение.

Посочете функцията си с помощта на 'LossFun', @ lossfun .

Типове данни: char | низ | функция_ръчка

„Тежести“ - тежести за наблюдение
единици (размер (X, 1), 1) (по подразбиране) | числов вектор | име на променлива в Tbl

Тегла за наблюдение, посочени като двойка, разделена със запетая, състояща се от „Тегла“ и числов вектор или името на променлива в Tbl .

Ако Weights е числов вектор, тогава размерът на Weights трябва да бъде равен на броя на редовете в X или Tbl .

Ако Weights е името на променлива в Tbl, трябва да посочите Weights като символен вектор или скалар на низове. Например, ако тежестите се съхраняват като Tbl.W, тогава посочете Теглата като 'W'. В противен случай софтуерът третира всички колони на Tbl, включително Tbl.W, като предсказатели.

Ако предоставите теглата за наблюдение, загубата изчислява претеглената загуба на регресия, т.е., Претеглената средна квадратична грешка или Епсилон-нечувствителната функция на загубата.

загубата нормализира Теглото, за да се сумира до 1.

Типове данни: двойно | единичен | char | низ