exponenta event banner

Расходы на неправильную классификацию в приложении Classification Learner

По умолчанию приложение Classification Learner создает модели, которые назначают одинаковый штраф всем ошибочным классификациям во время обучения. Для данного наблюдения приложение назначает штраф 0, если наблюдение классифицировано правильно, и штраф 1, если наблюдение классифицировано неправильно. В некоторых случаях это назначение является неуместным. Например, предположим, что вы хотите классифицировать пациентов как здоровых или больных. Стоимость неправильной классификации больного как здорового может в пять раз превышать стоимость неправильной классификации здорового человека как больного. В тех случаях, когда известны затраты на неправильную классификацию наблюдений одного класса в другой, а затраты различаются в разных классах, укажите затраты на неправильную классификацию перед обучением моделей.

Примечание

Пользовательские затраты на неправильную классификацию не поддерживаются для логистической регрессии и моделей нейронных сетей.

Укажите затраты на неправильную классификацию

В приложении Classification Learner в разделе «Параметры» вкладки Classification Learner выберите «Затраты на неправильную классификацию». Приложение открывает диалоговое окно, в котором отображаются затраты на неправильную классификацию по умолчанию (матрица затрат) в виде таблицы с метками строк и столбцов, определенными классами в переменной ответа. Строки таблицы соответствуют истинным классам, а столбцы - прогнозируемым классам. Вы можете интерпретировать матрицу затрат таким образом: запись в строке i и столбце j является стоимостью неправильной классификации наблюдений i-го класса в j-й класс. Диагональные записи матрицы затрат должны быть равны 0, а не диагональные - неотрицательными вещественными числами.

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

Примечание

Масштабированная версия матрицы затрат дает те же результаты классификации (например, матрицу путаницы и точность), но с другой общей стоимостью неправильной классификации. То есть, если CostMat - матрица затрат на неправильную классификацию и a является положительным, реальным скаляром, затем модель, обученная матрице затрат a*CostMat имеет ту же матрицу путаницы, что и модель, обученная с CostMat.

Ввод затрат непосредственно в диалоговом окне

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

Импорт переменной рабочей области, содержащей затраты

В диалоговом окне затрат на неправильную классификацию щелкните Импорт из рабочей области. Приложение открывает диалоговое окно для импорта затрат из переменной в рабочей области MATLAB ®.

В списке Переменная затрат выберите матрицу или структуру затрат, содержащую затраты на неправильную классификацию.

  • Матрица затрат - матрица должна содержать затраты на неправильную классификацию. Диагональные элементы должны быть равны 0, а не диагональные элементы - неотрицательными вещественными числами. По умолчанию для интерпретации значений матрицы затрат приложение использует порядок классов, показанный в предыдущем диалоговом окне затрат на неправильную классификацию.

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

  • Структура - структура должна содержать поля ClassificationCosts и ClassNames с этими спецификациями:

    • ClassificationCosts - Матрица, содержащая затраты на неправильную классификацию.

    • ClassNames - Названия классов. Порядок классов в ClassNames определяет порядок строк и столбцов ClassificationCosts. Переменная ClassNames должен быть категориальным вектором, логическим вектором, числовым вектором, строковым массивом или массивом ячеек символьных векторов. Имена классов должны совпадать (в написании и прописных буквах) с именами классов в переменной ответа.

После указания переменной затрат и порядка классов в переменной затрат щелкните Импорт. Приложение обновляет таблицу в диалоговом окне затрат на неправильную классификацию.

После указания матрицы затрат, которая отличается от матрицы по умолчанию, приложение обновляет панель Сводка текущей модели (Current Model Summary) для новых моделей. На панели Сводка по текущей модели в разделе Затраты на неправильную классификацию приложение перечисляет матрицу затрат как «пользовательскую». Для моделей, использующих затраты на неправильную классификацию по умолчанию, приложение отображает матрицу затрат как «по умолчанию».

Оценка производительности модели

После указания стоимости классификации ошибок можно обучить и настроить модели в обычном режиме. Однако использование пользовательских затрат на неправильную классификацию может изменить способ оценки производительности модели. Например, вместо выбора модели с наилучшей точностью выберите модель с хорошей точностью и низкой общей стоимостью неправильной классификации. Общая стоимость неправильной классификации для модели составляет sum(CostMat.*ConfusionMat,'all'), где CostMat - матрица затрат на неправильную классификацию и ConfusionMat - матрица путаницы для модели. Матрица путаницы показывает, как модель классифицирует наблюдения в каждом классе. См. раздел Проверка производительности по классам в таблице путаницы.

Чтобы проверить общую стоимость неправильной классификации обученной модели, выберите модель на панели Модели (Models). На панели Сводка по текущей модели (Current Model Summary) просмотрите раздел Результаты обучения (Training Results). Общая стоимость неправильной классификации указана ниже точности модели.

Затраты на неправильную классификацию в экспортированной модели и сгенерированном коде

После обучения модели с пользовательскими затратами на неправильную классификацию и ее экспорта из приложения можно найти пользовательские затраты внутри экспортируемой модели. Например, при экспорте древовидной модели в виде структуры с именем trainedModelдля доступа к матрице затрат и порядку классов в матрице можно использовать следующий код.

trainedModel.ClassificationTree.Cost
trainedModel.ClassificationTree.ClassNames
Для ансамблевых и двоичных моделей SVM приложение использует затраты на неправильную классификацию для корректировки вероятностей предыдущего класса модели. Следовательно, Cost свойство экспортируемой модели сбрасывается до матрицы затрат по умолчанию, но Prior обновлено свойство.

При создании кода MATLAB для модели, обученной с пользовательскими затратами на неправильную классификацию, созданный код включает матрицу затрат, которая передается функции обучения через 'Cost' аргумент пары имя-значение.

Связанные темы