File size: 2,652 Bytes
045d34f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
87
88
89
90
91
92
93
94
95
96
97
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)}')