Обучите и сравните классификаторы, используя затраты на неправильную классификацию в приложении Classification Learner

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

  1. В MATLAB® Командное окно, прочитайте образец файла CreditRating_Historical.dat в таблицу. Данные предиктора состоят из финансовых коэффициентов и отраслевой информации для списка корпоративных клиентов. Переменная ответа состоит из кредитных рейтингов, присвоенных рейтинговым агентством. Объедините все A рейтинги в один рейтинг. Сделайте то же самое для B и C рейтинги, так что переменная отклика имеет три различных рейтинга. Среди трех рейтингов A считается лучшим и C худшее.

    creditrating = readtable('CreditRating_Historical.dat');
    Rating = categorical(creditrating.Rating);
    Rating = mergecats(Rating,{'AAA','AA','A'},'A');
    Rating = mergecats(Rating,{'BBB','BB','B'},'B');
    Rating = mergecats(Rating,{'CCC','CC','C'},'C');
    creditrating.Rating = Rating;
  2. Предположим, что это затраты, связанные с неправильной классификацией кредитных рейтингов клиентов.

     Прогнозируемый рейтинг клиента
    ABC
    Истинный рейтинг клиентаA$0$100$200
    B$500$0$100
    C$1000$500$0

    Например, стоимость неправильной классификации C оцените клиента как A рейтинг клиента составляет $1000. Затраты указывают, что классификация клиента с плохим кредитом как клиента с хорошим кредитом является более дорогостоящей, чем классификация клиента с хорошим кредитом как клиента с плохим кредитом.

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

    ClassificationCosts = [0 100 200; 500 0 100; 1000 500 0];
    ClassNames = categorical({'A','B','C'});
    

    Совет

    Кроме того, вы можете задать затраты на неправильную классификацию непосредственно в приложении Classification Learner. Для получения дополнительной информации смотрите раздел «Указание затрат на неправильную классификацию».

  3. Откройте Classification Learner. Щелкните вкладку Apps, а затем щелкните стреле справа от раздела Apps, чтобы открыть галерею Apps. В группе Machine Learning and Deep Learning нажмите Classification Learner.

    Classification Learner tab

  4. На вкладке Classification Learner, в разделе File, выберите New Session > From Workspace.

  5. В диалоговом окне Новый сеанс из рабочей области выберите таблицу creditrating из списка Data Set Variable.

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

    New Session dialog box

  6. Чтобы принять настройки по умолчанию, нажмите Start Session.

  7. Укажите затраты на неправильную классификацию. На вкладке Classification Learner, в разделе Options, нажмите Misclassification Costs. Приложение открывает диалоговое окно, показывающее затраты на неправильную классификацию по умолчанию.

    В диалоговом окне нажмите кнопку Import from Workspace.

    Specify misclassification costs dialog box

    В диалоговом окне импорта выберите ClassificationCosts как переменная стоимости и ClassNames как порядок классов в переменной затрат. Нажмите Import.

    Import costs from workspace dialog box

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

    Dialog box with updated values for misclassification costs

  8. Обучайте мелкие, средние и крупные деревья одновременно. На вкладке Classification Learner, в разделе Model Type, щелкните стреле, чтобы открыть галерею. В группе Decision Trees нажмите All Trees. В Training разделе нажмите Train. Приложение обучает один из каждого типа древовидной модели и отображает модели на панели Models.

    Совет

    Если у вас есть Parallel Computing Toolbox™, можно обучить все модели (All Trees) одновременно, нажав кнопку Use Parallel в разделе Training перед нажатием Train. После нажатия кнопки Train открывается диалоговое окно Открытие параллельного пула, которое остается открытым, пока приложение открывает параллельный пул работников. В течение этого времени вы не можете взаимодействовать с программным обеспечением. После открытия пула приложение обучает модели одновременно.

    Scatter plot of the credit rating data. Correctly classified points are marked with an O. Incorrectly classified points are marked with an X. The Models pane on the left shows the accuracy for each model.

    Примечание

    Валидация вводит некоторую случайность в результаты. Результаты валидации вашей модели могут отличаться от результатов, показанных в этом примере.

  9. На панели Models щелкните модель, чтобы просмотреть результаты, которые отображаются на панели Current Model Summary. Каждая модель имеет счет точности валидации, которая указывает процент правильно предсказанных ответов. На панели Models приложение подсвечивает самый высокий счет Accuracy (Validation), отображая его в поле.

  10. Проверьте точность предсказаний в каждом классе. На вкладке Classification Learner, в разделе Plots, нажмите Confusion Matrix и выберите Validation Data. Приложение отображает матрицу истинного класса и предсказанных результатов класса для выбранной модели (в этом случае для дерева среды).

    Confusion matrix plot

  11. Можно также построить график результатов по предсказанному классу, чтобы исследовать частоты ложных открытий. В разделе Plot выберите опцию Positive Predictive Values (PPV) False Discovery Rates (FDR).

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

    Confusion matrix plot. The Positive predictive value and false discovery rates are shown underneath.

  12. Сравните общие затраты на неправильную классификацию древовидных моделей. Чтобы просмотреть общую стоимость неправильной классификации модели, выберите модель на панели Models, а затем просмотрите Training Results раздел панели Current Model Summary. Для примера среднее дерево имеет эти результаты.

    Current Model panel

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

Вы можете выполнить выбор и преобразование признаков или настроить модель так же, как вы это делаете в рабочем процессе без неправильной классификации затрат. Однако всегда проверяйте общую стоимость неправильной классификации вашей модели при оценке ее эффективности. Для различий в экспортированной модели и экспортированном коде при использовании затрат на неправильную классификацию, смотрите Затраты на неправильную классификацию в Экспортированной модели и Сгенерированный код.

Похожие темы