Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import joblib | |
import datetime | |
def run(): | |
# Tampilan judul halaman | |
st.markdown("<h1 style='text-align: center;'>Welcome to the Fraud Transaction Prediction Model</h1>", unsafe_allow_html=True) | |
st.markdown("========================================================================================") | |
st.title("Input Data Transaksi") | |
def user_input(): | |
col1, col2 = st.columns(2) | |
transaction_id = col1.number_input("Transaction ID", value=0) | |
customer_id = col2.number_input("Customer ID", value=0) | |
terminal_id = col1.number_input("Terminal ID", value=0) | |
tx_amount = col2.number_input("Total Transaction", value=0.0) | |
selected_hour = st.slider("Select Hour", 0, 23, 0) | |
selected_minute = st.slider("Select Minute", 0, 59, 0) | |
selected_second = st.slider("Select Second", 0, 59, 0) | |
selected_date = st.date_input("Select Transaction Date", datetime.date.today()) | |
reference_date = datetime.datetime(2023, 1, 1, 0, 0, 0) | |
selected_datetime = datetime.datetime.combine(selected_date, datetime.time(selected_hour, selected_minute, selected_second)) | |
tx_time = selected_datetime - reference_date | |
tx_time_seconds = int(tx_time.total_seconds()) | |
tx_time_days = tx_time.days | |
data = { | |
'TRANSACTION_ID': transaction_id, | |
'CUSTOMER_ID' : customer_id, | |
'TERMINAL_ID' : terminal_id, | |
'TX_AMOUNT': tx_amount, | |
'TX_TIME_SECONDS': tx_time_seconds, | |
'TX_TIME_DAYS': tx_time_days | |
} | |
features = pd.DataFrame(data, index=[0]) | |
return features | |
# Menjalankan fungsi input pengguna | |
input = user_input() | |
# Menampilkan hasil input pengguna dalam bentuk tabel | |
st.markdown("<h2 style='text-align: left;'>User Input Result</h2>", unsafe_allow_html=True) | |
st.table(input) | |
# Memuat model yang telah disimpan sebelumnya | |
load_model = joblib.load("my_model.pkl") | |
# Tombol untuk memprediksi | |
if st.button("Predict", help='Click me!'): | |
# Melakukan prediksi menggunakan model | |
prediction = load_model.predict(input) | |
# Menampilkan hasil prediksi | |
if prediction == 1: | |
prediction = 'Fraud Transaction' | |
else: | |
prediction = 'Normal Transaction' | |
st.markdown("<h4 style='text-align: center;'>Berdasarkan informasi yang diberikan oleh pengguna, model Fraud Transaction memprediksi:</h4>", unsafe_allow_html=True) | |
st.markdown(f"<h1 style='text-align: center;'>{prediction}</h1>", unsafe_allow_html=True) | |
# Menampilkan hasil tambahan jika input termasuk dalam salah satu jenis fraud | |
if prediction != "Normal Transaction": | |
st.markdown("<h4 style='text-align: center;'>Transaksi ini termasuk dalam kategori mencurigakan. Harap waspada!</h4>", unsafe_allow_html=True) | |