optimalleaforder
階層クラスタリングの最適な葉ノードの順序
説明
例
最適な葉ノードの順序を使用した系統樹のプロット
linkage
を使用して、階層バイナリ クラスター ツリーを作成します。次に、既定の順序を使用した系統樹と、最適な葉ノードの順序を使用した系統樹を比較します。
標本データを生成します。
rng('default') % For reproducibility X = rand(10,2);
距離ベクトルと階層バイナリ クラスタリング ツリーを作成します。距離とクラスタリング ツリーを使用して、最適な葉ノードの順序を判断します。
D = pdist(X);
tree = linkage(D,'average');
leafOrder = optimalleaforder(tree,D);
既定の順序を使用した系統樹と、最適な葉ノードの順序を使用した系統樹をプロットします。
figure() subplot(2,1,1) dendrogram(tree) title('Default Leaf Order') subplot(2,1,2) dendrogram(tree,'reorder',leafOrder) title('Optimal Leaf Order')
下の図における葉の順序は、leafOrder
の要素に対応しています。
leafOrder
leafOrder = 1×10
1 4 9 10 2 5 8 3 7 6
逆の距離相似変換を使用した最適な葉ノードの順序
標本データを生成します。
rng('default') % For reproducibility X = rand(10,2);
距離ベクトルと階層バイナリ クラスタリング ツリーを作成します。
D = pdist(X);
tree = linkage(D,'average');
逆の距離相似変換を使用して、最適な葉ノードの順序を判断します。
leafOrder = optimalleaforder(tree,D,'Transformation','inverse')
leafOrder = 1×10
1 4 9 10 2 5 8 3 7 6
入力引数
tree
— 階層バイナリ クラスター ツリー
linkage
で返される行列
(M - 1) 行 3 列の行列として指定される、階層バイナリ クラスター ツリー。M は葉の数であり、この行列は linkage
によって生成されます。
D
— 距離
行列 | ベクトル
葉の間の類似度を判定するための距離。距離の行列またはベクトルとして指定します。たとえば、pdist
を使用して距離を求めることができます。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Criteria','group','Transformation','inverse'
は、逆の相似変換を使用して、それぞれの葉と、隣接するクラスター内における他のすべての葉との類似度を合計して最大化するように指定します。
Criteria
— 最適化条件
'adjacent'
(既定値) | 'group'
最適な葉ノードの順序を決定するための最適化の条件。'criteria'
と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。
'adjacent' | 隣接する葉との類似度の合計を最大化します。 |
'group' | 系統樹の同じレベルにおいて、それぞれの葉と、隣接するクラスター内において他のすべての葉との類似度を合計して最大化します。 |
例: 'Criteria','group'
Transformation
— 距離を類似度に変換する方法
'linear'
(既定値) | 'inverse'
| 関数ハンドル
距離を類似度に変換する方法。'Transformation'
と、コンマ区切りのペアとして指定し、'linear'
、'inverse'
または関数ハンドルのいずれかで構成されます。
di,j と Simi,j は、葉 i と葉 j の間の距離と類似度を示しています。以下の相似変換が用意されています。
'linear' | Simi,j = maxi,j (di,j ) – di,j |
'inverse' | Simi,j = 1/di,j |
カスタムの変換関数を使用するには、距離の行列 D
を受け入れ、類似度の行列 S
を返す関数へのハンドルを指定します。この関数は、距離の値の範囲で単調減少でなければなりません。S
のサイズは D
と同じでなければなりません。S(i,j)
は D(i,j)
に基づいて計算された類似度となります。
例: 'Transformation',@myTransform
出力引数
leafOrder
— 最適な葉ノードの順序
ベクトル
長さが M のベクトルとして返される、最適な葉ノードの順序。M は葉の数です。leafOrder
は、指定された距離と相似変換に基づき最適な葉ノードの順序を指定する、ベクトル 1:M
の順列です。
参照
[1] Bar-Joseph, Z., Gifford, D.K., and Jaakkola, T.S. (2001). "Fast optimal leaf ordering for hierarchical clustering." Bioinformatics Vol. 17, Suppl 1:S22–9. PMID: 11472989.
バージョン履歴
R2012b で導入
参考
dendrogram
| linkage
| pdist
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)