Самый важный процесс для любой проблемы науки о данных, который вам следует изучить.
Что вы узнаете?
- Развивайте навыки критического мышления, необходимые для проектирования функций
- Разработка функций для алгоритма борьбы с отмыванием денег
Вступление
Разработка функций? [1]
Функция - это числовое представление необработанных данных. В структурированных данных это независимые переменные, от которых зависит одна из переменных. Функции, которые уже присутствуют в наборе данных, обычно называются полями данных, а те, которые создаются с помощью знаний предметной области, известны как переменные-кандидаты или экспертные переменные. Этот процесс кодирования информации в форму новой переменной известен как разработка функций.
Зачем нам нужно больше функций?
Эффективность модели машинного обучения напрямую связана с тем, насколько точно независимые функции собирают правильную информацию о проблеме. В результате, чтобы справиться с любой проблемой, мы должны создать как можно больше переменных, чтобы позже мы могли выбрать наиболее важные функции для нашей модели и, следовательно, повысить производительность модели. Однако этот процесс создания новых функций - утомительная работа и требует хорошего понимания проблемы с некоторыми знаниями предметной области. В этой статье я собираюсь описать пример, чтобы продемонстрировать, как можно создавать различные переменные-кандидаты для модели машинного обучения по борьбе с отмыванием денег.
Сначала мы начнем с понимания проблемы, а затем применим эти знания для разработки функций. Ниже приводится последовательность шагов, описанных ниже.
ШАГ 1
Понятие проблемы
Отмывание денег - это незаконный процесс превращения «грязных» денег (денег, полученных от незаконного бизнеса, например, от продажи наркотиков) в «чистые» деньги (законные деньги) либо посредством неясной последовательности банковских переводов, либо посредством коммерческих транзакций.
Три основных этапа отмывания денег:
Размещение - это тот этап, когда «грязные» деньги вкладываются в законную финансовую систему. Наиболее распространенный способ достижения этого - смурфинг, который включает отправку небольших сумм денег на банковские счета, которые ниже пороговых значений для отчетности по борьбе с отмыванием денег, а затем их депонирование тому же отправителю.
Наслоение - это второй этап и один из самых сложных этапов, который включает в себя как можно более сложное обнаружение денег и дальнейшее их перемещение от источника. Деньги целенаправленно переводятся так быстро, что банк не может их обнаружить.
Интеграция - заключительный этап включает возврат «чистых» денег в экономику. Один из наиболее распространенных способов - купить недвижимость на имя подставной компании, подтверждающей законную сделку.
Из-за нехватки места я упомянул только более широкое определение проблемы только для демонстрации. Тем не менее, следует провести надлежащее исследование проблемы, читая различные исследовательские работы, патенты и многое другое.
ШАГ 2
Разбейте проблему на более мелкие фрагменты для эффективного создания переменных [2]
Изучив проблему, вы должны выделить все полученные вами идеи. Например, ниже я написал несколько из них, которые вы легко можете получить на Шаге 1:
- Существенное увеличение денежных вкладов любого физического или юридического лица без видимой причины
- Депозиты впоследствии переводятся в течение короткого периода со счета в пункт назначения, обычно не связанный с клиентом.
- На счетах преобладают операции с наличностью, а не чеки или аккредитивы
- большое количество физических лиц, осуществляющих платежи на один и тот же счет без объяснения причин.
- Снятие крупных сумм наличных с нового счета или со счета, на который только что был получен неожиданно крупный кредит из-за границы
Точно так же, чем лучше вы поймете проблему, тем больше понимания вы получите и, следовательно, у вас будут лучшие функции для повышения производительности вашей модели. Следовательно, все вышеперечисленные выводы из проблемы должны быть учтены при создании переменных-кандидатов, чтобы добавить больше информации в модель.
ШАГ 3
Анализируйте набор данных
Чтобы продолжить, предположим, что у нас есть гипотетический набор данных со следующими полями данных с их описанием для разработки модели борьбы с отмыванием денег. В реальном сценарии специалисты по данным, работающие в банках, могут легко получить такие данные с помощью следующих полей данных. Вы также можете взглянуть на доступный общедоступный набор данных.
ШАГ 4
Создание переменных-кандидатов
Вот самая интересная, самая важная и самая сложная часть любой проблемы науки о данных, также известная как Feature Engineering:
4.1. Объедините два или более разных поля данных, чтобы сформировать новую категориальную переменную
Для нашего первого набора переменных вы можете подумать об объединении двух или более полей данных вместе, чтобы создать новую переменную. Чтобы понять это, давайте создадим пары «Origin_acct», «Destination_acct» и «Transaction_type», как показано в таблице ниже:
В приведенной выше таблице вы можете увидеть новый столбец с именем «Origin_acct-Destination_acct», содержащий объединенные значения соответствующих полей данных. Точно так же можно увидеть и другие столбцы с таким же подходом.
Почему?
Объединение «Origin_acct» с «Destination_acct» поможет контролировать процесс «Smurfing», когда несколько промежуточных учетных записей переводят небольшие суммы одному отправителю несколько раз. Кроме того, в одной из проблем, обсуждаемых ранее, было замечено, что эти преступники предпочитают наличные транзакции, а не формы дебета и кредита, такие как чеки, переводные векселя и т.д. измерение обучения для нашего алгоритма, чтобы узнать больше о характере транзакций и отслеживать, увеличилось ли количество транзакций с наличными для этого конкретного счета или нет (обсуждается в 4.2). Такие действия строго ненормальны, и вы увидите, как другие числовые переменные-кандидаты (обсуждаемые позже), связанные с этими конкатенированными полями, безусловно, помогут нам двигаться в правильном направлении.
4.2. Переменные-кандидаты частоты [1]
Частотные переменные будут кодировать количество транзакций, выполняемых каждой функцией (показано на рисунке), что поможет в сборе информации, такой как увеличение количества транзакций для конкретной пары учетных записей, что может быть сигналом о подозрительной активности. На рисунке ниже показаны различные комбинации частотных переменных. Например, вы можете подсчитать, сколько раз origin_acct использовался в один и тот же день (0), за последний 1 день, за последние 3 дня и т. Д.
Более высокое значение, рассчитанное для периода времени, означает, что в поведении этой учетной записи есть что-то ненормальное. В таблице ниже вы можете увидеть, как будет выглядеть частотная переменная для одной из учетных записей Origin:
Столбец Origin_frequency_0 начинается с 1 (при условии, что он впервые используется для транзакции), а число остается 1 на следующий день, потому что 05/02/2014 он виден впервые. Точно так же вы можете сделать вывод, как были рассчитаны другие числа.
4.3. Переменные суммы
Переменные суммы могут помочь в вычислении средней, максимальной, медианы и общей суммы транзакции для каждой учетной записи за последние 0, 1, 3, 7, 14 и 30 дней (0 означает тот же день), что поможет в отслеживании третьего этапа, а именно интеграции, когда большая сумма денег снимается с банковского счета без какой-либо веской причины, возможно, для покупки недвижимости. Следовательно, это поможет модели в выявлении любых отклонений от нормы в суммах транзакций. Например, будет один столбец, содержащий общую сумму транзакций для целевой учетной записи за последние 3 дня. Аналогичным образом могут быть сформированы другие комбинации, как показано ниже:
В таблице ниже показаны пары переменных количества:
В приведенной выше таблице столбец «Origin_acct-total_Amount_3_days» содержит общую сумму транзакций, проведенных учетной записью Origin с номером 4586524 за последние 3 дня. Вот почему в последней строке остается 98,4, потому что учетная запись не использовалась в течение последних 3 дней. В другом столбце вычисляется фактическая сумма транзакции в тот же день, деленная на общую сумму за последние 3 дня.
4.4. Переменные времени с момента [1]
Эти переменные могут быть очень удобны для инкапсуляции информации о том, как быстро выполняются транзакции для учетных записей. Он вычисляет время между последним использованием учетной записи для транзакции и временем текущей транзакции. Чем быстрее последующие транзакции для одного лица, тем выше вероятность мошенничества. Следовательно, это поможет в отслеживании 2-го этапа, а именно наслоения. В следующей таблице показан пример переменной времени с момента:
4.5. Переменные-кандидаты на изменение скорости [1]
Этот последний набор переменных может отслеживать внезапное изменение нормального поведения учетной записи, вычисляя, как количество транзакций или сумма, переведенная за последний день (0 и 1 день), изменились по сравнению с другим набором периодов (7, 14 , & 30 дней). Формула для этого же следующая:
Следовательно, если произойдет неожиданное изменение количества транзакций или средней суммы для этой учетной записи, наша модель сможет изучить это изменение. В следующей таблице показан пример переменных изменения скорости:
Резюме
Вы видели, как все мы могли кодировать все больше и больше информации о данной проблеме через множество переменных-кандидатов, используя только заданные поля данных и без каких-либо внешних данных. Подводя итог, вы узнали следующие переменные с соответствующей информацией, закодированной в них:
Конкатенированные переменные - помогли связать исходную учетную запись, целевую учетную запись и тип транзакции друг с другом, что помогло отследить проблему смурфинга и более высоких объемов снятия наличных.
Переменные частоты - помогли узнать, как часто используется учетная запись.
Переменные суммы - помогли узнать о величине суммы транзакций.
Переменные с течением времени - помогли узнать скорость транзакций.
Переменные изменения скорости - помогли определить внезапное изменение поведения аккаунтов.
Я знаю, что обсуждаемая выше проблема кажется очень специфичной только для моделей обнаружения мошенничества, но, поверьте мне, она наверняка поможет вам в развитии тех навыков критического мышления, которые необходимы для создания экспертных переменных для любой задачи науки о данных. Надеюсь, вы нашли его полезным и стоящим к прочтению. Ваше здоровье!
Ссылки
[1] Гао, J.X., Zhou, Z.R., Ai, J.S., Xia, B.X. и Коггешалл, С. (2019) Прогнозирование мошенничества с транзакциями по кредитным картам с использованием алгоритмов машинного обучения. Журнал интеллектуальных обучающих систем и приложений, 11, 33–63. Https://doi.org/10.4236/jilsa.2019.113003
[2] Руководство по борьбе с отмыванием денег и финансированием терроризма. Https://www.imolin.org/doc/amlid/Trinidad&Tobago_Guidlines%20on%20Combatting%20Money%20Laundering%20&%20Terrorist%20Financing.pdf