CommencezCommencez gratuitement

Modèle de logistique pour le commerce électronique : analyse k-means

Maintenant que vous avez une première lecture des résultats du modèle, vous pouvez approfondir votre compréhension des tendances et des relations entre les résultats à l'aide d'une analyse par grappes.

Vous utiliserez l'algorithme k-means pour mieux cerner les principaux facteurs qui contrôlent le comportement de votre modèle et pour classer les points de données en groupes aux propriétés similaires. Cela aidera à repérer les goulots d'étranglement dans l'opération réelle de commerce électronique/logistique que votre modèle représente.

kmeans et whiten ont été importés depuis scipy.cluster.vq ainsi que matplotlib.pyplot as plt. Les ensembles de données original et blanchi contiennent les colonnes ci‑dessous. La variable factice p définit les index de ces processus dans les ensembles de données.

  • colonne 1 (p=0) : time_requests
  • colonne 2 (p=1) : time_packaging
  • colonne 3 (p=2) : time_shipping
  • colonne 4 (p=3) : sum/total time

Cette activité fait partie du cours

Simulation d'événements discrets en Python

Voir le cours

Instructions de l’exercice

  • Appliquez le blanchiment (whiten) au tableau record_processes_np pour le préparer au groupement k-means.
  • Exécutez la méthode k-means sur le tableau whitened avec le module SciPy, en configurant k-means pour trouver trois grappes.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Whiten the record_processes_np array
whitened = ____(record_processes_np)

# Run the k-means method on whitened, using three clusters
codebook, distortion = ____(whitened, ____)

fig, axs = plt.subplots(3)
for p in range(3):
    axs[p].scatter(whitened[:, 3], whitened[:, p], marker=".", label=f"{process_names[p]}")
    axs[p].scatter(codebook[:, 3], codebook[:, p], label='Cluster Centroids')
    axs[p].legend(loc='center left', bbox_to_anchor=(1, 0.5))
    axs[p].set_ylabel(f'Process duration (days)')
    axs[p].set_xlabel('Total duration (days)')
plt.show()
Modifier et exécuter le code