File size: 1,719 Bytes
d636394 |
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 |
import streamlit as st
import pandas as pd
import numpy as np
import joblib
# Model ve scaler'ı yükle
scaler, kmeans = joblib.load("model.pkl")
st.title("💳 Credit Card Customer Segmentation")
st.markdown("Müşteri bilgilerini girerek hangi kümeye ait olduğunu öğrenin.")
# Kullanıcıdan veri al
def get_user_input():
balance = st.number_input("BALANCE", 0.0, 100000.0, 2000.0)
purchases = st.number_input("PURCHASES", 0.0, 100000.0, 3000.0)
oneoff = st.number_input("ONEOFF_PURCHASES", 0.0, 50000.0, 1000.0)
installments = st.number_input("INSTALLMENTS_PURCHASES", 0.0, 50000.0, 2000.0)
credit_limit = st.number_input("CREDIT_LIMIT", 100.0, 100000.0, 5000.0)
payments = st.number_input("PAYMENTS", 0.0, 100000.0, 2500.0)
tenure = st.slider("TENURE (kaç aydır müşteri?)", 0, 12, 6)
data = {
'BALANCE': balance,
'PURCHASES': purchases,
'ONEOFF_PURCHASES': oneoff,
'INSTALLMENTS_PURCHASES': installments,
'CREDIT_LIMIT': credit_limit,
'PAYMENTS': payments,
'TENURE': tenure
}
return pd.DataFrame([data])
# Tahmin yap
input_df = get_user_input()
if st.button("Tahmin Et"):
scaled_input = scaler.transform(input_df)
cluster = kmeans.predict(scaled_input)[0]
st.subheader(f"🔍 Tahmin Edilen Küme: {cluster}")
yorumlar = {
0: "🟢 Düşük harcama yapan, düşük riskli müşteri.",
1: "🟡 Orta seviyede harcama yapan müşteri.",
2: "🔴 Yüksek harcama yapan ve aktif müşteri.",
3: "🔵 Taksitli harcamaları yüksek olan müşteri."
}
st.write(yorumlar.get(cluster, "Bilinmeyen küme"))
|