import numpy as np from sklearn.cluster import KMeans import matplotlib.pyplot as plt # Sample data: customer_id, total_purchases, avg_time_between_purchases (hours) customer_data = np.array([ [1, 25, 0.5], [2, 10, 5], [3, 15, 2], [4, 30, 1], [5, 7, 10], [6, 20, 3], [7, 12, 7], [8, 28, 0.8], [9, 6, 12], [10, 18, 1.5] ]) # Extract customer IDs and feature data customer_ids = customer_data[:, 0].astype(int) features = customer_data[:, 1:] # Perform k-means clustering n_clusters = 2 kmeans = KMeans(n_clusters=n_clusters, random_state=42) cluster_labels = kmeans.fit_predict(features) # Find the cluster with the lowest average time between purchases impulsive_cluster = np.argmin(kmeans.cluster_centers_[:, 1]) # Get the customer IDs in the impulsive cluster impulsive_buyers = customer_ids[cluster_labels == impulsive_cluster] print("Impulsive buyers:", impulsive_buyers) # Visualize the clustering results (optional) plt.scatter(features[:, 0], features[:, 1], c=cluster_labels, cmap='viridis') plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='x') plt.xlabel('Total Purchases') plt.ylabel('Average Time Between Purchases (hours)') plt.show()
top of page

There’s Nothing Here...

We can’t find the page you’re looking for.
Check the URL, or head back home.

bottom of page