0

300x5000 で作業しているマトリックスがあり、どの距離計算パラメーターが最も効果的かをテストしたかったのです。次の結果が得られました。

'Sqeuclidean' = 17 回の反復、距離の合計 = 25175.4

「相関」 = 9 回の反復、距離の合計 = 32.7

'Cityblock' = 34 回の反復、距離の合計 = 105175.3

'コサイン' = 11 回の反復、距離の合計 = 11.9

結果が大きく異なる理由と、最も効果的な距離パラメーターを選択する方法を理解するのに苦労しています。何かアドバイス?

編集:

各機能のインスタンスが 5000 ある 300 の機能があります。関数は次のようになります。

[idx, ctrs, sumd, d] = kmeans(matrix, 25, 'distance', 'cityblock', 'replicate', 20)

距離パラメータを交換します。機能はすでに正規化されています。

ありがとう!

4

2 に答える 2

0

異なる場所からの距離値

  • 距離関数
  • データセット
  • 正規化

一般的には比較できません。現実の簡単な例: 距離を「メートル」または「インチ」で測定すると、非常に異なる結果が得られます。異なるスケールで測定されているという理由だけで、メートル単位の結果が良くなるわけではありません。したがって、異なる結果の分散を比較してはなりません

k-means はユークリッド距離でのみ使用することを意図しており、他の距離関数では収束しない可能性があることに注意してください。IMHO、L_pノルムは問題ないはずで、TF-IDFでは余弦もあるかもしれません。しかし、私はその証拠を知りません。

ああ、k-means は高次元データではうまく機能しません。これは、低次元を対象としています。

于 2012-06-27T09:30:25.370 に答える
0

slayton がコメントしたように、特定の問題にとって「最善」とは何かを定義する必要があります。

重要なのは、距離関数がデータをどれだけうまくクラスター化するかだけです。一般に、クラスタリングは距離関数に大きく依存します。選択した 2 つのメトリック (反復回数、距離の合計) は、クラスタリングがうまく機能するかどうかとはまったく関係ありません。

クラスタリングで何を達成しようとしているのかを知る必要があり、その目標をどれだけ達成したかを示す何らかの指標が必要です。クラスターの状態を判断するための客観的な指標がある場合は、それを使用してください。多くの場合、メトリックはあいまいです: データを視覚化すると、これは正しく見えますか? データを見て、各距離関数がデータをどのようにクラスター化するかを見てください。最良のクラスターを生成すると思われる距離関数を選択します。直感が正しいことを確認するために、データのいくつかのサブセットに対してこれを行います。また、各距離関数が与える結果を理解しようとする必要があります。

最後に、いくつかの問題は、特定の距離関数に役立ちます。問題に空間的特徴がある場合、ユークリッド (幾何学的) 距離が自然な選択となることがよくあります。他の距離関数は、さまざまな問題に対してより適切に機能します。

于 2012-06-26T16:46:17.330 に答える