Підготовка даних для кластерного аналізу

Кластерний аналіз у Python

Shaumik Daityari

Business Analyst

Навіщо готувати дані для кластеризації?

  • Змінні мають непорівнянні одиниці (розміри товару в см, ціна в $)
  • Змінні з однаковими одиницями мають дуже різні масштаби й дисперсії (витрати на крупи, подорожі)
  • Сирі дані можуть спричинити упередження в кластеризації
  • Кластери можуть сильно залежати від однієї змінної
  • Розв'язання: нормалізація окремих змінних
Кластерний аналіз у Python

Нормалізація даних

Нормалізація: масштабування даних до стандартного відхилення 1

x_new = x / std_dev(x)

from scipy.cluster.vq import whiten
data = [5, 1, 3, 3, 2, 3, 3, 8, 1, 2, 2, 3, 5]
scaled_data = whiten(data)
print(scaled_data)
[2.73, 0.55, 1.64, 1.64, 1.09, 1.64, 1.64, 4.36, 0.55, 1.09, 1.09, 1.64, 2.73]
Кластерний аналіз у Python

Ілюстрація: нормалізація даних

# Import plotting library
from matplotlib import pyplot as plt

# Initialize original, scaled data
plt.plot(data, 
         label="original")
plt.plot(scaled_data, 
         label="scaled")
# Show legend and display plot
plt.legend()
plt.show()

Кластерний аналіз у Python

Далі — кілька вправ «зробіть самі»

Кластерний аналіз у Python

Preparing Video For Download...