Aan de slagGa gratis aan de slag

Logistiek e-commercemodel: k-means-analyse

Nu je je eerste inzicht in de modeluitvoer hebt gekregen, kun je je begrip van patronen en relaties tussen resultaten verdiepen met clusteranalyse.

Je gebruikt het k-means-algoritme om de belangrijkste stuurvariabelen van het modelgedrag te begrijpen en datapunten in groepen met vergelijkbare eigenschappen in te delen. Dit helpt bij het opsporen van knelpunten in de echte e-commerce-/logistieke operatie die je model representeert.

kmeans en whiten zijn geïmporteerd uit scipy.cluster.vq en matplotlib.pyplot as plt. De oorspronkelijke en gewhitenede gegevenssets hebben de kolomgegevens zoals hieronder vermeld. De dummyvariabele p definieert de indexen van deze processen in de gegevenssets.

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

Deze oefening maakt deel uit van de cursus

Discrete Event Simulation in Python

Cursus bekijken

Oefeninstructies

  • Pas whitening toe op de array record_processes_np om deze voor te bereiden op k-means-clustering.
  • Voer de k-means-methode uit op de array whitened met het SciPy-pakket en laat de k-means-methode drie clusters vinden.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren