クラスタリングのためのデータ前処理

Pythonで学ぶクラスタ分析

Shaumik Daityari

Business Analyst

なぜクラスタリング前に前処理が必要か?

  • 変数の単位が異なり比較不可(製品寸法はcm、価格は$)
  • 同一単位でも尺度・分散が大きく異なる(シリアル支出、旅行)
  • 生データのままだとクラスタリングに偏り
  • クラスタが一つの変数に強く依存しうる
  • 解決策:各変数を正規化
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...