Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Доповнюйте шахрайські транзакції за допомогою синтетичних даних в Amazon SageMaker

Розробка та навчання успішних моделей шахрайства машинного навчання (ML) вимагає доступу до великих обсягів високоякісних даних. Отримання цих даних є складним, оскільки доступні набори даних іноді недостатньо великі або достатньо неупереджені для корисного навчання моделі ML, і це може потребувати значних витрат і часу. Вимоги щодо регулювання та конфіденційності також перешкоджають використанню або обміну даними навіть у межах корпоративної організації. Процес авторизації використання конфіденційних даних і доступу до них часто затримує або зриває проекти ML. Крім того, ми можемо вирішити ці проблеми, генеруючи та використовуючи синтетичні дані.

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

Синтетичні дані використовуються в лабораторних умовах протягом двох десятиліть; ринок має докази корисності, що прискорює впровадження в комерційному та державному секторах. Gartner прогнозує що до 2024 року 60 відсотків даних, які використовуються для розробки ML та аналітичних рішень, будуть згенеровані синтетичним шляхом і що використання синтетичних даних продовжить суттєво зростати.

The Financial Conduct Authority, регулюючий орган Великобританії, визнає що «доступ до даних є каталізатором інновацій, а синтетичні фінансові дані можуть зіграти певну роль у підтримці інновацій і дозволити новим учасникам розробляти, тестувати та демонструвати цінність нових рішень».

Amazon SageMaker GroundTruth в даний час підтримує генерація синтетичних даних мічених даних синтетичного зображення. Ця публікація в блозі досліджує створення табличних синтетичних даних. Структуровані дані, такі як окремі та реляційні таблиці, а також дані часових рядів є типами, які найчастіше зустрічаються в корпоративній аналітиці.

Це повідомлення в блозі з двох частин; ми створюємо синтетичні дані в першій частині та оцінюємо їх якість друга частина.

У цій публікації блогу ви дізнаєтесь, як користуватися бібліотекою з відкритим кодом ydata-синтетичний та Ноутбуки AWS SageMaker для синтезу табличних даних для випадку використання шахрайства, коли ми не маємо достатньо шахрайських транзакцій для навчання високоточної моделі шахрайства. Тут описано загальний процес навчання моделі шахрайства після.

Огляд рішення

Мета цього підручника полягає в тому, щоб синтезувати менший клас надзвичайно незбалансованого набору даних про шахрайство з кредитними картками за допомогою оптимізованого генеративна змагальна мережа (GAN) званий WGAN-GP вивчати закономірності та статистичні властивості вихідних даних, а потім створювати нескінченні зразки синтетичних даних, які нагадують вихідні дані. Цей процес також можна використовувати для покращення вихідних даних шляхом підвищення вибірки рідкісних подій, як-от шахрайство, або для генерації крайніх випадків, яких немає в оригіналі.

Ми використовуємо набір даних про шахрайство з кредитними картками, опублікований ULB, яку можна завантажити з Згорнути. Створення синтетичних даних для класу меншості допомагає вирішити проблеми, пов’язані з незбалансованими наборами даних, що може допомогти в розробці більш точних моделей.

Ми використовуємо сервіси AWS, зокрема Amazon SageMaker і Amazon S3, використання хмарних ресурсів яких вимагає витрат.

Налаштуйте середовище розробки

SageMaker надає керований екземпляр блокнота Jupyter для створення моделей, навчання та розгортання.

Необхідні умови:

Щоб запустити SageMaker, потрібно мати обліковий запис AWS. Ви можете отримати почалася за допомогою SageMaker і спробуйте практичні посібники.

Інструкції щодо налаштування робочого середовища Jupyter Notebook див Почніть роботу з екземплярами ноутбуків Amazon SageMaker.

