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
Oefeninstructies
- Pas whitening toe op de array
record_processes_npom deze voor te bereiden op k-means-clustering. - Voer de k-means-methode uit op de array
whitenedmet 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()