Spaces:
Build error
Build error
File size: 2,936 Bytes
8cfe684 0caba62 8cfe684 a377447 8cfe684 0caba62 adf6446 0caba62 adf6446 a377447 cd0d2c7 a377447 adf6446 a377447 adf6446 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | import pandas as pd
import joblib
import gradio as gr
from sklearn.preprocessing import OneHotEncoder
from sklearn.impute import SimpleImputer
# Modeli, encoder'ı ve imputer'ı yükleme
logreg_model = joblib.load('logreg_model.pkl')
rf_model = joblib.load('rf_model.pkl')
encoder = joblib.load('encoder.pkl')
imputer = joblib.load('imputer.pkl')
# Veri setini yükleme ve ön işleme fonksiyonu
def load_and_preprocess(csv_file_path):
df = pd.read_csv(csv_file_path)
df.fillna({"paymentMethod": "UNKNOWN"}, inplace=True)
df["paymentMethod"] = df["paymentMethod"].map({
"creditcard": 1,
"paypal": 2,
"storecredit": 3,
"UNKNOWN": 0
})
return df
# payment_fraud.csv dosyasını yükle
data = load_and_preprocess("payment_fraud.csv")
# Kategorik sütunları tanımla
categorical_cols = ['paymentMethod']
# Gradio Arayüzü Fonksiyonu
def fraud_detection(accountAgeDays, numItems, localTime, paymentMethod, paymentMethodAgeDays):
# Öznitelikleri DataFrame'e dönüştürme
input_data = pd.DataFrame({
'accountAgeDays': [accountAgeDays],
'numItems': [numItems],
'localTime': [localTime],
'paymentMethod': [paymentMethod],
'paymentMethodAgeDays': [paymentMethodAgeDays]
})
# Kategorik sütunları one-hot kodlama ile dönüştürme
encoded_data = encoder.transform(input_data[categorical_cols])
encoded_df = pd.DataFrame(
encoded_data,
columns=encoder.get_feature_names_out(categorical_cols)
)
input_data = input_data.drop(categorical_cols, axis=1)
input_data = pd.concat(
[input_data.reset_index(drop=True), encoded_df.reset_index(drop=True)],
axis=1
)
# Eksik değerleri doldurma
input_data = imputer.transform(input_data)
# Tahminleri yapma
logreg_prediction = logreg_model.predict(input_data)[0]
rf_prediction = rf_model.predict(input_data)[0]
# Sonuç görsellerini belirleme
logreg_image = "sahtekarlik_degil.jpg" if logreg_prediction == 0 else "sahtekarlik.jpg"
rf_image = "sahtekarlik_degil.jpg" if rf_prediction == 0 else "sahtekarlik.jpg"
return logreg_image, rf_image
# Gradio Arayüzünü Oluşturma
iface = gr.Interface(
fn=fraud_detection,
inputs=[
gr.Number(label="Hesap Yaşı (Gün)"),
gr.Number(label="Ürün Sayısı"),
gr.Number(label="Yerel Saat (4.44 gibi)"),
gr.Dropdown(label="Ödeme Yöntemi", choices=["creditcard", "paypal", "storecredit", "UNKNOWN"]),
gr.Number(label="Ödeme Yöntemi Yaşı (Gün)"),
],
outputs=[
gr.Image(label="Logistic Regression Tahmini"),
gr.Image(label="Random Forest Tahmini")
],
title="Ödeme Sahtekarlığı Tespit Sistemi suspicious.jpeg",
description="Gerekli bilgileri girerek işlemin sahte olup olmadığını tahmin edin.",
)
# Arayüzü Başlatma
iface.launch(debug=True, share=True) |