Модель логістики eCommerce: аналіз k-means
Тепер, коли ви отримали перше уявлення про результати моделі, поглибте розуміння закономірностей та взаємозв'язків між результатами за допомогою кластерного аналізу.
Ви використаєте алгоритм k-means, щоб краще зрозуміти основні чинники поведінки моделі та згрупувати точки даних із подібними властивостями. Це допоможе виявити «вузькі місця» в реальній операційній діяльності e-commerce/логістики, яку відтворює ваша модель.
kmeans і whiten імпортовано з scipy.cluster.vq, а також matplotlib.pyplot as plt. Початковий і «вибілений» набори даних містять стовпці, перелічені нижче. Фіктивна змінна p визначає індекси цих процесів у наборах даних.
- стовпець 1 (
p=0):time_requests - стовпець 2 (
p=1):time_packaging - стовпець 3 (
p=2):time_shipping - стовпець 4 (
p=3):sum/total time
Ця вправа є частиною курсу
Дискретно-подієве моделювання в Python
Інструкції до вправи
- Виконайте whiten масиву
record_processes_np, щоб підготувати його до кластеризації k-means. - Запустіть метод k-means для масиву
whitenedза допомогою пакета SciPy, налаштувавши пошук трьох кластерів.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()