Fraud_Detection / slapp.py
cmasukume's picture
Upload 21 files
045d34f verified
import streamlit as st
import pickle
import pandas as pd
# Load the saved model
try:
model = pickle.load(open('model.pkl', 'rb'))
except Exception as e:
st.error(f"Error loading model: {e}")
model = None
# Streamlit app
st.title("Fraud Detection API")
st.write("Enter the transaction details to check if it's acceptable or fraudulent.")
# Create input fields for the features
time = st.number_input('Time')
v1 = st.number_input('V1')
v2 = st.number_input('V2')
v3 = st.number_input('V3')
v4 = st.number_input('V4')
v5 = st.number_input('V5')
v6 = st.number_input('V6')
v7 = st.number_input('V7')
v8 = st.number_input('V8')
v9 = st.number_input('V9')
v10 = st.number_input('V10')
v11 = st.number_input('V11')
v12 = st.number_input('V12')
v13 = st.number_input('V13')
v14 = st.number_input('V14')
v15 = st.number_input('V15')
v16 = st.number_input('V16')
v17 = st.number_input('V17')
v18 = st.number_input('V18')
v19 = st.number_input('V19')
v20 = st.number_input('V20')
v21 = st.number_input('V21')
v22 = st.number_input('V22')
v23 = st.number_input('V23')
v24 = st.number_input('V24')
v25 = st.number_input('V25')
v26 = st.number_input('V26')
v27 = st.number_input('V27')
v28 = st.number_input('V28')
amount = st.number_input('Amount')
# Prepare a button for prediction
if st.button('Predict'):
try:
# Create a DataFrame from the input data
transaction_data = pd.DataFrame({
'Time': [time],
'V1': [v1],
'V2': [v2],
'V3': [v3],
'V4': [v4],
'V5': [v5],
'V6': [v6],
'V7': [v7],
'V8': [v8],
'V9': [v9],
'V10': [v10],
'V11': [v11],
'V12': [v12],
'V13': [v13],
'V14': [v14],
'V15': [v15],
'V16': [v16],
'V17': [v17],
'V18': [v18],
'V19': [v19],
'V20': [v20],
'V21': [v21],
'V22': [v22],
'V23': [v23],
'V24': [v24],
'V25': [v25],
'V26': [v26],
'V27': [v27],
'V28': [v28],
'Amount': [amount]
})
# Perform prediction using the loaded model
prediction = model.predict(transaction_data)
# Prepare response
if prediction[0] == 0:
st.success('Prediction: Acceptable transaction')
else:
st.error('Prediction: Fraudulent transaction')
except Exception as e:
st.error(f'Error: {str(e)}')