4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Seabornのclustermapによるクラスタリング後の結果行列の取得方法

Last updated at Posted at 2022-03-27

Seabornのclustermap関数によるクラスタリング後の結果行列を取得する方法の備忘録

clustermap関数の仕様

公式ドキュメントによると、clustermapは戻り値としてClusterGridオブジェクトを返す。クラスタリング後に並び替えられた行・列インデックス情報はClusterGridオブジェクトのdendrogram_row.reordered_inddendrogram_col.reordered_indのプロパティから取得できる。以下にアヤメ(iris)データセットを利用したコード例を記載する。

クラスタリング後の行・列インデックス取得例
import seaborn as sns

iris = sns.load_dataset("iris")
species = iris.pop("species")
iris = iris[:10] # テスト確認用にデータ削減

g = sns.clustermap(iris, figsize=(10, 4))
print("> Original data")
print("rows = ", list(iris.index))
print("columns = ", list(iris.columns))
print("> Clustering data")
print("rows = ", g.dendrogram_row.reordered_ind)
print("columns = ", g.dendrogram_col.reordered_ind)

コード実行の出力結果・図

> Original data
rows =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
columns =  ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
> Clustering data
rows =  [5, 7, 0, 4, 8, 1, 9, 6, 2, 3]
columns =  [2, 3, 0, 1]

clustermap_iris.png
出力結果・図からクラスタリング後に並び替えられた行・列の各インデックス情報を正しく取得できていることが確認できる。

クラスタリング後の結果行列取得

クラスタリング後に並び替えられた行・列インデックス情報を元に、下記コードでクラスタリング後の結果行列を取得できることを確認できた。

import seaborn as sns

iris = sns.load_dataset("iris")
species = iris.pop("species")
iris = iris[:10]

g = sns.clustermap(iris[:10], figsize=(10, 4))
reordered_index = iris.index[g.dendrogram_row.reordered_ind]
reordered_columns = iris.columns[g.dendrogram_col.reordered_ind]

clustered_iris = iris.loc[reordered_index, reordered_columns]
print(clustered_iris)
出力結果
   petal_length  petal_width  sepal_length  sepal_width
5           1.7          0.4           5.4          3.9
7           1.5          0.2           5.0          3.4
0           1.4          0.2           5.1          3.5
4           1.4          0.2           5.0          3.6
8           1.4          0.2           4.4          2.9
1           1.4          0.2           4.9          3.0
9           1.5          0.1           4.9          3.1
6           1.4          0.3           4.6          3.4
2           1.3          0.2           4.7          3.2
3           1.5          0.2           4.6          3.1

clustermap_iris.png

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?