k-meansクラスタリングアルゴリズムがユークリッド距離メトリックのみを使用するのはなぜですか?


62

効率または機能性に関して、k-meansアルゴリズムがコサイン(dis)の類似性を距離メトリックとして使用せず、ユークリッドノルムのみを使用できる理由はありますか?一般に、ユークリッド以外の距離が考慮または使用される場合、K-means法は準拠し、正しいですか?

[@ttnphnsによる追加。質問は2つあります。「(非)ユークリッド距離」は、2つのデータポイント間の距離、またはデータポイントとクラスター中心間の距離に関係する場合があります。これまでのところ、両方の方法で回答を取り上げようとしました。]


この質問は、すでにstackoverflowとこのサイトで約10回尋ねられています。検索機能を使用してください。
アノニムース

3
@ Anony-Mousse:私はあなたに完全に同意し、SOで最近多くの旗を掲げましたが、これらの質問のほとんどに重複する閉鎖がないことが気がかりです。
Nikana Reklawyks

4
これは、このトピックについてグーグル検索するときに最初に表示されるページです。
ハリプカンナン

回答:


62

K-Meansプロシージャ(クラスタリング手法としてよく使用されるベクトル量子化手法)は、明示的に ペアワイズ距離b / wデータポイントをまったく使用しません(任意の近接度測定を可能にする階層的およびその他のクラスタリングとは対照的)。これは、データポイントから重心までのユークリッド距離を使用して、ポイントを最も近い重心に繰り返し割り当てることになります。ただし、重心からの偏差の2乗の合計は、ペアの2乗ユークリッド距離の合計をポイントの数で割ったものに等しいため、K平均は暗黙的にペアのユークリッド距離b / wデータポイントに基づいています。「重心」という用語自体は、ユークリッド幾何学に由来しています。ユークリッド空間での多変量平均です。ユークリッド空間とは、ユークリッド距離のことです。非ユークリッド距離は、一般にユークリッド空間に広がりません。それが、K-Meansがユークリッド距離専用である理由です。

しかし、ユークリッド距離の2つのデータポイントは、いくつかの代替方法で表すことができます。たとえば、点の余弦またはスカラー積と密接に結びついています。コサイン、共分散、または相関がある場合は、いつでも(1)ユークリッド距離に(2乗)変換し、(2)ユークリッド距離の行列のデータを作成できます(主座標または他の形式のメトリックを使用)多次元スケーリング)から(3)それらのデータをK-Meansクラスタリングに入力します。したがって、K-Meansをペアワイズコサインなどと「連携」させることができ ます。実際、K-Meansクラスタリングのこのような実装が存在します。こちらもご覧ください 「距離行列のK-means」実装について。

もちろん、ペアごとのユークリッド距離の正方行列で直接計算するようにK平均をプログラムすることは可能です。しかし、それはゆっくりと動作するので、より効率的な方法は、その距離行列のデータを作成することです(距離をスカラー積などに変換する-前の段落で概説したパス)-そして、標準のK-means手順を適用しますそのデータセットに。

データポイント間のユークリッドまたは非ユークリッドの非類似性がK-meansと互換性があるかどうかというトピックについて議論していたことに注意してください。これは重心(広義には、中心または準重心)からの非ユークリッド偏差がK-平均に組み込まれるか、または修正された "K-平均"に組み込まれるかどうかと関連していますが、まったく同じ質問ではありません。

関連する質問K-means:WCSSを最小化するとクラスター間の距離が最大化されるのはなぜですか?


あなたが言及しているアプローチのいくつかの例-ドキュメントを引用できますか?
好奇心が強い14年

4
@ダグラス、お願いします。私は、k-meansはペアワイズ距離を使用しないと述べました。それは明確に述べられています。重心までの距離を使用します。しかし、それは自動的に、クラスター内のペアワイズ距離を最適化するタスクと暗黙的に結び付けられることを意味します。
ttnphns

1
@ttnphns:あなたが書いた文字の数でBut a Euclidean distance b/w two data points can be represented in a number of alternative ways. For example, it is closely tied with cosine or scalar product b/w the points. If you have cosine, or covariance, or correlation, you can always (1) transform it to (squared) Euclidean distance、あなたは同じように簡単に書くことができます:distance(x,y) = 1 - cosine_sim(x,y)または同様に簡潔で有益な何か。
stackoverflowuser2010

