Tutorial: Mulai menggunakan AWS SDK untuk Python (Boto3) - Amazon Fraud Detector

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Mulai menggunakan AWS SDK untuk Python (Boto3)

Tutorial ini menjelaskan cara membangun dan melatih model Amazon Fraud Detector dan kemudian menggunakan model ini untuk menghasilkan prediksi penipuan real-time menggunakan. AWS SDK untuk Python (Boto3) Model dilatih menggunakan file data contoh pendaftaran akun yang Anda unggah ke bucket Amazon S3.

Pada akhir tutorial ini, Anda menyelesaikan tindakan berikut:

  • Membangun dan melatih model Amazon Fraud Detector

  • Hasilkan prediksi penipuan waktu nyata

Prasyarat

Berikut ini adalah langkah-langkah prasyarat untuk tutorial ini.

Memulai

Boto adalah Amazon Web Services (AWS) SDK untuk Python. Anda dapat menggunakannya untuk membuat, mengkonfigurasi, dan mengelola Layanan AWS. Untuk petunjuk tentang cara menginstal Boto3, lihat AWS SDK for Python (Boto3).

Setelah Anda menginstal AWS SDK untuk Python (Boto3), jalankan perintah contoh Python berikut untuk mengonfirmasi bahwa lingkungan Anda dikonfigurasi dengan benar. Jika lingkungan Anda dikonfigurasi dengan benar, respons berisi daftar detektor. Jika tidak ada detektor yang dibuat, daftarnya kosong.

import boto3 fraudDetector = boto3.client('frauddetector') response = fraudDetector.get_detectors() print(response)

Pada langkah ini, Anda membuat sumber daya yang digunakan untuk menentukan model, acara, dan aturan.

Buat variabel

Variabel adalah elemen data dari dataset Anda yang ingin Anda gunakan untuk membuat jenis acara, model, dan aturan.

Dalam contoh berikut, CreateVariableAPI digunakan untuk membuat dua variabel. Variabel-variabelnya adalah email_address danip_address. Tetapkan mereka ke jenis variabel yang sesuai: EMAIL_ADDRESS danIP_ADDRESS. Variabel ini adalah bagian dari contoh kumpulan data yang Anda unggah. Saat Anda menentukan jenis variabel, Amazon Fraud Detector menafsirkan variabel selama pelatihan model dan saat mendapatkan prediksi. Hanya variabel dengan tipe variabel terkait yang dapat digunakan untuk pelatihan model.

import boto3 fraudDetector = boto3.client('frauddetector') #Create variable email_address fraudDetector.create_variable( name = 'email_address', variableType = 'EMAIL_ADDRESS', dataSource = 'EVENT', dataType = 'STRING', defaultValue = '<unknown>' ) #Create variable ip_address fraudDetector.create_variable( name = 'ip_address', variableType = 'IP_ADDRESS', dataSource = 'EVENT', dataType = 'STRING', defaultValue = '<unknown>' )

Buat tipe entitas

Entitas mewakili siapa yang melakukan acara dan tipe entitas mengklasifikasikan entitas. Contoh klasifikasi termasuk pelanggan, pedagang, atau akun.

Dalam contoh berikut, PutEntityTypeAPI digunakan untuk membuat tipe sample_customer entitas.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_entity_type( name = 'sample_customer', description = 'sample customer entity type' )

Buat label

Label mengklasifikasikan suatu peristiwa sebagai penipuan atau sah dan digunakan untuk melatih model deteksi penipuan. Model belajar mengklasifikasikan peristiwa menggunakan nilai label ini.

Dalam contoh berikut, API Putlabel digunakan untuk membuat dua label, fraud danlegit.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_label( name = 'fraud', description = 'label for fraud events' ) fraudDetector.put_label( name = 'legit', description = 'label for legitimate events' )

Dengan Amazon Fraud Detector, Anda membuat model yang mengevaluasi risiko dan menghasilkan prediksi penipuan untuk setiap peristiwa. Tipe acara mendefinisikan struktur peristiwa individu.

Dalam contoh berikut, PutEventTypeAPI digunakan untuk membuat jenis acarasample_registration. Anda menentukan jenis acara dengan menentukan variabel (email_address,ip_address), tipe entitas (sample_customer), dan label (fraud,legit) yang Anda buat pada langkah sebelumnya.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_event_type ( name = 'sample_registration', eventVariables = ['ip_address', 'email_address'], labels = ['legit', 'fraud'], entityTypes = ['sample_customer'])

Amazon Fraud Detector melatih model untuk belajar mendeteksi penipuan untuk jenis peristiwa tertentu. Pada langkah sebelumnya, Anda membuat jenis acara. Pada langkah ini, Anda membuat dan melatih model untuk jenis acara. Model bertindak sebagai wadah untuk versi model Anda. Setiap kali Anda melatih model, versi baru dibuat.

