Tutorial: Mulai menggunakanAWS SDK for 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 menggunakanAWS SDK for Python (Boto3)

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

Pada akhir tutorial ini, Anda menyelesaikan tindakan berikut:

  • Bangun dan latih model Amazon Fraud Detector

  • Buat prediksi penipuan waktu nyata

Prasyarat

Berikut ini adalah langkah-langkah prasyarat untuk tutorial ini.

Memulai

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

Setelah Anda menginstalAWS SDK for Python (Boto3), jalankan perintah contoh Python berikut untuk mengkonfirmasi bahwa lingkungan Anda dikonfigurasi dengan benar. Jika lingkungan Anda dikonfigurasi dengan benar, respons berisi daftar detektor. Jika tidak ada detektor yang dibuat, daftar tersebut 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, peristiwa, dan aturan.

Buat variabel

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

Pada contoh berikut, CreateVariableAPI digunakan untuk membuat dua variabel. Variabel-variabelnya adalahemail_address danip_address. Menetapkan mereka untuk jenis variabel yang sesuai:EMAIL_ADDRESS danIP_ADDRESS. Variabel-variabel ini adalah bagian dari contoh dataset yang Anda upload. 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 peristiwa dan jenis entitas mengklasifikasikan entitas. Klasifikasi contoh termasuk pelanggan, pedagang, atau akun.

Pada contoh berikut, PutEntityTypeAPI digunakan untuk membuat jenissample_customer entitas.

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

Buat label

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

Pada 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 peristiwa individual. Jenis acara mendefinisikan struktur peristiwa individu.

Pada contoh berikut, PutEventTypeAPI digunakan untuk membuat jenis acarasample_registration. Anda menentukan jenis peristiwa dengan menentukan variabel (email_address,ip_address), jenis 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 peristiwa. 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 peristiwasample_registration menggunakan set data 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

Pada 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')

Melatih model

Pada contoh berikut, CreateModelVersionAPI digunakan untuk melatih model. Tentukan'EXTERNAL_EVENTS' untuktrainingDataSource dan lokasi Amazon S3 tempat Anda menyimpan kumpulan data contoh dan bucket Amazon S3externalEventsDetail. RoleArn UntuktrainingDataSchema 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://your-S3-bucket-name/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 diperbaruiTRAINING_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, lihatSkor model danMetrik kinerja model.

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

Menerapkan 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. Pada contoh berikut, 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 suatu kondisi yang ditentukan untuk memberitahu Amazon Fraud Detector mengenai cara menafsirkan nilai variabel selama prediksi. Dan hasilnya adalah hasil dari prediksi penipuan. Detektor dapat memiliki beberapa versi dengan setiap versi memiliki status DRAFT, AKTIF, atau TIDAK AKTIF. Versi detektor harus memiliki setidaknya satu aturan yang terkait dengannya.

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

Buat detektor

Pada contoh berikut, PutDetectorAPI digunakan untuk membuatsample_detector detektor untuk jenissample_registration peristiwa.

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

Ciptakan hasil

Hasil dibuat untuk setiap kemungkinan hasil prediksi penipuan. Pada contoh berikut, PutOutcomeAPI digunakan untuk membuat tiga hasil -verify_customer,review, danapprove. Hasil ini kemudian ditugaskan 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.

Pada contoh berikut, CreateRuleAPI digunakan untuk membuat tiga aturan yang berbeda:high_risk,medium_risk, danlow_risk. Buat ekspresi aturan untuk membandingkansample_fraud_detection_model_insightscore nilai skor kinerja model dengan berbagai ambang batas. Hal ini untuk menentukan tingkat risiko untuk suatu peristiwa dan menetapkan hasil yang didefinisikan 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.

Pada contoh berikut, CreateDetectorVersionAPI digunakan untuk membuat versi detektor. Hal ini dilakukan dengan menyediakan rincian versi model, aturan, dan modus eksekusi aturan FIRST_MATCH. Mode eksekusi aturan menentukan urutan untuk mengevaluasi aturan. Modus eksekusi aturan FIRST_MATCHED menentukan bahwa aturan dievaluasi secara berurutan, pertama hingga terakhir, dengan 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 yangsample_detector dibuat pada langkah sebelumnya untuk menghasilkan prediksi penipuan untuk jenissample_registration peristiwa secara real time. Detector mengevaluasi data contoh yang diunggah ke Amazon S3. Tanggapannya mencakup skor kinerja model serta hasil apa pun yang terkait dengan aturan yang cocok.

Pada 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:

  • Unggah kumpulan data peristiwa contoh ke Amazon S3.

  • Variabel, entitas, dan label yang dibuat yang digunakan untuk membuat dan melatih model.

  • Membuat dan melatih model menggunakan set data contoh.

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

  • Menerapkan model deteksi penipuan.

  • Membuat detektor dan menambahkan model yang digunakan.

  • Aturan tambahan, perintah eksekusi aturan, dan hasil ke detektor.

  • Dibuat versi detektor.

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

(Opsional) Jelajahi API Amazon Fraud Detector dengan Notebook Jupyter (iPython)

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