#1. Importing lib 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 #2. Data Preprocessing df=pd.read_csv("creditcard.csv") #Imbalance in the data #Time to explain the data we are dealing with. # Determine number of fraud cases in dataset fraud = df[df['Class'] == 1] valid = df[df['Class'] == 0] outlierFraction = len(fraud)/float(len(valid)) # dividing the X and the Y from the dataset for dependent and independent variables x = df.drop(["Class"], axis = 1) y = df["Class"] #3. Modelling part 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) #4. UI for Model # Function to make predictions 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" # Create the Gradio interface iface = gr.Interface( fn=predict_transaction, # Function that makes predictions 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") ], # Input fields for the features of the transaction outputs="text" # Output the prediction result (Valid or Fraudulent) ) # Launch the Gradio UI iface.launch()