scipy.cluster.hierarchy.fclusterの戻り値と使い方について
-
20-12-2019 - |
質問
4 つの観測値があり、scipy.cluster.hierarchy.linkage の戻り値が次であるとします。
[[ 1. 3. 0.08 2. ]
[ 2. 4. 0.28813559 3. ]
[ 0. 5. 1. 4. ]]
この戻り値は次のことを意味します。最初の観測値 1 と 3 は新しいクラスター 4 にマージされ、次に観測値 2 がこの新しいクラスターに追加されて、さらに新しいクラスター 5 が形成されます。最後に、観測値 0 がクラスター化されます。2 つのクラスター {1,3,2} と {0} を取得したいので、戻り値 [2,1,1,1] が期待されます。これは、要素 0 がクラスター 2 に属し、残りが別のクラスターにグループ化されることを意味します。クラスター 1、しきい値 0.4 を使用。しかし、実際には scipy.cluster.hierarchy.fcluster は [ 3 1, 2 ,1 ] を返します。もちろん、リンケージが返す 2 次元配列を分析するための Python コードを自分で書くこともできますが、しきい値を 0.4 に設定すると、fcluster 関数が必要なものを返すことができると思います。ただし、パラメータを指定する方法がわからないので、次のコードを使用して階層的クラスタリングを実行するサンプルコードを提供していただけないでしょうか。 linkage
そして、次を使用して最終結果を与えます fcluster
観測値はセットで表されるクラスターにグループ化されます。ありがとう。
解決
fcluster
もっている inconsistent
選択基準の標準引数として。使用 distance
引数として、結合行列からコーフェネティック距離を取得します。 Z[:,2]
. 。あなたはただ使うかもしれません maxclust
クラスターの数を指定する場合は、基準として使用します。単一のリンケージを使用してクラスタリングを行っている場合、一部のクラスターがシングルトン (外れ値) である可能性があります。Help(fcluster) には関数の使用方法について必要な情報が記載されているので、 ドキュメント