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

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

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

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

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

Какие данные доступны?

У меня есть 35 файлов .txt, в которых содержится история судимости за 10 лет. После объединения данных в файл .csv у меня есть более 3 миллионов строк и более 40 переменных смешанных типов данных, включая текстовые, категориальные и числовые данные. Некоторые из столбцов: Дата дела, Номер дела, Стиль дела, Дата ареста, Дата правонарушения, Судья, Информация ответчика и т. Д. Я также заметил, что набор данных не помечен.

Создать ярлыки

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

Это полуавтоматический подход. Я написал функцию Python для идентификации ключевых слов. Он выбирает наиболее распространенные слова в публичных поверенных, такие как OFFICE, PUBLIC и т. Д. Но по мере добавления большего количества ключевых слов он классифицирует некоторых частных поверенных как публичных. В этом случае мне пришлось удалить эти слова из набора ключевых слов. Я проделал этот процесс итеративно, чтобы минимизировать ошибки. Затем доработанный набор ключевых слов был использован для создания этикеток. Если имя содержит какое-либо из ключевых слов, оно классифицируется как общедоступное; в противном случае это личное.

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

EDA и очистка данных

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

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

Я нормализовал все даты и преобразовал их в тип datetime. Для текстовых данных я удалил все начальные и конечные пробелы и преобразовал нижний регистр в верхний. Что касается категорий, которые имеют разные названия, но указывают на одно и то же, я объединил их в одно.

Функциональная инженерия

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

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

Во-вторых, я выровнял категории для некоторых категориальных функций, которые имеют слишком много уровней. Например, в функции "Агентство по аресту" у меня есть 160 категорий. Но есть только три категории, которые встречаются чаще всего, поэтому я сгруппировал остальные категории в одну, в результате чего в общей сложности получилось 4 категории.

И последнее, что наиболее важно, я вывел важные черты, отражающие поведение обвиняемого. Вот два примера.

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

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

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

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

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

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

Минимальная стоимость

При маркетинге ответчикам мы допускаем два типа ошибок.

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

Тогда как выбрать порог? Например, если мы установим порог 0,2, мы будем меньше «упускать из виду», но обратимся к большему количеству «неправильных людей». Вместо этого, если мы установим порог на 0,9, у нас будет меньше ошибок от «неправильного человека», но мы «упустим» больше. Так как же нам сбалансировать два типа ошибок?

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

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

Посмотрим, как это работает.

Когда мы вводим оценочную стоимость «неправильного человека», которая составляет 800 долларов, и оценочную стоимость «упущенного», которая составляет 1000 долларов, в модель с затратами, модель рассчитает разные общие затраты на основе всех пороговых значений. Затем модель выбирает порог, который дает минимальную стоимость. В этом примере лучший порог - 0,533, а минимальная стоимость - 83 доллара.

Я также подсчитал стоимость подбрасывания монеты из-за двух типов ошибок, которая составляет 416 долларов, что указывает на то, что при использовании моей модели мы получаем среднюю экономию более 300 долларов на случай.

Этика данных

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

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

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

Спасибо за прочтение! Наслаждайтесь остатком дня!

Использованная литература:

[1] Чао Чен, Энди Лиау и Лео Брейман, Использование случайного леса для изучения несбалансированных данных (2004 г.), Технические отчеты Калифорнийского университета в Беркли.