5

KL-divergenceをメトリックとして使用してデータをクラスター化したい。

K-means:

  1. クラスターの数を選択します。

  2. 各クラスターの平均をランダムに初期化します。

  3. c最小の距離値で各データポイントをクラスターに割り当てます。

  4. 各クラスターの平均を、それに割り当てられたデータポイントの平均に更新します。

ユークリッドの場合、各ベクトルを平均化するだけで、平均を更新するのは簡単です。

ただし、メトリックとしてKL-divergenceを使用したい場合、平均を更新するにはどうすればよいですか?

4

4 に答える 4

6

KLDにはメトリックの重要なプロパティである対称性がないため、KL発散を使用したクラスタリングは最善のアイデアではない可能性があります。取得したクラスターは、解釈が非常に困難になる可能性があります。KLDを進めたい場合は、距離としてKLDの平均を使用できます。

d(x,y) = KLD(x,y)/2 + KLD(y,x)/2

于 2013-02-02T10:45:13.347 に答える
3

次の2つの理由から、KLDを使用することはお勧めできません。-

  1. 対称ではありませんKLD(x、y)〜= KLD(y、x)
  2. プログラミングでKLDを使用する場合は、注意が必要です。除算により、結果としてInf値とNANが発生する可能性があります。

少数を追加すると、精度に影響する場合があります。

于 2016-02-17T18:30:19.950 に答える
1

ええと、「k-meansフレームワーク」でKLを使用するのは良い考えではないかもしれません。言われたように、それは対称的ではなく、K-Meansはユークリッド空間で機能することを目的としています。

ただし、NMF(非負行列因子分解)を使用してみることができます。実際、本Data Clustering(Aggarwal and Reddyが編集)では、NMF(クラスタリングタスク内)がk-meansのように機能することを証明できますが、非負の制約があります。楽しい部分は、NMFがさまざまな距離と発散の束を使用する可能性があることです。Pythonをプログラムする場合:scikit-learn 0.19は、自由度として可変ベータを持つベータ発散を実装します。ベータの値に応じて、発散の動作は異なります。ベータが2に等しい場合、KL発散の動作を想定しています。

これは実際、トピック(またはテーマ)上でドキュメント/単語をクラスター化しようとするトピックモデルのコンテキストで非常に使用されます。KLを使用することにより、結果は、単語トピックとトピック分布がどのように関連しているかに関する確率関数として解釈できます。

あなたはより多くの情報を見つけることができます:

  • FÉVOTTE、C。、IDIER、J.「β発散を伴う非負行列因子分解のアルゴリズム」、ニューラル計算、v。23、n。9、pp。2421– 2456、2011. ISSN:0899-7667。土井:10.1162/NECO_a_00168。Disponívelem:。

  • LUO、M.、NIE、F.、CHANG、X.、etal。「確率的非負行列因子分解とトピックモデリングのためのそのロバストな拡張」。In:AAAI、pp。2308–2314、2017。

  • KUANG、D.、CHOO、J.、PARK、H.「インタラクティブトピックモデリングとドキュメントクラスタリングのための非負行列因子分解」。In:Partitional Clustering Algorithms、Springer、pp。215–243、2015年。

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html

于 2018-03-02T06:57:23.550 に答える
0

K-meansは、ユークリッド距離で機能することを目的としています。クラスタリングで非ユークリッド類似性を使用する場合は、別の方法を使用する必要があります。任意の類似性メトリックを使用してクラスター化する最も原理的な方法はスペクトルクラスタリングであり、K-meansは、類似性がユークリッド距離である場合のこれの変形として導出できます。

そして、ミッチャスが言うように、KLダイバージェンスはメトリックではありません。対称性のためにイェンセンシャノン発散が必要です。

于 2013-02-04T10:50:57.043 に答える