質問

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) には関数の使用方法について必要な情報が記載されているので、 ドキュメント

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top