Maison >développement back-end >Tutoriel Python >Création d'un système de détection de fraude par carte de crédit en temps réel avec FastAPI et Machine Learning
La fraude par carte de crédit constitue une menace importante pour le secteur financier, entraînant des milliards de dollars de pertes chaque année. Pour lutter contre cela, des modèles d’apprentissage automatique ont été développés pour détecter et prévenir les transactions frauduleuses en temps réel. Dans cet article, nous expliquerons le processus de création d'un système de détection de fraude par carte de crédit en temps réel à l'aide de FastAPI, un framework Web moderne pour Python et un classificateur Random Forest formé sur le populaire ensemble de données de détection de fraude par carte de crédit de Kaggle. 🎜>
Aperçu du projetComposants clés
Prétraitement des données
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)Étape 2 : formation du modèle d'apprentissage automatique
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]))Étape 3 : Création de l'application FastAPI
Création de l'API
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))Étape 4 : Déployer l'application
Exécuter l'API localement
uvicorn main:app --reloadVous pouvez ensuite tester l'API en utilisant curl ou un outil comme Postman :
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}'L'API renverra un objet JSON avec la prédiction de fraude et la probabilité associée.
Conclusion
En déployant ce modèle à l'aide de FastAPI, nous garantissons que le service est non seulement rapide mais également évolutif, capable de traiter plusieurs requêtes simultanément. Ce projet peut être étendu avec des modèles plus sophistiqués, une ingénierie de fonctionnalités améliorée ou une intégration avec un environnement de production.
Prochaines étapes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!