from sklearn.cluster import KMeans  # Importiamo l'algoritmo di clustering
import numpy as np  # Importiamo numpy per gestire gli array

# Definiamo i dati dei clienti (spesa media mensile, numero di visite al mese)
# Nessuna etichetta "tipo cliente" viene fornita al modello
X = np.array([
    [15, 2],   # cliente occasionale
    [18, 3],
    [12, 1],
    [90, 15],  # cliente affezionato
    [95, 18],
    [88, 14],
    [50, 8],   # cliente intermedio
    [55, 9],
])

# Creiamo il modello KMeans chiedendo di trovare 3 gruppi di clienti
# n_init=10 fa ripartire l'algoritmo 10 volte da centri diversi e
# tiene il risultato migliore
kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)

# Addestriamo il modello sui dati, assegnando ogni cliente a un cluster
kmeans.fit(X)

# Visualizziamo i risultati ottenuti
print("Cluster assegnati a ciascun cliente:", kmeans.labels_)
print("Centro di ciascun gruppo (spesa media, visite medie):\n", 
      kmeans.cluster_centers_)