Fuzzy C-means クラスタリング アルゴリズムから取得したクラスタの視覚化をプロットしようとしています。k-means で取得したような鮮明なクラスターを使用すると、matplotlib で取得したような通常の散布図で簡単に視覚化できます。あいまいなクラスターをプロットしてオーバーラップを視覚化する推奨される方法はありますか? はいの場合、どのように?
1 に答える
1 つのオプションは、データを 2 つのグループに分割することです。所属度 >= X のクラスターの一部であるポイントと、X 未満のポイントです。所属度 >= X のポイントをクリスプ グループと呼びます。X 未満の場合は、異なるクラスターごとにグループを作成し、これらをファジー グループと呼びます。すべてのあいまいなグループには、鮮明なグループにないすべてのデータ ポイントがあります。
ここで、プロットに移動するときに、各クラスターに色を割り当てます。たとえば、3 つのクラスター A、B、および C があるとします。それらに青、緑、および赤の色を割り当てます。鮮明なグループをグループ カラーの不透明度 100% でプロットし、ファジー グループのそれぞれについて、ポイントの帰属度を調べ、クラスターの色で縮小された不透明度でプロットします。
全体として各ファジー グループに色を割り当てる必要があるため、所属の程度によってヒストグラムのように "ビン" にするか、グループをすべてスキップして各ポイントを個別にプロットするのが最善の方法です。
たとえば、2 つのクラスター A と B があるとします。
data = [(0.2,0.8),(0.5,0.5),(0.65,0.35),(0.25,0.75)]
ここで、 data は各ポイント (座標は挙げませんが、 で表すことができると仮定します) の所属度 (A,B) を表しptn
ます。次に、X が .7の場合、次のようcrisp_A = [pt1]
にしcrisp_B = [pt4]
ます。そして。fuzzy_A = [pt2, pt3]
_ とをフルカラーでfuzzy_B = [pt2,pt2]
プロットしてから、 aまたはそれに似たものを使用して、それぞれの所属度によってスケーリングします。crisp_A
crisp_B
cm.hsv
fuzzy_A
fuzzy_B