質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3565閲覧

pythonの階層クラスタリングにおいて、任意の階層でラベルづけすることは可能ですか?

aooo

総合スコア15

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/31 10:25

初心者の質問で申し訳ございません。
そもそも機械学習を理解していない質問になってしまうかもしれないのですが、
みなさまのお力を拝借できますと幸いです。

階層クラスタリングのラベル付けに苦戦しています。

12000行×13列のデータフレームをlinkage()でクラスタリングをかけました。
(中身は0/1回答フラグです)(そもそも12000が多すぎるのは分かっているのですが、できればこのままでいきたいです)
コードは下記です。

linkage_result = linkage(df, method='ward', metric='euclidean') dendrogram(linkage_result) t = 0.7*max(linkage_result[:,2]) c = fcluster(linkage_result, t, criterion = "distance")

 

この際、ラベルが1 or 2で出てきてしまうのですが、
下記画像のようにピンクの線(任意の階層)で切って、その分岐数のラベルを付与することは可能でしょうか。

!![イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ぴったりそのままのことはできませんが、dendrogramのオプションで途中で切ること自体は可能です。

python

1import matplotlib.pyplot as plt 2from scipy.cluster.hierarchy import linkage, dendrogram 3from sklearn.datasets import load_iris 4 5iris = load_iris() 6z = linkage(iris.data) 7fig, axes = plt.subplots(1, 3, figsize=(10, 5)) 8 9ps = [30, 10, 4] 10modes = [None, "lastp", "level"] 11 12for ax,p,mode in zip(axes, ps, modes): 13 dendrogram(z, labels=iris.target, 14 p=p, truncate_mode=mode, 15 ax=ax) 16plt.savefig("result.png")

イメージ説明

scipy.cluster.hierarchy.dendrogram — SciPy v1.2.0 Reference Guide

投稿2019/01/31 13:53

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aooo

2019/02/01 02:19

hayataka2049さん、ご回答ありがとうございます。 いただいたコードを紐解くにあたって、dendrogramのガイドも読みまして、 ああやってパラメーターを確認するんだ!と 自分で調べるやり方も学ぶことができました。 大変感謝です。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問