Итак, вы хотите научиться создавать модель машинного обучения, с чего же начать? Исследую ли я какие-то алгоритмы? Посмотрите на некоторые визуализации?

No, No, No, No!

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

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

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

Конечно же, на меня обрушились тысячи наборов данных, и на самом деле определиться с набором данных было сложно, но через некоторое время я кое-что нашел *барабанная дробь*.

Основной причиной, по которой я выбрал этот набор данных, был описательный словарь данных, теперь вам интересно, что такое словарь данных, позвольте мне объяснить (или Геологическая служба США):

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

Это позволяет мне на самом деле иметь некоторое представление о том, что представляет каждый столбец в реальном мире. Я работал над проектами без них, и поверьте мне, они действительно не увенчались успехом!

Теперь, когда у нас есть данные, нам нужно их профилировать, что называется профилированием данных, исследовательским анализом данных или каким-то другим жаргоном.

Но подождите, зачем нам его профилировать?

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

Прежде чем мы выполним расширенные шаги предварительной обработки данных, нам нужно ответить на некоторые основные вопросы о данных:

  1. Сколько числовых или текстовых столбцов у нас есть.
  2. Сколько отсутствующих точек данных в столбцах.
  3. Сколько столбцов являются постоянными?
  4. Сколько столбцов имеют высокую кардинальность

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

В моем случае мы перешли от 115 столбцов к 40! Теперь это более удобоваримое количество столбцов!

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

Затем мы создали столбцы, которые помогут модели Machine Learning (некоторые из них упомянуты):

  1. Срок действия кредита: как долго у человека был кредит
  2. Годы с момента последнего платежа: сколько лет с момента последнего платежа.

Теперь сосредоточимся на категориальных столбцах. Существует два типа текстовых столбцов: порядковые и категориальные.

Для столбцов Ordinal мы использовали кодировку Label:

Горячее кодирование — мы преобразуем каждое категориальное значение в новый категориальный столбец и присваиваем этим столбцам двоичное значение 1 или 0. Это также называется «фиктивной» переменной.

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

Последним этапом моделирования данных является изучение целевой переменной (столбца, для предсказания которого обучены данные). Глядя на значения и их количество:

Мы решили отбросить значения с минимальными значениями и объединить значения с умеренными значениями в их правильные соответствующие представления большинства. Это привело к:

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

Затем мы разделяем данные на наборы для обучения и тестирования, что позволяет обучать нашу модель на обучающем подмножестве и справедливо оценивать на тестовом наборе.

Теперь мы готовы обучить нашу первую модель машинного обучения. Я решил использовать дерево решений, потому что известно, что они хорошо работают с целевыми переменными, которые довольно несбалансированы (где одно значение является большинством), как в нашем случае.

Итак, как мы поступили?

Как мы поступили с нашим первоначальным вопросом, насколько вы помните? Может быть, вы забыли, так что позвольте мне напомнить вам.

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

Лучший способ обобщить результаты — использовать матрицу путаницы:

0 соответствует «Заряжено выключено», а «Полностью заряжено» соответствует 1. Это означает, что наша модель в среднем работает лучше при прогнозировании «Полностью заряжено», чем «Заряжено». Но для Charged Off оценка F1 (метрика, описывающая точность) составляет 0,76, что является удовлетворительным.

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

10 основных функций, которые важны для модели (столбцы, которые больше всего определяют оценку), следующие:

Мы видим, что кредитный статус человека является самым большим фактором, влияющим на определение статуса кредита, что дает нам большую уверенность в кредитных рейтингах учреждений FICO. Следующий столбец — это последний месяц, когда Lending Club вытащил кредит из кредита, а после этого сумма последнего платежа является еще одним предиктором статуса кредита.

Если бы это была обстановка реального мира, то это тот момент, когда вы, как ученый по данным, приступаете к делу и объясняете результаты, убедившись, что хорошо объясняете свою модель, поскольку это гарантирует, что модели можно доверять, а не просто черный ящик, который не будет восприниматься серьезно.

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

См. ссылку на репозиторий git: Здесь

Удачной учебы!!!