Крок 1. Налаштуйте екземпляр Amazon SageMaker

  1. Увійдіть у консоль AWS і знайдіть «SageMaker».
  2. Select Studio.
  3. Select Екземпляри ноутбуків на лівій панелі та виберіть Створіть екземпляр блокнота.
  4. На наступній сторінці (як показано на наступному зображенні) виберіть конфігурації віртуальної машини (VM) відповідно до ваших потреб і виберіть Створіть екземпляр блокнота. Зауважте, що ми використовували оптимізовану для ML віртуальну машину без GPU та 5 ГБ даних, ml.t3.medium під керуванням Amazon Linux 2 і ядра Jupyter Lab 3.
    Створіть екземпляр блокнота
  5. Екземпляр ноутбука буде готовий до використання протягом кількох хвилин.
  6. Select Відкрийте JupyterLab Для запуску.
    Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  7. Тепер, коли у нас є JupyterLab з необхідними специфікаціями, ми встановимо синтетичну бібліотеку.
pip install ydata-synthetic

Крок 2. Завантажте або витягніть справжній набір даних, щоб створити синтетичні дані

Завантажте довідкові дані з Kaggle або вручну, як ми робимо тут, або програмно через Kaggle API, якщо у вас є обліковий запис Kaggle. Якщо ви дослідите цей набір даних, то помітите, що клас «шахрайство» містить набагато менше даних, ніж клас «не шахрайство».

Якщо ви використовуєте ці дані безпосередньо для прогнозів машинного навчання, моделі завжди можуть навчатися прогнозувати «не шахрайство». Модель легко матиме вищу точність у випадках, не пов’язаних із шахрайством, оскільки випадки шахрайства трапляються рідко. Однак, оскільки виявлення випадків шахрайства є нашою метою в цій вправі, ми підвищимо класи шахрайства за допомогою синтетичних даних, змодельованих на основі реальних даних.

Створіть папку даних у JupyterLab і завантажте в неї файл даних Kaggle. Це дозволить вам використовувати дані в блокноті, починаючи з SageMaker поставляється зі сховищем який ви вказали під час створення екземпляра блокнота.

Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Цей набір даних становить 144 МБ

Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Потім ви можете прочитати дані за допомогою стандартного коду через бібліотеку pandas:

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

Дані виявлення шахрайства мають певні характеристики, а саме:

  • Великі дисбаланси класів (зазвичай у бік нешахрайських точок даних).
  • Занепокоєння щодо конфіденційності (через наявність конфіденційних даних).
  • Ступінь динамізму полягає в тому, що зловмисний користувач завжди намагається уникнути виявлення шахрайських транзакцій системами моніторингу.
  • Доступні набори даних дуже великі і часто не позначені.

Тепер, коли ви перевірили набір даних, давайте відфільтруємо клас меншості (клас «шахрайства» з набору даних кредитної картки) і виконаємо необхідні перетворення. Ви можете перевірити перетворення даних з цього ноутбук.

Коли цей набір даних класу меншості синтезується та додається назад до вихідного набору даних, це дозволяє створити більший синтезований набір даних, який усуває дисбаланс у даних. Ми можемо досягти більшої точності передбачення за допомогою навчання моделі виявлення шахрайства використовуючи новий набір даних.

Давайте синтезуємо новий набір даних про шахрайство.

Крок 3: Навчіть синтезатори та створіть модель

Оскільки у вас є дані, доступні в SageMaker, настав час запустити наші синтетичні моделі GAN.

Генеруюча змагальна мережа (GAN) складається з двох частин:

Команда generator вчиться генерувати правдоподібні дані. Згенеровані екземпляри стають негативними навчальними прикладами для дискримінатора.

Команда дискримінатор вчиться відрізняти фальшиві дані генератора від реальних даних. Дискримінатор карає генератор за отримання неправдоподібних результатів.

Коли починається навчання, генератор видає явно підроблені дані, а дискримінатор швидко вчиться розпізнавати, що це підробка. У міру навчання генератор наближається до виходу, який може обдурити дискримінатора. Нарешті, якщо навчання генератора пройшло добре, дискримінатор гірше розрізняє справжність від підробки. Він починає класифікувати підроблені дані як справжні, і їх точність знижується.

