|
|
|
|
|
|
|
|
import numpy as np |
|
|
import pandas as pd |
|
|
from sklearn.model_selection import train_test_split |
|
|
from sklearn.ensemble import RandomForestClassifier |
|
|
from sklearn.metrics import accuracy_score |
|
|
import gradio as gr |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
df=pd.read_csv("creditcard.csv") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fraud = df[df['Class'] == 1] |
|
|
valid = df[df['Class'] == 0] |
|
|
outlierFraction = len(fraud)/float(len(valid)) |
|
|
|
|
|
|
|
|
|
|
|
x = df.drop(["Class"], axis = 1) |
|
|
y = df["Class"] |
|
|
|
|
|
|
|
|
|
|
|
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0) |
|
|
model=RandomForestClassifier() |
|
|
|
|
|
model.fit(x_train,y_train) |
|
|
model.fit(x_test,y_test) |
|
|
|
|
|
x_predict=model.predict(x_train) |
|
|
x_accuracy=accuracy_score(x_predict,y_train) |
|
|
|
|
|
y_predict=model.predict(x_test) |
|
|
y_accuracy=accuracy_score(y_predict,y_test) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def predict_transaction( |
|
|
Time ,V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, Amount): |
|
|
|
|
|
input_data = np.array([[Time,V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, Amount]]) |
|
|
prediction = model.predict(input_data) |
|
|
|
|
|
if prediction[0] == 0: |
|
|
return "Valid Transaction" |
|
|
else: |
|
|
return "Fraudulent Transaction" |
|
|
|
|
|
|
|
|
iface = gr.Interface( |
|
|
fn=predict_transaction, |
|
|
inputs=[ |
|
|
gr.Slider(minimum=-0, maximum=6345, step=0.1, label="Time"), |
|
|
gr.Slider(minimum=--11, maximum=2, step=0.1, label="V1"), |
|
|
gr.Slider(minimum=-14, maximum=8, step=0.1, label="V2"), |
|
|
gr.Slider(minimum=-11, maximum=5, step=0.1, label="V3"), |
|
|
gr.Slider(minimum=-3, maximum=7, step=0.1, label="V4"), |
|
|
gr.Slider(minimum=-31, maximum=11, step=0.1, label="V5"), |
|
|
gr.Slider(minimum=-6, maximum=22, step=0.1, label="V6"), |
|
|
gr.Slider(minimum=-11, maximum=35, step=0.1, label="V7"), |
|
|
gr.Slider(minimum=-22, maximum=4, step=0.1, label="V8"), |
|
|
gr.Slider(minimum=-2, maximum=10, step=0.1, label="V9"), |
|
|
gr.Slider(minimum=-5, maximum=12, step=0.1, label="V10"), |
|
|
gr.Slider(minimum=-1, maximum=5, step=0.1, label="V11"), |
|
|
gr.Slider(minimum=-5, maximum=4, step=0.1, label="V12"), |
|
|
gr.Slider(minimum=-2, maximum=4, step=0.1, label="V13"), |
|
|
gr.Slider(minimum=-5, maximum=6, step=0.1, label="V14"), |
|
|
gr.Slider(minimum=-3, maximum=4, step=0.1, label="V15"), |
|
|
gr.Slider(minimum=-3, maximum=5, step=0.1, label="V16"), |
|
|
gr.Slider(minimum=-4, maximum=5, step=0.1, label="V17"), |
|
|
gr.Slider(minimum=-2, maximum=3, step=0.1, label="V18"), |
|
|
gr.Slider(minimum=-3, maximum=4, step=0.1, label="V19"), |
|
|
gr.Slider(minimum=-10, maximum=8, step=0.1, label="V20"), |
|
|
gr.Slider(minimum=-10, maximum=23, step=0.1, label="V21"), |
|
|
gr.Slider(minimum=-7, maximum=5, step=0.1, label="V22"), |
|
|
gr.Slider(minimum=-6, maximum=5, step=0.1, label="V23"), |
|
|
gr.Slider(minimum=-1, maximum=4, step=0.1, label="V24"), |
|
|
gr.Slider(minimum=-1, maximum=2, step=0.1, label="V25"), |
|
|
gr.Slider(minimum=-1, maximum=4, step=0.1, label="V26"), |
|
|
gr.Slider(minimum=-6, maximum=4, step=0.1, label="V27"), |
|
|
gr.Slider(minimum=-2, maximum=5, step=0.1, label="V28"), |
|
|
gr.Slider(minimum=0, maximum=7712, step=0.1, label="Amount") |
|
|
], |
|
|
outputs="text" |
|
|
) |
|
|
|
|
|
|
|
|
iface.launch() |
|
|
|