mimo1972 commited on
Commit
01e497e
·
verified ·
1 Parent(s): bd42c7a

Upload 5 files

Browse files
Files changed (5) hide show
  1. app.py +74 -0
  2. featrures.parquet +3 -0
  3. kmeans_model.pkl +3 -0
  4. requirements.txt +0 -0
  5. scaler.pkl +3 -0
app.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import joblib
4
+
5
+ # Konfiguration der Seite
6
+ st.set_page_config(page_title="Customer Cluster Predictor", layout="centered")
7
+
8
+ # Ressourcen laden
9
+ @st.cache_resource
10
+ def load_resources():
11
+ # Laden des Modells aus Ihrer Datei kmeans_model.pkl [cite: 3, 4]
12
+ model = joblib.load('kmeans_model.pkl')
13
+ return model
14
+
15
+ model = load_resources()
16
+
17
+ # Definition der Cluster-Namen und Marketing-Strategien basierend auf der Analyse
18
+ cluster_info = {
19
+ 0: {
20
+ "Name": "Inaktive Kleinnutzer",
21
+ "Beschreibung": "Niedrige Einlösewerte und sehr lange inaktiv.",
22
+ "Strategie": "Reaktivierungskampagne: Senden Sie einen attraktiven Willkommens-Gutschein."
23
+ },
24
+ 1: {
25
+ "Name": "Regelmäßige Gelegenheitsnutzer",
26
+ "Beschreibung": "Moderate Werte, regelmäßig aktiv.",
27
+ "Strategie": "Kundenbindung: Bieten Sie kleine Belohnungen für die nächste Einlösung an."
28
+ },
29
+ 2: {
30
+ "Name": "VIP-Kunden (Top-Segment)",
31
+ "Beschreibung": "Höchste Werte, sehr hohe Punktzahl und sehr aktiv.",
32
+ "Strategie": "Exklusivität: Einladungen zu VIP-Events oder exklusive Angebote."
33
+ },
34
+ 3: {
35
+ "Name": "Treue Bestandskunden",
36
+ "Beschreibung": "Hohe Werte und konstante Aktivität.",
37
+ "Strategie": "Upselling: Empfehlen Sie höherwertige Prämien-Kategorien."
38
+ },
39
+ 4: {
40
+ "Name": "Gefährdete Kunden (At-Risk)",
41
+ "Beschreibung": "Moderate Werte, aber die letzte Einlösung liegt lange zurück.",
42
+ "Strategie": "Dringlichkeit: Senden Sie eine 'Wir vermissen Sie'-Aktion mit Bonus."
43
+ }
44
+ }
45
+
46
+ st.title("👤 Strategische Kunden-Segmentierung")
47
+ st.markdown("Ermitteln Sie das Segment und die passende Marketing-Strategie.")
48
+
49
+ # Eingabefelder für die 2 vom Nutzer geforderten Werte
50
+ latest_days = st.number_input("Tage seit letzter Einlösung (latest_redeem_days)", min_value=0, value=1)
51
+ redeem_value = st.number_input("Einlösewert (total_redeem_value)", min_value=0.0, value=1.0)
52
+
53
+ # Automatische Berechnung der Punkte (Wert * 10)
54
+ redeem_points = redeem_value * 10
55
+ st.write(f"Berechnete Punkte: **{redeem_points}**")
56
+
57
+ # Verarbeitung
58
+ if st.button("Cluster berechnen"):
59
+ try:
60
+ # Vorbereitung der Rohdaten (Reihenfolge wie im Training: Value, Points, Days)
61
+ input_data = [[float(redeem_value), float(redeem_points), float(latest_days)]]
62
+
63
+ # Vorhersage ohne Scaler (da das Modell auf Rohdaten trainiert wurde)
64
+ cluster_pred = model.predict(input_data)[0]
65
+ info = cluster_info[cluster_pred]
66
+
67
+ # Ergebnis-Anzeige
68
+ st.divider()
69
+ st.header(f"Ergebnis: {info['Name']} (Cluster {cluster_pred})")
70
+ st.write(f"**Profil:** {info['Beschreibung']}")
71
+ st.success(f"💡 **Marketing-Strategie:** {info['Strategie']}")
72
+
73
+ except Exception as e:
74
+ st.error(f"Fehler bei der Vorhersage: {e}")
featrures.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2513c53e27973b3ae86ffaeb0747a2d82cc84aab09e666dfdfd2a4f42cf1628c
3
+ size 255299
kmeans_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4ce523cf450bfee6810fd43728c8dd2ed9f6364d2d2dd6e52cbe6f122783aa3
3
+ size 105983
requirements.txt ADDED
Binary file (3.23 kB). View file
 
scaler.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d59ec66dea68fde379d28c8d4ba20a27e0d1fe60c6d3993f3138eeea1284b788
3
+ size 959