Spaces:
Sleeping
Sleeping
| 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)}') | |