Python でのクラスター分析の例

王林
王林オリジナル
2023-06-10 12:30:073102ブラウズ

クラスター分析は、データセットをさまざまなグループまたはカテゴリに分割できる一般的なデータ分析方法です。 Python はさまざまなクラスタリング アルゴリズムを提供しており、さまざまなニーズに応じて分析用にさまざまなアルゴリズムを選択できます。この記事では、Python で一般的に使用されるクラスタリング アルゴリズムをいくつか紹介し、アプリケーション例を示します。

1. K-Means アルゴリズム

K-Means アルゴリズムは、ユークリッド距離に基づいてデータをグループ化する、一般的に使用されるクラスタリング アルゴリズムです。このアルゴリズムは、データ セットを k 個のクラスターに分割します。各クラスターの中心点はクラスターのすべてのメンバーの平均です。アルゴリズムの具体的な手順は次のとおりです。

  1. 最初のクラスター中心として k 点をランダムに選択します。
  2. すべてのデータ ポイントとクラスター中心間の距離を計算し、各データ ポイントを最も近いクラスターに分類します。
  3. 新しい分類結果に基づいて、各クラスターの中心点を再計算します。
  4. クラスターが変化しなくなるか、指定された反復回数に達するまで、ステップ 2 と 3 を繰り返します。

以下は、クラスター分析に K-Means アルゴリズムを使用する Python の例です:

import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42)

# 运行 K-Means 算法
kmeans = KMeans(n_clusters=4, random_state=42)
y_pred = kmeans.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("K-Means Clustering")
plt.show()

上記のコードでは、make_blobs 関数を使用して 300 個のサンプルを含むデータ セットを生成します。ポイント。合計 4 つのクラスターを含みます。次に、KMeans 関数を使用してクラスタリングを実行し、クラスターの数を 4 に指定し、fit_predict メソッドを通じて各データ ポイントの分類結果を取得します。最後に、Matplotlib を使用してクラスタリング結果をプロットします。

2. 階層的クラスタリング アルゴリズム

階層的クラスタリング アルゴリズムは、データの類似性に基づいてデータを徐々に大きなクラスターにマージするボトムアップ クラスタリング アルゴリズムです。アルゴリズムの具体的な手順は次のとおりです。

  1. 各データ ポイントを個別のクラスターとして扱います。
  2. 2 つの最も近いクラスター間の距離を計算します。
  3. 最も近い 2 つのクラスターを新しいクラスターにマージします。
  4. すべてのクラスターが 1 つのクラスターにマージされるか、指定されたクラスター数に達するまで、手順 2 と 3 を繰り返します。

以下は、階層クラスタリング アルゴリズムを使用したクラスター分析の Python の例です。

from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行层次聚类算法
agglomerative = AgglomerativeClustering(n_clusters=2)
y_pred = agglomerative.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Agglomerative Clustering")
plt.show()

上記のコードでは、make_moons 関数を使用して 200 個のサンプル ポイントを含むデータ セットを生成します。 、クラスタリングには AgglomerativeClustering 関数を使用し、クラスタ数を 2 に指定します。最後に、Matplotlib を使用してクラスタリング結果をプロットします。

3. DBSCAN アルゴリズム

DBSCAN アルゴリズムは、データ セットの密度に基づいてデータ ポイントを異なるクラスターに分割できる密度ベースのクラスタリング アルゴリズムです。アルゴリズムの具体的な手順は次のとおりです。

  1. 未訪問のデータ ポイントをコア ポイントとしてランダムに選択します。
  2. コア ポイントからの距離が指定された半径を超えないすべてのポイントを、コア ポイントを中心とする密度到達可能領域として検索します。
  3. ポイントが別のコア ポイントの密度到達可能領域内にある場合は、そのポイントとコア ポイントをクラスターにマージします。
  4. 新しいコア ポイントがなくなるまでステップ 1 ~ 3 を繰り返します。

以下は、クラスター分析に DBSCAN アルゴリズムを使用する Python の例です:

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行 DBSCAN 算法
dbscan = DBSCAN(eps=0.2, min_samples=5)
y_pred = dbscan.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("DBSCAN Clustering")
plt.show()

上記のコードでは、make_moons 関数を使用して 200 個のサンプル ポイントを含むデータ セットを生成します。 DBSCAN 関数を使用してクラスタリングを実行し、半径のしきい値とサンプルの最小数を指定しました。最後に、Matplotlib を使用してクラスタリング結果をプロットします。

概要

この記事では、Python で一般的に使用される 3 つのクラスタリング アルゴリズムを紹介し、対応するサンプル アプリケーションを示します。クラスタリング アルゴリズムは、データ内の隠れたパターンや関係を発見するのに役立つ非常に便利なデータ分析方法です。実際のアプリケーションでは、データの特性とニーズに基づいて、分析用にさまざまなアルゴリズムを選択できます。

以上がPython でのクラスター分析の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。