1
これは妥当かつ建設的な批判のように見えます。リンクに頼るよりも、情報を投稿に直接含める方が良いでしょう。通常、曖昧さよりも明示的である方が良いです。(cc @stackoverflowuser)
whuber

3
何を争っていますか?この場合、リンクに依存する方が良いのか、あいまいになる方が良いのか、またはその両方ですか?なぜ?
whuber

46

実際にポイント単位のユークリッド距離を含むk-meansの解釈については、@ ttnphnsの回答も参照してください。

k-meansの構築方法は、距離に基づいていません

K-meansは、クラスター内の分散を最小化します。分散の定義を見ると、中心からのユークリッド距離の二乗の合計と同じです。(@ttnphnsの回答は、ペアワイズユークリッド距離を指します!)

k-meansの基本的な考え方は、二乗誤差最小化することです。ここには「距離」はありません。

任意の距離を使用することが正しくない理由:k-meansは他の距離関数との収束を停止する可能性があるためです。収束の一般的な証明は次のとおりです。割り当てステップ平均更新ステップの両方が同じ基準を最適化します。割り当ての数には限りがあります。したがって、有限数の改善の後に収束する必要があります。他の距離関数のために、この証明を使用するには、ことを示さなければならない平均:(K-ノート手段は、あまりにも、あなたの距離を最小限に抑えること)。

k平均のマンハッタン距離バリアントを探している場合は、k中央値があります。中央値は既知の最良のL1推定量であるためです。

任意の距離関数が必要な場合は、k-medoid(別名:PAM、medoidの周りの分割)を見てください。medoidは任意の距離を最小化します(最小値として定義されているため)。また、有限数の可能なmedoidのみが存在します。しかし、それは平均よりもはるかに高価です。


しかし、最初の段階で、各点はクラスタの重心と最もユークリッド距離を持つクラスタに入れているK-意味...だからメートルの距離がある
好奇心

@AnonyMousse @ttnphns answer refers to pairwise Euclidean distances!私の答えの第1段落では、「SSエラー」(直接)解釈と「ペアワイズd ^ 2」(暗黙的)解釈の両方を明確に参照ています。
ttnphns

3
あなたの答えに同意します。あなたの運用アカウントk-means may stop converging with other distance functionsは私の理論的なものと同族であることに注意してくださいNon-euclidean distances will generally not span euclidean space
ttnphns

非常に良い説明。ユークリッド距離を考え直したことは一度もありませんでしたが、それが実際にクラスターの平方和を最小化することを認識していませんでした。
ベレナハウシュミット14年

平均は、ユークリッド距離の面で距離を最小限に抑え、余弦の面でそれが証拠の一部としてしない理由私はまだ見ることができない
好奇心

9

ここでは少し教訓的かもしれませんが、K-meansはクラスター内での分散が最小化されるようにデータポイントにラベルを割り当てる特定のアルゴリズムに付けられた名前であり、「一般的な手法」の名前ではありません。

K-meansアルゴリズムはいくつかの分野から独立して提案されており、その分野に適用できる強力な解釈があります。それはちょうど、中心までのユークリッド距離でもあることがわかりました。K-meansの簡単な歴史については、データクラスタリング:K-meansの50年先をご覧ください

ユークリッド以外のメトリックを使用する他のクラスタリングアルゴリズムが多数あります。私が知っている最も一般的なケースは、クラスタリングにブレグマン発散を使用することです。ユークリッドは特別なケースです。


「ユークリッド以外のメトリック」私はもう少し教訓的かもしれませんが、それらの相違はメトリックではありません、一般的に:)
mic

true :); おそらく答えを編集する必要があります。
user1669710

8

これは明らかに標準的な質問であるため、ここではまだ言及していません。

Rdφ:RpHdd(x,y)=φ(x)φ(y)H{φ(xi)}。多くの場合、マップ明示的に計算することはできませんが、カーネル計算できます。すべての距離メトリックがこのモデルに適合するわけではありませんが、多くの距離メトリックが適合するので、文字列、グラフ、画像、確率分布などで定義されたそのような関数があります。φk(x,y)=φ(x),φ(y)H

