Rumah pembangunan bahagian belakang Tutorial Python Membina Sistem Pengesanan Penipuan Kad Kredit Masa Nyata dengan FastAPI dan Pembelajaran Mesin

Membina Sistem Pengesanan Penipuan Kad Kredit Masa Nyata dengan FastAPI dan Pembelajaran Mesin

Aug 13, 2024 am 06:54 AM

Building a Real-Time Credit Card Fraud Detection System with FastAPI and Machine Learning

pengenalan

Penipuan kad kredit menimbulkan ancaman besar kepada industri kewangan, yang membawa kepada kerugian berbilion dolar setiap tahun. Untuk memerangi ini, model pembelajaran mesin telah dibangunkan untuk mengesan dan mencegah transaksi penipuan dalam masa nyata. Dalam artikel ini, kami akan melalui proses membina sistem pengesanan penipuan kad kredit masa nyata menggunakan FastAPI, rangka kerja web moden untuk Python dan pengelas Random Forest yang dilatih pada Set Data Pengesanan Penipuan Kad Kredit yang popular daripada Kaggle.

Gambaran Keseluruhan Projek

Matlamat projek ini adalah untuk mencipta perkhidmatan web yang meramalkan kemungkinan transaksi kad kredit menjadi penipuan. Perkhidmatan ini menerima data transaksi, memprosesnya terlebih dahulu dan mengembalikan ramalan bersama-sama dengan kebarangkalian penipuan. Sistem ini direka bentuk agar pantas, berskala dan mudah untuk disepadukan ke dalam sistem kewangan sedia ada.

Komponen Utama

  1. Model Pembelajaran Mesin: Pengelas Hutan Rawak yang dilatih untuk membezakan antara transaksi penipuan dan sah.
  2. Prapemprosesan Data: Penyeragaman ciri transaksi untuk memastikan model berfungsi secara optimum.
  3. API: API RESTful dibina dengan FastAPI untuk mengendalikan permintaan ramalan dalam masa nyata.

Langkah 1: Menyediakan Set Data

Dataset data yang digunakan dalam projek ini ialah Set Data Pengesanan Penipuan Kad Kredit daripada Kaggle, yang mengandungi 284,807 transaksi, yang mana hanya 492 adalah penipuan. Ketidakseimbangan kelas ini menimbulkan cabaran, tetapi ia ditangani dengan melebihkan sampel kelas minoriti.

Prapemprosesan Data

Ciri-ciri pertama diseragamkan menggunakan StandardScaler daripada scikit-learn. Dataset kemudiannya dibahagikan kepada set latihan dan ujian. Memandangkan ketidakseimbangan, teknik RandomOverSampler digunakan untuk mengimbangi kelas sebelum melatih model.

from sklearn.preprocessing import StandardScaler
from imblearn.over_sampling import RandomOverSampler

# Standardize features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Balance the dataset
ros = RandomOverSampler(random_state=42)
X_resampled, y_resampled = ros.fit_resample(X_scaled, y)
Salin selepas log masuk

Langkah 2: Melatih Model Pembelajaran Mesin

Kami melatih pengelas Random Forest, yang sangat sesuai untuk mengendalikan set data yang tidak seimbang dan memberikan ramalan yang mantap. Model ini dilatih mengenai data terlebih sampel dan prestasinya dinilai menggunakan ketepatan, ketepatan, ingat semula dan keluk AUC-ROC.

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, roc_auc_score

# Train the model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_resampled, y_resampled)

# Evaluate the model
y_pred = model.predict(X_test_scaled)
print(classification_report(y_test, y_pred))
print("AUC-ROC:", roc_auc_score(y_test, model.predict_proba(X_test_scaled)[:, 1]))
Salin selepas log masuk

Langkah 3: Membina Aplikasi FastAPI

Dengan model terlatih dan penimbang yang disimpan menggunakan joblib, kami terus membina aplikasi FastAPI. FastAPI dipilih untuk kelajuan dan kemudahan penggunaannya, menjadikannya sesuai untuk aplikasi masa nyata.

