Scipy.cluster.hierarchy.dendrogram 関数

Lakshay Kapoor 2023年1月30日
  1. scipy.cluster.hierarchy.dendrogram の構文
  2. 階層的クラスタリング樹状図の例
Scipy.cluster.hierarchy.dendrogram 関数

階層的クラスタリング分析とも呼ばれる階層的クラスタリングは、同じタイプのオブジェクトをクラスターと呼ばれるグループにグループ化するために、上から下へのアプローチに従います。これは教師なし機械学習アルゴリズムであり、すべてのグループまたはクラスターが互いに異なります。

階層的クラスタリングには次の 2 種類があります。

  • 分割クラスタリング-この方法では、最初にすべてのオブジェクトが 1つのクラスターにグループ化され、次にすべてのオブジェクトが類似性がほとんどない 2つのクラスターに分割されます。この方法は、上から下へのアプローチに従います。
  • 凝集的クラスタリング-この方法では、オブジェクトは独自のクラスターにグループ化されます。この方法は、下から上へのアプローチに従います。

樹状図は、事前定義されたすべてのクラスター間の関係を説明するのに役立つ、ツリーのような図である視覚化図です。樹状図の最も基本的な方法論は、樹状図の線の間の距離が遠いほど、すべてのクラスター間の距離が大きくなることです。

scipy.cluster.hierarchy.dendrogram の構文

scipy.cluster.hierarchy.dendrogram(Z, p=30, truncate_mode=None, orientation="top")

パラメーター

Z これは、階層的クラスタリング全体をエンコードして樹状図として定義するために使用されるリンケージ行列を表します。
p これは、truncate_mode に対して定義されたパラメーターです。
truncate_mode クラスター間のリンクを定義する元の観測行列が大きいため、樹状図の調査が困難になる可能性があります。このパラメータは、樹状図をコンパクトにするのに役立ちます。
orientation 樹状図がどの方向にプロットされているかを決定します。たとえば、toptop の向きは、樹状図の基部が上にあり、リンクが下に向かっていることを意味します。同様に、他の方向は bottomleftright です。

Z パラメータを除いて、これらのパラメータはすべてオプションです。また、この関数には、color_thresholdget_leavesdistance_sort など、さらに多くのオプションのパラメーターがあります。

階層的クラスタリング樹状図の例

import numpy as np
from scipy.cluster import hierarchy
import matplotlib.pyplot as plt

array = np.array([30, 60, 90, 120, 150, 180, 210, 240, 270, 300])

clus = hierarchy.linkage(array, "complete")
plt.figure()

den = hierarchy.dendrogram(
    clus, above_threshold_color="black", color_threshold=0.8, orientation="right"
)

出力:

scipy cluster hierarchy dendrogram

ここでは、階層的クラスタリングを行うために complete linkage アルゴリズムを使用していることに注意してください。また、樹状図のベースは右側にあり、orientation パラメータが right として定義されているため、リンクは左側に向かって落ちています。

著者: Lakshay Kapoor
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn