Python を使用して、複数の特性に基づいてクラスター分析を実行する方法
scikit-learnライブラリのKMeansアルゴリズムを使用すると、Pythonでマルチ属性をクラスタリングできます。
多属性をクラスタ分析する手順は次のとおりです。
- 必要なライブラリとデータセットをインポートする:
- from sklearn.cluster import KMeans
import pandas as pd
# データセットの読み込み
dataset = pd.read_csv(‘dataset.csv’) - データの前処理:
- 多属性のクラスタ分析では、データセット内の各属性を正規化する必要があります。これにより、すべての属性が同じ重要度を持つようになります。
- sklearn.preprocessing から StandardScaler をインポートする# データセットの標準化
scaler = StandardScaler()
scaled_dataset = scaler.fit_transform(dataset) - KMeans法によるクラスタリング分析を行う
- Elbow法を使用して、クラスタリングの最適な数を決定してから、クラスタリング分析を実行する必要があります。
- クラスタの最適な数を見つける
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init=’k-means++’, random_state=42)
kmeans.fit(scaled_dataset)
wcss.append(kmeans.inertia_)# Elbow法のグラフを描画します
import matplotlib.pyplot as plt
plt.plot(range(1, 11), wcss)
plt.xlabel(‘クラスタの数’)
plt.ylabel(‘WCSS’)
plt.show() - エルボーメソッドを用いて、WCSS値の変動が緩やかになるクラスター数を決定する。
- クラスタ分析を実施する
- クラスタ数固定でのクラスタ分析
- 3つのクラスタ数を用いたKMeans++法を使用してクラスタリング分析を行った
- クラスタリング結果はclusters変数に保持され、各サンプルが属するクラスタを示します。
- 可視化したクラスタの結果:
- クラスタリングの結果を視覚化するには、Matplotlibライブラリを使用できます。
- plt.scatter(データセット[‘属性1’], データセット[‘属性2’], c=clusters)
plt.xlabel(‘属性1’)
plt.ylabel(‘属性2’)
plt.show() - 散布図中の異なる色の点は、異なるクラスタを表しています。
上記は基本的な多属性クラスタ分析の手順であり、具体的なニーズやデータセットの特性に応じて必要に応じて調整や拡張を行うことができます。