Mencipta API

Aplikasi FastAPI mentakrifkan titik akhir POST /ramalan/ yang menerima data transaksi, memprosesnya dan mengembalikan ramalan dan kebarangkalian model.

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import joblib
import pandas as pd

# Load the trained model and scaler
model = joblib.load("random_forest_model.pkl")
scaler = joblib.load("scaler.pkl")

app = FastAPI()

class Transaction(BaseModel):
    V1: float
    V2: float
    # Include all other features used in your model
    Amount: float

@app.post("/predict/")
def predict(transaction: Transaction):
    try:
        data = pd.DataFrame([transaction.dict()])
        scaled_data = scaler.transform(data)
        prediction = model.predict(scaled_data)
        prediction_proba = model.predict_proba(scaled_data)
        return {"fraud_prediction": int(prediction[0]), "probability": float(prediction_proba[0][1])}
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))
Salin selepas log masuk

Langkah 4: Meletakkan Aplikasi

Untuk menguji aplikasi secara setempat, anda boleh menjalankan pelayan FastAPI menggunakan uvicorn dan menghantar permintaan POST ke titik akhir /predict/. Perkhidmatan ini akan memproses permintaan masuk, menskalakan data dan mengembalikan sama ada transaksi itu adalah penipuan.

Menjalankan API Secara Tempatan

uvicorn main:app --reload
Salin selepas log masuk

Anda kemudian boleh menguji API menggunakan curl atau alat seperti Posmen:

curl -X POST http://127.0.0.1:8000/predict/ \
-H "Content-Type: application/json" \
-d '{"V1": -1.359807134, "V2": -0.072781173, ..., "Amount": 149.62}'
Salin selepas log masuk

API akan mengembalikan objek JSON dengan ramalan penipuan dan kebarangkalian yang berkaitan.

Kesimpulan

Dalam artikel ini, kami telah membina sistem pengesanan penipuan kad kredit masa nyata yang menggabungkan pembelajaran mesin dengan rangka kerja web moden. Pautan github ada di sini. Sistem ini direka bentuk untuk mengendalikan data transaksi masa nyata dan menyediakan ramalan segera, menjadikannya alat yang berharga untuk institusi kewangan yang ingin memerangi penipuan.

Dengan menggunakan model ini menggunakan FastAPI, kami memastikan perkhidmatan itu bukan sahaja pantas tetapi juga berskala, mampu mengendalikan berbilang permintaan secara serentak. Projek ini boleh diperluaskan lagi dengan model yang lebih canggih, kejuruteraan ciri yang dipertingkatkan atau penyepaduan dengan persekitaran pengeluaran.

Langkah Seterusnya

Untuk meningkatkan lagi sistem, pertimbangkan perkara berikut:

  1. Penambahbaikan Model: Eksperimen dengan model yang lebih maju seperti XGBoost atau rangkaian saraf.
  2. Kejuruteraan Ciri: Teroka ciri tambahan yang mungkin meningkatkan ketepatan model.
  3. Penggunaan Dunia Sebenar: Gunakan aplikasi pada platform awan seperti AWS atau GCP untuk kegunaan pengeluaran.

Atas ialah kandungan terperinci Membina Sistem Pengesanan Penipuan Kad Kredit Masa Nyata dengan FastAPI dan Pembelajaran Mesin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1676
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python vs C: Meneroka Prestasi dan Kecekapan Python vs C: Meneroka Prestasi dan Kecekapan Apr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Python vs C: Memahami perbezaan utama Python vs C: Memahami perbezaan utama Apr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Python untuk pengkomputeran saintifik: rupa terperinci Python untuk pengkomputeran saintifik: rupa terperinci Apr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python untuk Pembangunan Web: Aplikasi Utama Python untuk Pembangunan Web: Aplikasi Utama Apr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

See all articles