この状況で、標準(ロイド)k-meansアルゴリズムでは、クラスターにポイントを簡単に割り当てることができますが、クラスターの中心を暗黙的に(ヒルベルト空間の入力ポイントの線形結合として)表します。入力空間で最適な表現を見つけるには、フレシェ平均を見つける必要がありますが、これは非常に高価です。そのため、カーネルを使用してクラスターの割り当てを取得するのは簡単で、手段を取得するのは困難です。

次の論文では、このアルゴリズムについて説明し、スペクトルクラスタリングに関連付けています。

I.ディロン、Y。グアン、およびB.クリス。カーネルk-means、スペクトルクラスタリングおよび正規化カット。KDD 2005。


ロイドのアルゴリズムでカーネルトリックをどのように使用できるかはわかりません。(ヒルベルト空間で暗黙的に)重心を計算するために、明示的なマップφ(x_i)が必要になるように思えますか?ポイントをクラスターに割り当てるために必要なのはカーネルのみですが、重心はクラスターに割り当てられた{φ(x_i)}の平均であるため、重心を再計算するためにはカーネルだけでは済めません。何か不足していますか?
user2428107

重心を明示的に計算することはできません。しかし、それらを単にとしてし、点までの距離を。1nijCiφ(xj)xφ(x)1nijCiφ(xj)2=k(x,x)+1ni2j,jk(xj,xj)2nijk(x,xj)
ドゥーガル

5

ここで多くの興味深いコメントを読みましたが、Matlabのk-meansの「個人的な」実装は 4つの非ユークリッド距離(データポイントとクラスター中心の間)をサポートすることを付け加えます。それについて私が見ることができるドキュメントからの唯一のコメントは:

最小化に使用されるp次元空間の距離測定。'Distance 'と文字列で構成されるコンマ区切りのペアとして指定します。

kmeansは、サポートされているさまざまな距離尺度に対して重心クラスターを異なる方法で計算します。次の表は、利用可能な距離測定をまとめたものです。式では、xは観測値(つまり、Xの行)であり、cは重心(行ベクトル)です。

その後の関数のリストcx続きます。したがって、それpが入力データの次元であると考えると、ユークリッド埋め込みは事前に実行されていないようです。

ところで私は過去にMatlabのk-meansを相関距離で使用してきましたが、それは(当然のことながら)それがすべきことをしていました。


2
注意として、サポートされている非ユークリッド距離は、cosine(正規化された入力ポイントのユークリッド距離)、correlation(標準化された入力のユークリッド距離)、cityblock(、この場合、平均ではなく中央値が使用されます)、および(ちょうどバイナリ入力用)。L1hammingcityblock
ドゥーガル

@Dougal、アルゴリズムの中央値はどのように調整されますか?k- 手段を基本的に異なるアルゴリズムに変更しませんか?
ttnphns

1
バイナリデータの場合、「ハミング距離」= cityblock =平方ユークリッド距離であることにも注意してください。
ttnphns

1
@ttnphnsはい、もはやk-meansではありませんが、中央値を計算する手段として重心を計算する代わりに、まったく同じ構造を持っています。はい、バイナリ入力で、Matlabは平均の代わりに中央値を使用します。=L22=L1
ドゥーガル

1
@ Dougal、matlabプロシージャがリンクされていることに注意してください。これは、ペアワイズ距離の種類とは異なります。
ttnphns

2

ここから:

ここに画像の説明を入力してください

上の図のベクトルで表される2つのドキュメントAとBを考えてみましょう。余弦は、両方のベクトルを正規化することで単位ベクトルとして扱い、2つのベクトル間の角度を測定します。類似度の正確な尺度を提供しますが、大きさは考慮しません。しかし、類似性を考慮するとき、大きさは重要な要素です。


これは一般的な答えです。k-meansにコサインの類似性がない理由は説明されていません。たとえば、階層的クラスタリングでは広く使用されています
好奇心

3
@DLDahly:マグニチュードが重要な場合もあれば、ノイズである場合もあります。それは研究分野に依存し、データの標準化の問題です。
ttnphns 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.