Przygotowanie danych do analizy skupień

Analiza skupień w Pythonie

Shaumik Daityari

Business Analyst

Dlaczego należy przygotować dane do klastrowania?

  • Zmienne mają nieporównywalne jednostki (wymiary w cm, cena w $)
  • Zmienne z tymi samymi jednostkami mogą mieć bardzo różne skale i wariancje (wydatki na zboża, podróże)
  • Surowe dane mogą prowadzić do błędów w klastrowaniu
  • Skupienia mogą być silnie zależne od jednej zmiennej
  • Rozwiązanie: normalizacja poszczególnych zmiennych
Analiza skupień w Pythonie

Normalizacja danych

Normalizacja: skalowanie danych do odchylenia standardowego równego 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]
Analiza skupień w Pythonie

Ilustracja: normalizacja danych

# 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()

Analiza skupień w Pythonie

Czas na samodzielne ćwiczenia

Analiza skupień w Pythonie

Preparing Video For Download...