Gunakan kode contoh berikut untuk membuat dan melatih model Wawasan Penipuan Online. Model ini disebutsample_fraud_detection_model. Ini untuk jenis acara sample_registration menggunakan dataset contoh pendaftaran akun yang Anda unggah ke Amazon S3.

Untuk informasi selengkapnya tentang berbagai jenis model yang didukung Amazon Fraud Detector, lihatPilih jenis model.

Buat model

Dalam contoh berikut, CreateModelAPI digunakan untuk membuat model.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model ( modelId = 'sample_fraud_detection_model', eventTypeName = 'sample_registration', modelType = 'ONLINE_FRAUD_INSIGHTS')

Latih model

Dalam contoh berikut, CreateModelVersionAPI digunakan untuk melatih model. Tentukan 'EXTERNAL_EVENTS' untuk trainingDataSource dan lokasi Amazon S3 tempat Anda menyimpan kumpulan data contoh dan bucket Amazon S3 untuk. RoleArnexternalEventsDetail Untuk trainingDataSchema parameter, tentukan bagaimana Amazon Fraud Detector menafsirkan data contoh. Lebih khusus lagi, tentukan variabel mana yang akan disertakan dan bagaimana mengklasifikasikan label acara.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model_version ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', trainingDataSource = 'EXTERNAL_EVENTS', trainingDataSchema = { 'modelVariables' : ['ip_address', 'email_address'], 'labelSchema' : { 'labelMapper' : { 'FRAUD' : ['fraud'], 'LEGIT' : ['legit'] } } }, externalEventsDetail = { 'dataLocation' : 's3://amzn-s3-demo-bucket/your-example-data-filename.csv', 'dataAccessRoleArn' : 'role_arn' } )

Anda dapat melatih model Anda beberapa kali. Setiap kali Anda melatih model, versi baru dibuat. Setelah pelatihan model selesai, status versi model diperbarui keTRAINING_COMPLETE. Anda dapat meninjau skor kinerja model dan metrik kinerja model lainnya.

Tinjau kinerja model

Langkah penting dalam menggunakan Amazon Fraud Detector adalah menilai keakuratan model Anda menggunakan skor model dan metrik kinerja. Setelah pelatihan model selesai, Amazon Fraud Detector memvalidasi kinerja model menggunakan 15% data Anda yang tidak digunakan untuk melatih model. Ini menghasilkan skor kinerja model dan metrik kinerja lainnya.

Gunakan DescribeModelVersionsAPI untuk meninjau performa model. Lihat skor keseluruhan kinerja Model dan semua metrik lain yang dihasilkan oleh Amazon Fraud Detector untuk model ini.

Untuk mempelajari lebih lanjut tentang skor kinerja model dan metrik kinerja, lihat Skor model danMetrik kinerja model.

Anda dapat mengharapkan semua model Amazon Fraud Detector Anda yang terlatih memiliki metrik kinerja deteksi penipuan dunia nyata, yang mirip dengan metrik dalam tutorial ini.

Menyebarkan model

Setelah Anda meninjau metrik kinerja model terlatih Anda, terapkan model dan sediakan untuk Amazon Fraud Detector untuk menghasilkan prediksi penipuan. Untuk menerapkan model terlatih, gunakan UpdateModelVersionStatusAPI. Dalam contoh berikut, ini digunakan untuk memperbarui status versi model ke ACTIVE.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.update_model_version_status ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', modelVersionNumber = '1.00', status = 'ACTIVE' )

Detektor berisi logika deteksi, seperti model dan aturan. Logika ini untuk acara tertentu yang ingin Anda evaluasi untuk penipuan. Aturan adalah kondisi yang Anda tentukan untuk memberi tahu Amazon Fraud Detector cara menafsirkan nilai variabel selama prediksi. Dan hasilnya adalah hasil dari prediksi penipuan. Detektor dapat memiliki beberapa versi dengan setiap versi memiliki status DRAFT, ACTIVE, atau INACTIVE. Versi detektor harus memiliki setidaknya satu aturan yang terkait dengannya.

Gunakan kode contoh berikut untuk membuat detektor, aturan, hasil, dan untuk mempublikasikan detektor.

Buat detektor

Dalam contoh berikut, PutDetectorAPI digunakan untuk membuat sample_detector detektor untuk jenis sample_registration peristiwa.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_detector ( detectorId = 'sample_detector', eventTypeName = 'sample_registration' )

Ciptakan hasil

Hasil diciptakan untuk setiap kemungkinan hasil prediksi penipuan. Dalam contoh berikut, PutOutcomeAPI digunakan untuk membuat tiga hasil -verify_customer,review, danapprove. Hasil ini kemudian ditetapkan untuk aturan.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.put_outcome( name = 'verify_customer', description = 'this outcome initiates a verification workflow' ) fraudDetector.put_outcome( name = 'review', description = 'this outcome sidelines event for review' ) fraudDetector.put_outcome( name = 'approve', description = 'this outcome approves the event' )

Buat aturan

