dendrogram関数の結果から、閾値以下のグループ数をカウントする方法について
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
denpika
el 17 de Jul. de 2018
Comentada: denpika
el 18 de Jul. de 2018
以下のコードを実行すると閾値0.4以下のノードが4色に塗り分けられますが、塗り分けられた色の数(グループの数)をカウントする方法はないでしょうか?
rng('default')
X = rand(20,2);
tree = linkage(X,'average');
dendrogram(tree,0,'ColorThreshold',0.4);
0 comentarios
Respuesta aceptada
michio
el 17 de Jul. de 2018
かなり不格好ですが・・ラインハンドル H から全ての色を確認し、何種類の色が存在するかをチェックすることでグループ数を確認できます。
rng('default')
X = rand(20,2);
tree = linkage(X,'average');
dendrogram(tree,0,'ColorThreshold',0.4);
[H,T,outperm] = dendrogram(tree,0,'ColorThreshold',0.4);
lineColors = vertcat(H.Color); % Lineオブジェクトの色を行列に結合
uniqueColors = unique(lineColors, 'rows'); % ユニークな色(黒も合わせて出てきます)
size(uniqueColors,1) - 1 % 黒以外の色の数
3 comentarios
michio
el 17 de Jul. de 2018
上で得られたグループ数を使って
[H,T,outperm] = dendrogram(tree,4);
と実行すれば、少なくとも各グループの番号は取得できますがいかがでしょうか。
find(T==1)
Más respuestas (0)
Ver también
Categorías
Más información sobre クラスターの可視化と評価 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!