使用 FastAPI 和機器學習構建實時信用卡欺詐檢測系統

使用 fastapi 和機器學習構建實時信用卡欺詐檢測系統

介紹

信用卡欺詐對金融業構成重大威脅,每年造成數十億美元的損失。為了解決這個問題,人們開發了機器學習模型來實時檢測和防止欺詐交易。在本文中,我們將逐步介紹使用 fastapi(python 的現代 web 框架)以及在 kaggle 流行的信用卡欺詐檢測數據集上訓練的隨機森林分類器構建實時信用卡欺詐檢測系統的過程。

項目概況

該項目的目標是創建一個 web 服務來預測信用卡交易欺詐的可能性。該服務接受交易數據,對其進行預處理,然后返回預測以及欺詐概率。該系統設計快速、可擴展且易于集成到現有的金融系統中。

關鍵部件

  1. 機器學習模型:經過訓練以區分欺詐交易和合法交易的隨機森林分類器。
  2. 數據預處理:交易特征標準化,確保模型達到最佳性能。
  3. api:使用 fastapi 構建的 restful api,用于實時處理預測請求。

第 1 步:準備數據集

本項目使用的數據集是來自 kaggle 的信用卡欺詐檢測數據集,其中包含 284,807 筆交易,其中只有 492 筆是欺詐交易。這種類別不平衡帶來了挑戰,但可以通過對少數類別進行過采樣來解決。

數據預處理

首先使用 scikit-learn 的 standardscaler 對這些功能進行標準化。然后將數據集分為訓練集和測試集。鑒于不平衡,在訓練模型之前應用 randomoversampler 技術來平衡類別。

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)
關注:愛掏網

第 2 步:訓練機器學習模型

我們訓練了一個隨機森林分類器,它非常適合處理不平衡的數據集并提供可靠的預測。該模型在過采樣數據上進行訓練,并使用準確度、精確度、召回率和 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]))
關注:愛掏網

第 3 步:構建 fastapi 應用程序

使用 joblib 保存訓練好的模型和縮放器后,我們繼續構建 fastapi 應用程序。選擇 fastapi 是因為它的速度和易用性,使其成為實時應用程序的理想選擇。

創建 api

fastapi 應用程序定義了一個 post 端點 /predict/,它接受交易數據、處理數據并返回模型的預測和概率。

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))
關注:愛掏網

第 4 步:部署應用程序

要在本地測試應用程序,您可以使用 uvicorn 運行 fastapi 服務器并向 /predict/ 端點發送 post 請求。該服務將處理傳入的請求,擴展數據,并返回交易是否存在欺詐。

本地運行 api

uvicorn main:app --reload
關注:愛掏網

然后您可以使用curl或postman等工具測試api:

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}'
關注:愛掏網

api 將返回一個 json 對象,其中包含欺詐預測和相關概率。

結論

在本文中,我們構建了一個實時信用卡欺詐檢測系統,該系統將機器學習與現代 web 框架相結合。 github 鏈接在這里。該系統旨在處理實時交易數據并提供即時預測,使其成為金融機構打擊欺詐的寶貴工具。

通過使用 fastapi 部署此模型,我們確保服務不僅快速而且可擴展,能夠同時處理多個請求。該項目可以通過更復雜的模型、改進的特征工程或與生產環境的集成來進一步擴展。

下一步

要進一步增強系統,請考慮以下事項:

  1. 模型改進:嘗試更高級的模型,如 xgboost 或神經網絡。
  2. 特征工程:探索可能提高模型準確性的其他功能。
  3. 真實世界部署:將應用程序部署在 aws 或 gcp 等云平臺上以供生產使用。

以上就是使用 FastAPI 和機器學習構建實時信用卡欺詐檢測系統的詳細內容,更多請關注愛掏網 - it200.com其它相關文章!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 国产黄色片91| 四月婷婷七月婷婷综合| 欧美日本高清视频在线观看| 一区二区三区欧美| 国产在线jyzzjyzz免费麻豆| 亚洲娇小性xxxx| 国产综合成人亚洲区| 欧美色欧美亚洲另类二区| 99精品热视频| 亚洲精品国产精品国自产网站| 天天影视综合网| 欧美综合一区二区三区| 男女一进一出猛进式抽搐视频| 亚洲成a人片在线观看中文!!!| 国产精品特黄毛片| 最近日本中文字幕免费完整| 91精品国产免费久久久久久青草| 久久精品国产导航| 国产一区二区三精品久久久无广告| 扒开女人双腿猛进入爽爽视频| 美女被吸乳老师羞羞漫画| 一本色道无码道在线观看| 免费**毛片在线播放直播| 国产裸体美女永久免费无遮挡| 欧美性xxxxx极品娇小| 超碰aⅴ人人做人人爽欧美| 久久99国产一区二区三区| 免费无码又爽又刺激高潮| 国产精品福利网站| 无码任你躁久久久久久久 | 亚洲白色白色永久观看| 国产成人精品999在线观看| 拍摄直播play文h| 欧美黑人xxxx猛战黑人| 巨胸喷奶水www永久免费| 中文字幕永久在线| 亚洲欧美日韩中文无线码| 国产亚洲视频网站| 国产高清在线a视频大全| 日韩一区二区三区精品| 波多野结衣被绝伦在线观看|