Bigquery ML для обнаружения мошенничества при транзакциях по кредитным картам с помощью консоли

1. Введение

В этой лабораторной работе вы будете использовать BigQuery для обучения и запуска модели с табличными данными с помощью консоли. Это решение является популярным дополнением к сервисам запуска и обучения моделей на основе SQL. BigQuery ML позволяет пользователям создавать и запускать модели машинного обучения в BigQuery с помощью SQL-запросов. Цель состоит в том, чтобы демократизировать машинное обучение, позволяя специалистам по SQL создавать модели, используя существующие инструменты, и повысить скорость разработки за счет устранения необходимости перемещения данных.

Что вы узнаете

  • Изучите данные, доступные в BigQuery.
  • Создайте модель с использованием SQL в BigQuery с помощью консоли.
  • Оцените результаты созданной модели.
  • С помощью созданной модели можно предсказать, является ли транзакция мошеннической или нет.

2. О данных

Данные содержат информацию о транзакциях, совершенных с помощью кредитных карт европейскими держателями карт в сентябре 2013 года. В этом наборе данных представлены транзакции, произошедшие за два дня, из которых 492 случая мошенничества составили 284 807 транзакций. Набор данных сильно несбалансирован: на положительный класс (мошенничество) приходится 0,172% всех транзакций.

Данные содержат только числовые входные переменные, являющиеся результатом преобразования методом главных компонент (PCA) . К сожалению, из-за соображений конфиденциальности мы не можем предоставить исходные характеристики и дополнительную информацию о данных.

  1. Характеристики V1, V2, ... V28 — это основные компоненты, полученные с помощью метода главных компонент (PCA); единственными характеристиками, которые не были преобразованы с помощью PCA, являются «Время» и «Количество».
  2. Параметр «Время » содержит количество секунд, прошедших между каждой транзакцией и первой транзакцией в наборе данных.
  3. Параметр «Сумма» обозначает сумму транзакции; этот параметр можно использовать для обучения, зависящего от примера и учитывающего затраты.
  4. В качестве зависимой переменной используется параметр "Класс" , который принимает значение 1 в случае мошенничества и 0 в противном случае.

