ららぽてすらブログ

ららぽてすら

クラスタリングとは?🧸

こんにちは〜ららぽてすらです♪

今日は、データ分析の中でも人気の「クラスタリング」についてお話します!

1. クラスタリングとは?

みんながよく行くスーパーのフルーツ売り場を想像してみてください。リンゴ、バナナ、オレンジ。これらはそれぞれ「フルーツ」という大きなカテゴリに属していますよね。クラスタリングとは、大量のデータの中から、似た特性を持つものを「グループ」にまとめる方法のこと。つまり、リンゴやバナナのように、似たものをひとまとめにするのです!

2. なぜクラスタリングが大事なの?

データがたくさんあると、どんな特徴や傾向があるのか一目でわかりにくいですよね。クラスタリングを使えば、そのデータの「グループ化」ができ、どんな特性のデータが多いのか、どのデータが似ているのかが瞬時に把握できるようになるんです。

3. 実際の使い方は?

例えば、ショッピングサイトの利用者データがあったとして、どんな顧客が多いのか、どんな商品が人気なのかを知りたいとき、クラスタリングを使えば、似たような購買傾向の顧客をグループ化できます。これにより、新しいキャンペーンやサービスを計画するときの参考になりますよ!

 

クラスタリングPythonで試してみよう!

クラスタリングを学ぶ上で、一番手軽で理解しやすい方法は、実際にコードを書いて試してみることです。ここではPythonsklearnライブラリを使って、KMeansクラスタリングを実行してみましょう!

1. 必要なライブラリのインポート

python

 

from sklearn.cluster import KMeans

import numpy as np

import matplotlib.pyplot as plt

2. データの準備

ここではサンプルとして、ランダムな点を生成します。

python

 

# ランダムな点を100個生成

X = -2 * np.random.rand(100,2)

X1 = 1 + 2 * np.random.rand(50,2)

X[50:100, :] = X1

3. データをプロットして確認

python

 

plt.scatter(X[:, 0], X[:, 1], s=50)

plt.show()

4. KMeansクラスタリングの実行

ここではクラスタの数を2としています。

python

 

kmeans = KMeans(n_clusters=2)

kmeans.fit(X)

5. クラスタの中心と結果をプロット

python

 

plt.scatter(X[:, 0], X[:, 1], s=50, c=kmeans.labels_)

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, marker='X', c='red')

plt.show()

 

【説明】:

  • KMeansは、指定したクラスタkにデータを分割するアルゴリズムです。
  • データ点の間の距離を計算し、各データ点が所属するクラスタを更新していきます。
  • 最終的に、各データ点が所属するクラスタが変わらなくなるまで、この更新を繰り返します。
  • 上のコードでは、クラスタ数を2に設定しているため、ランダムに生成したデータ点が2つのグループに分けられます。