C# で実装した K-Means クラスタリングの入力として 100 x 13 ベクトルがあります。クラスタリングの結果、つまり 13 次元データ ポイントをプロットしたい
OxyPlot、ZedGraphなどの 2D および 3D プロット ライブラリの例を見てきましたが、N 次元データ (N > 3 で、私の場合は N = 13) をプロットする例は見つかりませんでした。
C#でこれを実現する方法を教えてもらえますか?
さて、13次元ディスプレイはありますか?そうすれば、13 次元のデータをプロットするのは簡単です。
2 次元を超えるものには何らかの射影が必要です (実際には、2 次元でも何らかの射影が必要です)。時間(=アニメーション)を追加すると、投影を回転させることで合理的に 3 次元を視覚化できます。
したがって、3 次元以上を視覚化するには、次の 2 つの非常に一般的な手法があります。
次元削減。これには、分散の大きい軸を特定するために PCA を使用することが含まれます。または、多次元スケーリングを試すこともできます
平行座標。各次元には軸が与えられますが、軸は交差せずに平行に描かれます。各ベクトルはもはや点ではなく、適切な高さで軸を結ぶ線です。したがって、ベクトル (1,2,0) は、1 番目の軸の 1 から 2 番目の軸の 2、3 番目の軸の 0 までのポリラインです。
スマイリーフェイス、グリフ、および同様の視覚化手法など、さらにいくつかのものがあります。データ ビジュアライゼーションに関するいくつかのレクチャー スライドを取得すると、これらのテクニックのいくつかがわかるはずです。
平行座標の例を見るには、データ セットをELKIにロードし、そこで k-means を実行します。太い線は平行座標プロットの平均を示し、細い線はデータ インスタンスを示します。