Пару месяцев назад я начал новое приключение в моей профессиональной жизни, изучая новую область, после 11 лет работы с программным обеспечением поддержки / внедрения. Я работал над проектом BI, используя ETL в своей работе, но Data Science - это то, что я никогда не считал правильным для себя, потому что я не статистик, но меня всегда увлекала «предсказание будущего на основе прошлое поведение ».

Поэтому я начал поиск учебных курсов в этой области. Я участвовал в буткемпе, в нескольких бесплатных онлайн-курсах, но ничего, что мне действительно понравилось. Пока я не услышал о Мейгароме Лопесе и его веб-сайте «Seja um Data Scientist». Сначала я заподозрил, но потом меня убедили попробовать «Data Science em Produção». Этот курс открыл мне глаза на «фреймворк» Мейгарома и на то, как он поделился своим опытом работы с Data Science нам, начинающим и разнообразным приложениям Data Science.

Завершив его курс и несколько раз услышав: «Вам нужно потренироваться и составить портфолио своих проектов», я начал практиковать в «Comunidade DS», сообществе студентов и профессионалов в области науки о данных, посвященных созданию проектов и обмену нашим опытом друг с другом.

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

Контекст

The Blocker Fraud Company - компания, специализирующаяся на обнаружении мошенничества при финансовых транзакциях, совершаемых с помощью мобильных устройств. У компании есть услуга «Blocker Fraud», в которой она гарантирует блокировку мошеннических транзакций.

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

Однако компания Blocker Fraud Company расширяется в Бразилии и, чтобы быстрее привлекать клиентов, приняла очень агрессивную стратегию. Стратегия работает следующим образом:

  • Компания будет получать 25% от стоимости каждой транзакции, действительно обнаруженной как мошенничество.
  • Компания будет получать 5% от стоимости каждой транзакции, обнаруженной как мошенничество, но транзакция действительно законна.
  • Компания вернет покупателю 100% стоимости каждой транзакции, признанной законной, однако транзакция действительно является мошенничеством.
  • Используя эту агрессивную стратегию, компания принимает на себя риски неспособности обнаружить мошенничество и получает компенсацию за настойчивое обнаружение мошенничества.

Для клиента нанять компанию Blocker Fraud Company - отличный бизнес. Несмотря на то, что взимаемая комиссия очень высока, 25% в случае успеха, компания сокращает свои расходы за счет правильно обнаруженных мошеннических транзакций, а ущерб, причиненный ошибкой в ​​службе защиты от мошенничества, будет покрыт самой компанией Blocker Fraud.

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

Соревнование

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

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

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

  • Какова точность модели?
  • Насколько надежна модель классификации транзакций как законных или мошеннических?
  • Каков будет выставление счетов компанией, если мы классифицируем 100% транзакций с помощью модели?
  • Какие убытки ожидает компания в случае отказа модели?
  • Какую прибыль ожидает компания Blocker Fraud при использовании этой модели?

Набор данных

Набор данных доступен на платформе kaggle, но весь бизнес-контекст был извлечен с веб-сайта Seja um Data Scientists.

Решение

Описание данных

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

Мое внимание на этот шаг привлекают два момента. Размер набора данных (6MM строк) и несбалансированность между мошенничеством (0,13%) и законными транзакциями (99,87%).

Особенность инженерии

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

Я сделал некоторые производные функции, но функции, которые значительно улучшили характеристики моделей, были:

diffOrig - разница между старым и новым балансом в зависимости от суммы транзакции. В обычном случае должно быть равно нулю

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

qtdTransferOrigName - количество транзакций от accountName

qtdTransferDestName - количество транзакций для accountName

Исследовательский анализ данных

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

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

Обращает на себя внимание разница в балансе между старым и новым балансом по сумме транзакции.

Подготовка данных

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

Изменение масштаба - step, qtdTransferOrigName, qtdTransferDestName, oldbalanceOrg, newbalanceOrig, oldbalanceDest, newbalanceDest, week, day, nameOrigNumber, nameDestNumber, diffOrig, diffDest. В этой функции было применено перемасштабирование для изменения диапазона данных без изменения феномена.

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

Преобразование природы - час - Примененные преобразования sin и cos для создания цикла событий. Это преобразование помогает модели понять интервал между данными.

Выбор функции

На этом этапе я пытаюсь сократить количество функций до минимума, необходимого для объяснения феномена Машинного обучения. Это необходимо, исходя из принципа бритвы Оккама, и это сокращение существенно влияет на производительность модели и уровень мошенничества.

Выбираем столбики двумя способами:

  • Важность функции - использование регрессора случайного леса, который вычисляет влияние функции на феномен
  • Борута - использование леса, чтобы найти лучшие черты, объясняющие феномен

Модели машинного обучения

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

  • Случайно - Базовый уровень
  • Классификатор хребта
  • Классификатор XGBoost
  • Классификатор случайного леса

С этим результатом производительности я продолжу использовать модели XGBoost и Random Forest.

Модель Производительность

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

Прогноз испытаний моделей

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

Окончательная модель

Производительность моделей была схожей: «Модель случайного леса» с точностью / отзывом 99,51% и «Модель XGBoost» с точностью / отзывом 99,57%. Однако Random Forest демонстрирует лучшую производительность, выполняясь примерно на 33% быстрее, чем «XGBoost». Экспорт солений из «Случайного леса» также значительно меньше, на 78% меньше, чем у «XGBoost». Итак, продолжим с «Модель случайного леса».

Бизнес-результат

В тестовом наборе данных есть 1.272.524 транзакции, из них 1643 мошенничества, всего 2 507 288 036,22 мошенничества.

Наша модель способна выявлять 99,51% всех случаев мошенничества, избегая мошенничества на сумму 2 504 426 229,95 долларов США.

Мошенничества, не обнаруженные нашей моделью, составляют 0,49% всех мошенничеств, что не позволяет избежать 2 861 806,27 мошенничества. Вся эта сумма будет возвращена покупателю.

В рамках нашей бизнес-стратегии мы можем обеспечить экономию в размере 1881 181 478,73 для клиента, принося доход в размере 623 244 751,22 для компании по борьбе с мошенничеством.

Кто я такой

Меня зовут Сауло Феррейра Кунья, системный аналитик и специалист по данным.

Электронная почта: [email protected]

Linkedin: https://www.linkedin.com/in/saulo-ferreira-cunha-6a6ba232/

Git: https://github.com/s4ul0bk/projectsPortfolio