І генератор, і дискримінатор є нейронними мережами. Вихід генератора підключається безпосередньо до входу дискримінатора. Через зворотне поширення, класифікація дискримінатора надає сигнал, який генератор використовує для оновлення своїх ваг.

Крок 4: вибірка синтетичних даних із синтезатора

Тепер, коли ви створили та навчили свою модель, настав час відібрати необхідні дані, подавши шум до моделі. Це дає змогу генерувати стільки синтетичних даних, скільки забажаєте.

У цьому випадку ви створюєте кількість синтетичних даних, що дорівнює кількості фактичних даних, оскільки це полегшує порівняння аналогічних розмірів вибірки на кроці 5.

У нас є можливість відібрати рядки, що містять шахрайські транзакції, що в поєднанні з несинтетичними даними про шахрайство призведе до рівномірного розподілу класів «шахрайство» та «не шахрайство». Оригінальний Набір даних Kaggle містить 492 випадки шахрайства з 284,807 XNUMX транзакцій, тому ми створюємо таку саму вибірку з синтезатора.

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

У нас є можливість збільшувати вибірку рядків, що містять шахрайські транзакції, у процесі, який називається доповненням даних, який у поєднанні з несинтетичними даними шахрайства призведе до рівномірного розподілу класів «шахрайство» та «не шахрайство».

Крок 5: Порівняйте та оцініть синтетичні дані з реальними даними

Хоча цей крок необов’язковий, ви можете якісно візуалізувати та оцінити згенеровані синтетичні дані порівняно з фактичними даними за допомогою діаграми розсіювання.

Це допомагає нам ітерувати нашу модель, налаштовуючи параметри, змінюючи розмір вибірки та роблячи інші перетворення для створення найточніших синтетичних даних. Така природа точності завжди залежить від мети синтезу

На зображенні нижче показано, наскільки схожі дані фактичного шахрайства та синтетичного шахрайства на етапах навчання. Це дає хорошу якісну перевірку подібності між синтетичними та фактичними даними, а також те, як це покращується, коли ми запускаємо його через кілька епох (передача всього навчального набору даних через алгоритм). Зауважте, що коли ми запускаємо більше епох, набір шаблонів синтетичних даних наближається до вихідних даних.

Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Крок 6: Очистіть

Нарешті, зупиніть свій екземпляр блокнота, коли завершите синтез, щоб уникнути неочікуваних витрат.

Висновок

Як алгоритми машинного навчання та структури кодування швидко розвиватися, високоякісні дані в масштабі є найбільш дефіцитним ресурсом у ML. Якісні синтетичні набори даних можна використовувати в різних завданнях.

У цій публікації в блозі ви дізналися про важливість синтезу набору даних за допомогою бібліотеки з відкритим кодом, яка використовує WGAN-GP. Це активна дослідницька сфера з тисячами опублікованих статей про GAN і багатьма сотнями іменованих GAN, доступних для експериментів. Існують варіанти, оптимізовані для конкретних випадків використання, як-от реляційні таблиці та дані часових рядів.

Ви можете знайти весь код, використаний для цієї статті, тут ноутбук, і, звісно, ​​інші навчальні посібники доступні на SageMaker офіційна сторінка документації.

У другій У цій серії публікацій у блозі, що складається з двох частин, ми детально зануримося в те, як оцінити якість синтетичних даних з точки зору вірності, корисності та конфіденційності.


Про автора

Розширення шахрайських транзакцій за допомогою синтетичних даних у Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Фаріс Хаддад є провідним спеціалістом із обробки даних та аналізу в команді стратегічних пошуків AABG. Він допомагає підприємствам успішно стати керованими даними.

Часова мітка:

Більше від AWS Машинне навчання