В этом примере показано, как создать и сравнить классификаторы, которые используют заданные затраты misclassification в приложении Classification Learner. Задайте затраты misclassification перед обучением и используйте точность и общее количество misclassification результаты стоимости сравнить обученные модели.
В Командном окне 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;
Примите, что это затраты, сопоставленные с неправильной классификацией кредитных рейтингов клиентов.
Клиент предсказанная оценка | ||||
A | B | C | ||
Клиент истинная оценка | A | $0 | $100 | $200 |
B | $500 | $0 | $100 | |
C | $1000 | $500 | $0 |
Например, стоимость неправильной классификации C
оценка клиента как A
оценка клиента составляет 1 000$. Затраты указывают, что, классифицируя клиента с плохим кредитом, когда клиент с хорошим кредитом является более дорогостоящим, чем классификация клиента с хорошим кредитом как клиент с плохим кредитом.
Создайте матричную переменную, которая содержит затраты misclassification. Создайте другую переменную, которая задает имена классов и их порядок в матричной переменной.
ClassificationCosts = [0 100 200; 500 0 100; 1000 500 0]; ClassNames = categorical({'A','B','C'});
Совет
В качестве альтернативы можно задать затраты misclassification непосредственно в приложении Classification Learner. Смотрите Задают Затраты Misclassification для получения дополнительной информации.
Открытый Classification Learner. Кликните по вкладке Apps, и затем кликните по стреле справа от раздела Apps, чтобы открыть галерею Apps. В группе Machine Learning and Deep Learning нажмите Classification Learner.
На вкладке Classification Learner, в разделе File, выбирают New Session > From Workspace.
В диалоговом окне New Session выберите таблицу creditrating
из списка Data Set Variable.
Как показано в диалоговом окне, приложение выбирает переменные отклика и переменные предикторы на основе их типа данных. Переменной отклика по умолчанию является Rating
переменная. Опция валидации по умолчанию является перекрестной проверкой, чтобы защитить от сверхподбора кривой. В данном примере не изменяйте настройки по умолчанию.
Чтобы принять настройки по умолчанию, нажмите Start Session.
Задайте затраты misclassification. На вкладке Classification Learner, в разделе Options, нажимают Misclassification Costs. Приложение открывает диалоговое окно, показывающее значение по умолчанию misclassification затраты.
В диалоговом окне нажмите Import from Workspace.
В диалоговом окне импорта выберите ClassificationCosts
как переменная стоимости и ClassNames
как порядок класса в переменной стоимости. Нажмите Import.
Обновления приложения значения в misclassification стоят диалогового окна. Нажмите OK, чтобы сохранить ваши изменения.
Обучите прекрасные, средние, и крупные деревья одновременно. На вкладке Classification Learner, в разделе Model Type, кликают по стреле, чтобы открыть галерею. В группе Decision Trees нажмите All Trees. В разделе Training нажмите Train. Приложение обучает один из каждого древовидного типа модели и отображает модели в списке History.
Совет
Если у вас есть Parallel Computing Toolbox™, диалоговое окно Opening Pool открывается в первый раз, когда вы нажимаете Train (или когда вы нажимаете Train снова после длительного периода времени). Диалоговое окно остается открытым, в то время как приложение открывает параллельный пул рабочих. В это время вы не можете взаимодействовать с программным обеспечением. После того, как пул открывается, можно обучить несколько классификаторов одновременно и продолжить работать.
Примечание
Валидация вводит некоторую случайность в результаты. Ваши результаты проверки допустимости модели могут варьироваться от результатов, показанных в этом примере.
В списке History кликните по модели, чтобы просмотреть результаты, которые отображены в панели Current Model. Каждая модель имеет валидацию счет Accuracy, который указывает на процент правильно предсказанных ответов. В списке History приложение подсвечивает самый высокий счет Accuracy путем выделения его в поле.
Смотрите точность предсказаний в каждом классе. На вкладке Classification Learner, в разделе Plots, нажимают Confusion Matrix. Отображения приложения матрица истинного класса и предсказанного класса заканчиваются для выбранной модели (в этом случае для среднего дерева).
Можно также построить результаты в предсказанном классе, чтобы исследовать ложные уровни открытия. Под Plot выберите опцию False Discovery Rates (FDR) Positive Predictive Values (PPV).
В матрице беспорядка для среднего дерева записи ниже диагонали имеют значения небольшого процента. Эти значения указывают, что модель старается не присваивать кредитный рейтинг, который выше, чем истинная оценка для клиента.
Сравните общее количество misclassification затраты на древовидные модели. Чтобы смотреть общее количество misclassification стоимость модели, выберите модель в списке History, и затем просмотрите раздел Results панели Current Model. Например, среднее дерево имеет эти результаты.
В общем случае выберите модель, которая имеет высокую точность и низкое общее количество misclassification стоимость. В этом примере среднее дерево имеет самое высокое значение точности валидации и самое низкое общее количество misclassification стоимость этих трех моделей.
Можно выполнить выбор признаков и преобразование или настроить модель, как вы делаете в рабочем процессе без затрат misclassification. Однако всегда проверяйте общее количество misclassification стоимость вашей модели при оценке ее эффективности. Для различий в экспортируемой модели и экспортируемом коде, когда вы будете использовать затраты misclassification, см. Затраты Misclassification в Экспортируемом Типовом кодексе и Сгенерированном коде.