Aturan terdiri dari satu atau lebih variabel dari dataset Anda, ekspresi logika, dan satu atau lebih hasil.

Dalam contoh berikut, CreateRuleAPI digunakan untuk membuat tiga aturan berbeda:high_risk,medium_risk, danlow_risk. Buat ekspresi aturan untuk membandingkan sample_fraud_detection_model_insightscore nilai skor kinerja model dengan berbagai ambang batas. Ini untuk menentukan tingkat risiko suatu peristiwa dan menetapkan hasil yang ditentukan pada langkah sebelumnya.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_rule( ruleId = 'high_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore > 900', language = 'DETECTORPL', outcomes = ['verify_customer'] ) fraudDetector.create_rule( ruleId = 'medium_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore <= 900 and $sample_fraud_detection_model_insightscore > 700', language = 'DETECTORPL', outcomes = ['review'] ) fraudDetector.create_rule( ruleId = 'low_fraud_risk', detectorId = 'sample_detector', expression = '$sample_fraud_detection_model_insightscore <= 700', language = 'DETECTORPL', outcomes = ['approve'] )

Buat versi detektor

Versi detektor mendefinisikan model dan aturan yang digunakan untuk mendapatkan prediksi penipuan.

Dalam contoh berikut, CreateDetectorVersionAPI digunakan untuk membuat versi detektor. Ini dilakukan dengan memberikan detail versi model, aturan, dan mode eksekusi aturan FIRST_MATCHED. Mode eksekusi aturan menentukan urutan untuk mengevaluasi aturan. Mode eksekusi aturan FIRST_MATCHED menetapkan bahwa aturan dievaluasi secara berurutan, pertama hingga terakhir, berhenti pada aturan pertama yang cocok.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_detector_version( detectorId = 'sample_detector', rules = [{ 'detectorId' : 'sample_detector', 'ruleId' : 'high_fraud_risk', 'ruleVersion' : '1' }, { 'detectorId' : 'sample_detector', 'ruleId' : 'medium_fraud_risk', 'ruleVersion' : '1' }, { 'detectorId' : 'sample_detector', 'ruleId' : 'low_fraud_risk', 'ruleVersion' : '1' } ], modelVersions = [{ 'modelId' : 'sample_fraud_detection_model', 'modelType': 'ONLINE_FRAUD_INSIGHTS', 'modelVersionNumber' : '1.00' } ], ruleExecutionMode = 'FIRST_MATCHED' )

Langkah terakhir dari tutorial ini menggunakan detektor yang sample_detector dibuat pada langkah sebelumnya untuk menghasilkan prediksi penipuan untuk jenis sample_registration peristiwa secara real time. Detektor mengevaluasi contoh data yang diunggah ke Amazon S3. Respons mencakup skor kinerja model serta hasil apa pun yang terkait dengan aturan yang cocok.

Dalam contoh berikut, GetEventPredictionAPI digunakan untuk menyediakan data dari pendaftaran akun tunggal dengan setiap permintaan. Untuk tutorial ini, ambil data (email_address dan ip_address) dari file data contoh pendaftaran akun. Setiap baris (baris) setelah baris header atas mewakili data dari acara pendaftaran akun tunggal.

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.get_event_prediction( detectorId = 'sample_detector', eventId = '802454d3-f7d8-482d-97e8-c4b6db9a0428', eventTypeName = 'sample_registration', eventTimestamp = '2020-07-13T23:18:21Z', entities = [{'entityType':'sample_customer', 'entityId':'12345'}], eventVariables = { 'email_address': 'johndoe@exampledomain.com', 'ip_address': '1.2.3.4' } )

Setelah Anda menyelesaikan tutorial ini, Anda melakukan hal berikut:

  • Mengunggah contoh dataset peristiwa ke Amazon S3.

  • Membuat variabel, entitas, dan label yang digunakan untuk membuat dan melatih model.

  • Membuat dan melatih model menggunakan contoh dataset.

  • Melihat skor kinerja model dan metrik kinerja lainnya yang dihasilkan Amazon Fraud Detector.

  • Menggunakan model deteksi penipuan.

  • Membuat detektor dan menambahkan model yang digunakan.

  • Menambahkan aturan, urutan eksekusi aturan, dan hasil ke detektor.

  • Versi detektor yang dibuat.

  • Menguji detektor dengan memberikan input yang berbeda dan memeriksa apakah aturan dan perintah eksekusi aturan berfungsi seperti yang diharapkan.

(Opsional) Jelajahi Amazon Fraud Detector APIs dengan Notebook Jupyter (IPython)

Untuk contoh selengkapnya tentang cara menggunakan Amazon Fraud Detector APIs, lihat aws-fraud-detector-samples GitHub repositori. Topik yang dibahas notebook mencakup model bangunan dan detektor menggunakan Amazon Fraud Detector APIs dan membuat permintaan prediksi penipuan batch menggunakan API. GetEventPrediction