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"))