Данный набор данных был собран и проанализирован в ходе исследовательского сотрудничества Worldline и группы машинного обучения ( http://mlg.ulb.ac.be ) Брюссельского свободного университета (ULB) по анализу больших данных и выявлению мошенничества.

Более подробная информация о текущих и завершенных проектах по смежным темам доступна на сайте https://www.researchgate.net/project/Fraud-detection-5 и на странице проекта DefeatFraud.

Цитата:

Андреа Даль Поццоло, Оливье Каэлен, Рейд А. Джонсон и Джанлука Бонтемпи. Калибровка вероятности с использованием недовыборки для несбалансированной классификации. В сборнике трудов Симпозиума по вычислительному интеллекту и интеллектуальному анализу данных (CIDM), IEEE, 2015.

Даль Поццоло, Андреа; Каэлен, Оливье; Ле Борнь, Янн-Эль; Ватершут, Серж; Бонтемпи, Джанлука. Уроки, извлеченные из обнаружения мошенничества с кредитными картами с точки зрения практикующего специалиста . Экспертные системы с приложениями, 41, 10, 4915-4928, 2014, Pergamon.

Даль Поццоло, Андреа; Боракки, Джакомо; Каэлен, Оливье; Алиппи, Чезаре; Бонтемпи, Джанлука. Выявление мошенничества с кредитными картами: реалистичное моделирование и новая стратегия обучения, Труды IEEE по нейронным сетям и системам обучения, 29, 8, 3784-3797, 2018, IEEE

Даль Поццоло, Андреа. Адаптивное машинное обучение для обнаружения мошенничества с кредитными картами. Диссертация на соискание степени доктора философии в области машинного обучения (научный руководитель: Г. Бонтемпи).

Карсильо, Фабрицио; Даль Поццоло, Андреа; Ле Борнь, Янн-Аэль; Кэлен, Оливье; Маззер, Яннис; Бонтемпи, Джанлука. Scarff: масштабируемая платформа для потокового обнаружения мошенничества с кредитными картами с помощью Spark , Information fusion, 41, 182-194,2018, Elsevier

Карсилло, Фабрицио; Ле Борнь, Ян-Аэль; Каэлен, Оливье; Бонтемпи, Джанлука. Стратегии активного обучения в потоковом режиме для обнаружения мошенничества с кредитными картами в реальных условиях: оценка и визуализация, Международный журнал науки о данных и аналитики, 5,4,285-300,2018, Springer International Publishing

Бертран Лебишо, Ян-Аэль Ле Борнь, Лиюнь Хе, Фредерик Обле, Джанлука Бонтемпи. Методы адаптации домена глубокого обучения для обнаружения мошенничества с кредитными картами , INNSBDDL 2019: Последние достижения в области больших данных и глубокого обучения, стр. 78-88, 2019

Фабрицио Карчилло, Ян-Аэль Ле Борнь, Оливье Каэлен, Фредерик Обле, Джанлука Бонтемпи. Сочетание обучения без учителя и обучения с учителем в обнаружении мошенничества с кредитными картами. Информационные науки, 2019.

3. Настройте свою среду.

Для выполнения этого практического задания вам потребуется проект Google Cloud Platform с включенной функцией оплаты. Чтобы создать проект, следуйте инструкциям здесь .

  1. Включите API BigQuery

Перейдите в BigQuery и выберите «Включить», если эта опция еще не включена. Она понадобится вам для создания модели.

4. Изучите данные.

Шаг 1: Перейдите на сайт Bigquery.

Найдите BigQuery по адресу https://cloud.google.com/console

Шаг 2: Изучите данные с помощью запроса.

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

SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5

Шаг 3: Выполнить

Нажмите кнопку «Выполнить» выше, чтобы выполнить запрос.

c670e136ecd58236.png

Результаты

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

be082fb135879158.png

Изучите задействованные столбцы и результат.

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

SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=1;

5. Создайте выходной набор данных.

Шаг 1: Создайте набор данных для построения модели.

  1. В панели «Проводник» (слева) выберите проект, над которым вы сейчас работаете, и нажмите на три точки рядом с ним.

7618699754e066bd.png

  1. Нажмите кнопку «Создать набор данных» в правом верхнем углу.

17851cc9db05dc1.png

  1. Введите подробные сведения о названии набора данных, сроке хранения, местоположении и т. д. Используйте эти настройки.

b8b6731408f61d57.png

6. Создайте модель логистической регрессии.

Шаг 1: Создайте оператор

В окне запросов введите следующий запрос для создания модели. Ознакомьтесь с основными параметрами этого запроса. Подробное объяснение можно найти по этой ссылке .

INPUT_LABEL_COLS указывают метку прогноза.

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

Параметр MODEL_TYPE указывает на используемый алгоритм, в данном случае это логистическая регрессия.

Параметр DATA_SPLIT_METHOD указывает на разделение обучающих и тестовых данных.

CREATE OR REPLACE MODEL advdata.ulb_fraud_detection 
TRANSFORM(
    * EXCEPT(Amount),
    SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
    INPUT_LABEL_COLS=['class'],
    AUTO_CLASS_WEIGHTS = TRUE,
    DATA_SPLIT_METHOD='seq',
    DATA_SPLIT_COL='Time',
    MODEL_TYPE='logistic_reg'
) AS

SELECT 
 *
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`

Шаг 2: Выполнить

Выполните указанное выше действие. Это займет несколько минут.

Обратите внимание на ключевые моменты после завершения забега.

3385a54d3907443e.png

  1. В панели Проводника будет создана модель.
  2. В панели результатов запроса будет отображаться время, затраченное на обработку SQL-запроса, аналогично любому SQL-запросу.
  3. В панели результатов запроса также будет ссылка «Перейти к модели», чтобы вы могли ее изучить.

Шаг 3: Исследование

Изучите созданную модель, нажав кнопку «Перейти к модели» или воспользовавшись панелью «Проводник». Вкладки предоставляют информацию о созданной модели, обучении, оценке и т. д. Просмотрите результаты.

b350f1b94835f2d1.png

Мы подробнее рассмотрим этот вопрос в следующих разделах.

Чтобы узнать больше о логистической регрессии, перейдите сюда.

7. Изучение метрик оценки модели.

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

После завершения обучения модели щелкните по только что обученной модели и перейдите на вкладку «Оценка». Здесь представлено множество метрик оценки — мы сосредоточимся только на одной: roc_auc.

 SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)

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

c3c80286082dc336.png

Чтобы узнать больше о результатах, ознакомьтесь с документацией ML.Evaluate здесь.

Точность и полнота

ROC-кривая и AUC

8. Спрогнозируйте время начала занятия.

Нажмите «Составить новый запрос» и выполните следующий SQL-запрос. Указанное здесь время имеет мошенническую величину. Мы пытаемся оценить, работает ли прогнозирование.

SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
 (SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)

Результат должен выглядеть примерно так (числа могут отличаться).

676fc8accdab2f6c.png

В данном случае мы отображаем сумму с соответствующей вероятностью для метки. Столбец «Класс» здесь указывает на фактические результаты.

Чтобы узнать больше о ML.PREDICT, смотрите здесь .

9. Уборка

Если вы хотите очистить ресурсы, созданные в ходе этой лабораторной работы, откройте набор данных на панели «Проводник» в левой части экрана.

e7d18fadd2b781be.png

Нажмите кнопку «Удалить набор данных» в правом верхнем углу.

b47bc819869bed6c.png

Для подтверждения данных введите название набора данных еще раз. В нашем случае это будет advdata.

10. Поздравляем!

Поздравляем, вы успешно создали свою первую модель, оценили её и спрогнозировали с помощью контролируемого машинного обучения!

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

Что дальше?

Ознакомьтесь с другими способами прогнозирования.

Справочная документация