Logistik-eCommerce-Modell: k-means-Analyse
Nachdem du erste Einblicke in die Modellausgaben gewonnen hast, kannst du dein Verständnis für Muster und Beziehungen zwischen den Ergebnissen mit einer Clusteranalyse vertiefen.
Du wirst den k-means-Algorithmus verwenden, um die wichtigsten Stellschrauben deines Modellverhaltens zu verstehen und Datenpunkte in Gruppen mit ähnlichen Eigenschaften einzuteilen. Das hilft dabei, Engpässe in der realen E-Commerce-/Logistikoperation zu identifizieren, die dein Modell abbildet.
kmeans und whiten wurden aus scipy.cluster.vq importiert sowie matplotlib.pyplot as plt. Die ursprünglichen und geweißten Datensätze enthalten die unten aufgeführten Spalten. Die Dummy-Variable p definiert die Indizes dieser Prozesse in den Datensätzen.
- Spalte 1 (
p=0):time_requests - Spalte 2 (
p=1):time_packaging - Spalte 3 (
p=2):time_shipping - Spalte 4 (
p=3):sum/total time
Diese Übung ist Teil des Kurses
Diskrete-Ereignis-Simulation mit Python
Anleitung zur Übung
- Wende
whitenauf das Arrayrecord_processes_npan, um es auf das k-means-Clustering vorzubereiten. - Führe die k-means-Methode auf dem Array
whitenedmit dem SciPy-Paket aus und lass die k-means-Methode drei Cluster finden.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()