Рубрики
Без рубрики

Проблема бинарной классификации: случайный лес и энкодер

Для получения дополнительных проектов оформить мой Github: https://github.com/bmor2552 со всей неопределенностью в … Помечено новичками, Python, наукой данных, Flatiron.

Для получения дополнительных проектов оформить мой Github: https://github.com/bmor2552

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

На этой неделе для нашего модуля 3 проекта здесь в Школе Flatiron, я смог объединиться с My Shark 02-17-2020 Data Science Neword Cohort Person Taki Yasuoka (ссылка GitHub: https://github.com/tyasuoka ) Чтобы понять, как предсказать, будет ли клиент прекратить свои услуги с телекоммуникационной компанией. Ниже вы найдете ссылку GitHub на этот проект.

https://github.com/Tyasuoka/Module_3_Project/tree/master

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

Churn in Telecom's dataset

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

Еще одна вещь, которую мы заметили о данных, заключались в том, что имена столбцов казались так, как если бы они взаимодействуют друг с другом, то есть вечерние минуты и вечерними обвинениями. Колонна Churn была также несбалансирована; Были меньше взломов, чем были не-оттуды!

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

Модель Случайная лесная модель – группа деревьев решений, конец. Просто шучу, давайте начнем с того, что такое дерево решений, используя наши данные в качестве примера.

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

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

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

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

Вот ссылка на GitHUB к проекту; Ноутбуки включают в себя подробную информацию о выводах и коде для получения этих выводов.

https://github.com/Tyasuoka/Module_3_Project/tree/master

Случайный лес без одного горячего энкодера

  • Оценка точности: 0,936 aka около 94%
  • Roc_auc Оценка 0,909 aka около 91%

Случайный лес с одним горячим энкодером

  • Оценка точности: 0,942 aka около 94% (но выше 94%)
  • Roc_auc Оценка: 0,934 aka около 93%

Набок Примечание. Используйте Enterhot Encoder на столбце, который распространяется лучше, чем ваша цель. В нашем случае код города был хорошо распределен между 3 числами, поэтому для оказания помощи моделям изучать мы применили oneHot Encoder в столбец кода области, следовательно, увеличение начисленных выше.

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

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

Ссылки: Ниже приведены отличные сайты, чтобы помочь разбить все, что я обсуждал в этом блоге.

Случайные деревья лесов и решений

https://victorzhou.com/blog/intro-to-random-forests/

Оценка точности

https://blog.floydhub.com/a-pirates-guide-to-accuracy-precision-recall-and-other-scores/

Roc_auc. Счет

https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5

Одна горячая кодировка

One-Hot Encoding vs. Label Encoding using Scikit-Learn

Надеюсь, это мотивирует вас, чтобы узнать что-то новое или даже помочь вам решить другую проблему бинарной классификации. Счастливое кодирование !!!

Оригинал: “https://dev.to/bmor2552/binary-classification-problem-random-forest-onehot-encoder-34cg”