По умолчанию приложение Classification Learner создает модели, которые присваивают тот же штраф всему misclassifications во время обучения. Для заданного наблюдения приложение присваивает штраф 0, если наблюдение классифицируется правильно и штраф 1, если наблюдение классифицируется неправильно. В некоторых случаях это присвоение является несоответствующим. Например, предположите, что вы хотите классифицировать пациентов или как здоровых или как больных. Стоимость неправильной классификации больного человека столь же здоровая сила быть пять раз стоимостью неправильной классификации здорового человека как больной. Для случаев, где вы знаете, стоимость неправильной классификации наблюдений за одним классом в другого и затрат варьируется через классы, задает затраты misclassification перед обучением ваши модели.
Пользовательские затраты misclassification не поддержаны для моделей логистической регрессии.
В приложении Classification Learner, в разделе Options вкладки Classification Learner, выбирают Misclassification Costs. Приложение открывает диалоговое окно, которое показывает значение по умолчанию misclassification затраты (матрица стоимости) как таблица с метками строки и столбца, определенными классами в переменной отклика. Строки таблицы соответствуют истинным классам, и столбцы соответствуют предсказанным классам. Можно интерпретировать матрицу стоимости таким образом: запись в строке i и столбец j является стоимостью неправильной классификации i th наблюдения класса в j th класс. Диагональные элементы матрицы стоимости должны быть 0, и недиагональные записи должны быть неотрицательными вещественными числами.
Можно задать собственные затраты misclassification двумя способами: путем ввода значений непосредственно в таблицу в диалоговом окне или путем импорта переменной рабочей области, которая содержит величину затрат.
Масштабированная версия матрицы стоимости дает те же результаты классификации (например, матрица беспорядка и точность), но с различным общим количеством misclassification стоимость. Таким образом, если CostMat
матрица стоимости misclassification и a
положительный, действительный скаляр, затем модель, обученная с матрицей стоимости a*CostMat
имеет ту же матрицу беспорядка как та модель, обученная с CostMat
.
В диалоговом окне затрат misclassification дважды кликните запись в таблице, которую вы хотите отредактировать. Удалите значение и введите правильный misclassification, стоивший за запись. Когда вы будете сделаны, редактируя таблицу, нажмите OK, чтобы сохранить ваши изменения.
В диалоговом окне затрат misclassification нажмите Import from Workspace. Приложение открывает диалоговое окно для импорта затрат от переменной в рабочей области MATLAB®.
Из списка Cost variable выберите матрицу стоимости или структуру, которая содержит затраты misclassification.
Стойте матрицы – матрица должна содержать затраты misclassification. Диагональные элементы должны быть 0, и недиагональные записи должны быть неотрицательными вещественными числами. По умолчанию приложение использует порядок класса, который, как показывают в предыдущем диалоговом окне затрат misclassification, интерпретировал матричные значения стоимости.
Чтобы задать порядок классов в матрице стоимости, создайте отдельную переменную рабочей области, содержащую имена классов в правильном порядке. В диалоговом окне импорта выберите соответствующую переменную из списка Class order in cost variable. Переменная рабочей области, содержащая имена классов, должна быть категориальным вектором, логическим вектором, числовым вектором, массивом строк или массивом ячеек из символьных векторов. Имена классов должны совпадать (в написании и капитализации) с именами классов в переменной отклика.
Структура – структура должна содержать поля ClassificationCosts
и ClassNames
с этими техническими требованиями:
ClassificationCosts
– Матрица, которая содержит затраты misclassification.
ClassNames
– Имена классов. Порядок классов в ClassNames
определяет порядок строк и столбцов ClassificationCosts
. Переменная ClassNames
должен быть категориальный вектор, логический вектор, числовой вектор, массив строк или массив ячеек из символьных векторов. Имена классов должны совпадать (в написании и капитализации) с именами классов в переменной отклика.
После определения переменной стоимости и порядка класса в переменной стоимости, нажмите Import. Обновления приложения таблица в misclassification стоят диалогового окна.
После того, как вы зададите матрицу стоимости, которая отличается от значения по умолчанию, обновления приложения панель Current Model для новых моделей. В панели Current Model, под Misclassification Costs, списки приложений матрица стоимости как custom
. Для моделей, которые используют значение по умолчанию misclassification затраты, списки приложений матрица стоимости как default
.
После определения misclassification затраты, можно обучить и настроить модели, как обычно. Однако использование пользовательских затрат misclassification может измениться, как вы оцениваете производительность модели. Например, вместо того, чтобы выбрать модель с лучшей точностью, выберите модель, которая имеет хорошую точность и низкое общее количество misclassification стоимость. Общим количеством misclassification стоимость для модели является sum(CostMat.*ConfusionMat,'all')
, где CostMat
матрица стоимости misclassification и ConfusionMat
матрица беспорядка для модели. Матрица беспорядка показывает, как модель классифицирует наблюдения на каждый класс. Смотрите Производительность Проверки В Классе в Матрице Беспорядка.
Чтобы смотреть общее количество misclassification стоимость обученной модели, выберите модель в списке History. В панели Current Model посмотрите на раздел Results. Общее количество misclassification стоимость описано ниже точность модели.
После того, как вы обучите модель с пользовательскими затратами misclassification и экспортируете ее из приложения, можно найти пользовательские затраты в экспортируемой модели. Например, если вы экспортируете древовидную модель как структуру под названием trainedModel
, можно использовать следующий код, чтобы получить доступ к матрице стоимости и порядку классов в матрице.
trainedModel.ClassificationTree.Cost trainedModel.ClassificationTree.ClassNames
Cost
свойство экспортируемой модели сбрасывается к матрице стоимости по умолчанию, но Prior
свойство обновляется.Когда вы генерируете код MATLAB для модели, обученной с пользовательскими затратами misclassification, сгенерированный код включает матрицу стоимости, которая передается учебной функции через 'Cost'
аргумент пары "имя-значение".