Загуба на класификация за модел на класификация на ядрото на Гаус

Синтаксис

Описание

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

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

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

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

Примери

Оценете загубата от класификация на тестови набори

Заредете набора от данни за йоносферата. Този набор от данни има 34 предиктора и 351 двоични отговора за радарни връщания, или лоши ('b'), или добри ('g').

Разделете набора от данни в обучителни и тестови набори. Посочете 15% проба за изчакване за тестовия набор.

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

Оценете грешката в класификацията на обучения набор и грешката в класификацията на набора от тестове.

Задайте персонализирана загуба на класификация

Заредете набора от данни за йоносферата. Този набор от данни има 34 предиктора и 351 двоични отговора за радарни връщания, или лоши ('b'), или добри ('g').

Разделете набора от данни в обучителни и тестови набори. Посочете 15% проба за изчакване за тестовия набор.

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

Създайте анонимна функция, която измерва линейна загуба, т.е.,

L = ∑ j - w j y j f j ∑ j w j .

w j е теглото за наблюдение j, y j е отговор j (-1 за отрицателния клас и 1 в противен случай), а f j е суровият класификационен резултат от наблюдението j .

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

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

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

Mdl - Модел за класификация на бинарното ядро
ClassificationKernel модел обект

Бинарен модел на класификация на ядрото, посочен като обект на модел ClassificationKernel. Можете да създадете обект на модел ClassificationKernel с помощта на fitckernel .

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

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

Дължината на Y и броят на наблюденията в X трябва да бъдат равни.

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

Y - Етикети на класове
категоричен масив | символен масив | низ масив | логически вектор | числов вектор | клетъчен масив от символни вектори

Етикети на класове, посочени като категоричен, символен или низ от масиви, логически или цифров вектор или масив от клетки на векторни знаци.

Типът данни на Y трябва да бъде същият като типа данни на Mdl.ClassNames. (Софтуерът третира масиви от низове като клетъчни масиви от символни вектори.)

Различните класове в Y трябва да са подмножество на Mdl.ClassNames .

Ако Y е масив от знаци, тогава всеки елемент трябва да съответства на един ред от масива.

Дължината на Y трябва да бъде равна на броя на наблюденията в X или Tbl .

Типове данни: категоричен | char | низ | логично | единичен | двойно | клетка

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', 'quadratic', 'Weights', teights) връща претеглената класификационна загуба, използвайки функцията за квадратична загуба.

„LossFun“ - функция за загуба
'Classiferror' (по подразбиране) | „бинодевианс“ | „експоненциално“ | „панта“ | 'logit' | „минимална цена“ | "квадратичен" | дръжка на функцията

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

Тази таблица изброява наличните функции за загуби. Посочете един, като използвате съответната му стойност.

ValueDescription
„бинодевианс“ Биномиална девиантност
„класифициращ“ Грешка в класификацията
„експоненциално“ Експоненциално
"панта" Панта
'logit' Логистика
„минимална цена“ Минимални очаквани разходи за погрешно класифициране (за класификационни резултати, които са последващи вероятности)
"квадратичен" Квадратичен

„mincost“ е подходящ за класификационни резултати, които са вероятности отзад. За моделите за класификация на ядрото, обучаемите с логистична регресия връщат задните вероятности като резултати по класификация по подразбиране, но учащите в SVM не (вижте прогнозиране).

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

Нека n е броят на наблюденията в X, а K е броят на отделните класове (numel (Mdl.ClassNames), където Mdl е входният модел). Вашата функция трябва да има този подпис:

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

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

C е n -by- K логическа матрица с редове, указващи класа, към който принадлежи съответното наблюдение. Редът на колоните съответства на реда на класа в Mdl.ClassNames .

Постройте C, като зададете C (p, q) = 1, ако наблюдението p е в клас q, за всеки ред. Задайте всички останали елементи на ред p на 0 .

S е n -by- K числова матрица на класификационни резултати. Редът на колоните съответства на реда на класа в Mdl.ClassNames. S е матрица от класификационни резултати, подобна на резултата от прогнозата .

W е n-by-1 числов вектор на теглата за наблюдение. Ако преминете W, софтуерът нормализира тежестите, за да сумира до 1 .

Разходите са K-by- K числова матрица на разходите за погрешна класификация. Например, Cost = one (K) - eye (K) определя цена от 0 за правилна класификация и 1 за погрешна класификация.

Пример: 'LossFun', @ lossfun

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

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

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

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

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

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

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

Изходни аргументи

L - Загуба на класификация
числов скалар

Загуба на класификация, върната като числов скалар. Тълкуването на L зависи от теглото и LossFun .

Повече за

Загуба на класификация

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

Да предположим следното:

L е среднопретеглената загуба на класификация.

n е размерът на извадката.

yj е наблюдаваният етикет на класа. Софтуерът го кодира като –1 или 1, указвайки съответно отрицателния или положителния клас.

f (Xj) е суровият резултат за класификация за трансформираното наблюдение (ред) j на данните предиктор X, използвайки разширяване на характеристиките.

mj = yj f (Xj) е класификационната оценка за класифициране на наблюдението j в класа, съответстващ на yj. Положителните стойности на mj показват правилната класификация и не допринасят много за средната загуба. Отрицателните стойности на mj показват неправилна класификация и допринасят за средната загуба.

Тежестта за наблюдение j е wj. Софтуерът нормализира тежестите за наблюдение, така че те да се сумират към съответната вероятност от предходния клас. Софтуерът също така нормализира предишните вероятности, така че те да се сумират на 1. Следователно,

Тази таблица описва поддържаните функции за загуби, които можете да посочите, като използвате аргумента двойка име-стойност 'LossFun'.

L = ∑ j = 1 n w j I < y ^ j ≠ y j >.

Класификационната грешка е претеглената част от погрешно класифицирани наблюдения, където y ^ j е етикетът на класа, съответстващ на класа с максимална задна вероятност. Аз< x> е индикаторната функция.

Софтуерът изчислява претеглените минимални разходи, използвайки тази процедура за наблюдения j = 1. n.

Оценете 1-K-вектор на очакваните разходи за класификация за наблюдение j:

γ j = f (X j) ′ C .

f (Xj) е векторът на колоната на вероятностите отзад на класа. C е матрицата на разходите, която входният модел съхранява в свойството Cost.

За наблюдение j предскажете етикета на класа, съответстващ на минималните очаквани разходи за класификация:

y ^ j = min j = 1,., K (γ j) .

Използвайки C, идентифицирайте направените разходи (cj) за извършване на прогнозата.

Претеглената, средна, минимална загуба на разходи е

L = ∑ j = 1 n w j c j .

Тази цифра сравнява функциите на загубите (с изключение на минималните разходи) за едно наблюдение над m. Някои функции са нормализирани да преминават през [0,1].

модел

Разширени възможности

Високи масиви
Изчислете с масиви, които имат повече редове, отколкото се побират в паметта.

Бележки за употреба и ограничения:

загубата не поддържа данни за високи таблици.

За повече информация вижте Високи масиви.

Вижте също

Отворете пример

Модифицирана версия на този пример съществува във вашата система. Искате ли вместо това да отворите тази версия?