k-meansクラスタリングとPCAの関係は何ですか?


61

クラスタリングアルゴリズム(k-meansなど)の前にPCA(主成分分析)を適用するのが一般的な方法です。これにより、実際のクラスタリング結果が改善されると考えられています(ノイズ低減)。

しかし、PCAとk-meansの関係の比較と詳細な研究に興味があります。たとえば、Chris Ding and Xiaofeng He、2004、K-means Clustering by Principal Component Analysisは、「主成分がK-meansクラスタリングの離散クラスターメンバーシップインジケーターに対する連続的なソリューションである」ことを示しました。しかし、私はこの論文を理解するのに苦労しており、ウィキペディアは実際には間違っていると主張しています。

また、2つの方法の結果は、PCAが分散を維持しながら「機能」の数を減らすのに役立つという意味でやや異なります。一方、クラスタリングは、期待値/手段によっていくつかの点を要約することで「データ点」の数を減らします(k-meansの場合)。したがって、データセットがそれぞれ特徴を持つポイントで構成される場合、PCAはT個の特徴を圧縮することを目的とし、クラスタリングはN個のデータポイントを圧縮することを目的とします。NTNTN

私は、これらの2つの手法の関係についての素人の説明と、2つの手法に関するいくつかの技術論文を探しています。


2
クラスタリングは、機能の削減と考えることもできます。各サンプルをクラスターの割り当てで表現するか、それらをスパースエンコードします(したがってTkに減らしますk)。これらのアプローチはどちらも、「特徴」の次元を減らしながら、データポイントの数を一定に保ちます。
ジェフ

回答:


73

K-meansクラスタリングとPCAが非常に異なる目標を持っているように見え、一見関連していないようです。しかし、Ding&He 2004のK-means Clustering by Principal Component Analysisで説明されているように、それらの間には深いつながりがあります。

直感では、PCAはすべてのデータベクトルを少数の固有ベクトルの線形結合として表現しようとし、平均二乗再構成エラーを最小化することを目指しています。対照的に、K-meansは、少数のクラスター重心を介してすべてのデータベクトルを表す、つまり、を除いて線形結合の重みがすべてゼロでなければならない少数のクラスター重心ベクトルの線形結合として表すことを目指します。これは、平均二乗再構成誤差を最小化するためにも行われます。n 1nn1

したがって、K-meansは超疎PCAと見なすことができます。

Ding&Heの論文は、この接続をより正確にするためのものです。


残念ながら、Ding&Heの論文にはいくつかのずさんな処方が含まれており(よくても)誤解されやすい。たとえば、Ding&Heは、K平均クラスタリングソリューションのクラスター重心が次元PCA部分空間にあることを証明したと主張しているように見えるかもしれません。(K1)

定理3.3。クラスター重心部分空間は、最初の主方向[...]にまたがってい ます。K1

以下のためにこれは、PC1軸上の突起は、必ずしもすなわちPC2軸が完全にクラスタを分離する、別のクラスタのための1つのクラスタの陰性および陽性になることを暗示します。K=2

これは間違いか、いくつかのずさんな文章です。いずれにせよ、文字通り、この特定の主張は間違っています。

2Dのおもちゃの例を見てみましょう。同じ共分散行列で平均が異なる2つの正規分布からいくつかのサンプルを生成しました。その後、K-meansとPCAの両方を実行しました。次の図は、上のデータの散布図と、下のK-meansソリューションに従って色付けされた同じデータを示しています。また、最初の主な方向を黒い線で示し、K手段で見つかったクラスの重心を黒い十字で示します。PC2軸は黒い破線で示されています。グローバル平均への収束を保証するために、ランダムなシードを使用してK平均が回繰り返されました。100K=2100

PCA対K-means

クラスの重心が最初のPC方向にかなり近い傾向がある場合でも、正確にそれに該当しないことがはっきりとわかります。さらに、PC2軸はサブプロット1と4でクラスターを完全に分離しますが、サブプロット2と3でその反対側にいくつかの点があります。

したがって、K-meansとPCAの一致は非常に良好ですが、正確ではありません。

それで、Ding&彼は何を証明しましたか?簡単にするために、場合のみを検討します。各クラスターに割り当てられたポイントの数をと に、ポイントの総数をます。丁&Heを以下、の定義でき、クラスタインジケータベクトル 次のように場合ポイントを番目の1クラスタに属し、がクラスター2に属する場合。クラスターインジケーターベクトルの単位長はであり、「中央揃え」です。つまり、その要素の合計はゼロになります。、N 1 、N 2、N = N 1つの + N 2 のqR、N 、Q 、I = K=2n1n2n=n1+n2 qRn IQI=-qi=n2/nn1iQ=1qi=n1/nn2q=1qi=0

Ding&Heは、K-means損失関数(K-meansアルゴリズムが最小化する)は、、ここではすべての点間のスカラー積のグラム行列です:、ここではデータ行列で、は中心データ行列です。ki(xiμk)2qGqGn×nG=XcXcXn×2Xc

(注:私は彼らの論文とわずかに異なる記法と用語を使用していますが、より明確だと思います)。

したがって、K-means解は、最大化する中心単位ベクトルです。最初の主成分(単位の平方和を持つように正規化された場合)がGram行列の先頭の固有ベクトルであることを示すのは簡単です。つまり、中心単位のベクトル、。唯一の違いは、はこの制約がないのに対して、は2つの異なる値のみが追加で制約されることです。qqGqppGpqp

つまり、K-meansとPCA は同じ目的関数を最大化しますが、唯一の違いはK-meansに追加の「カテゴリ」制約があることです。

上記のシミュレーションで見たように、ほとんどの場合、K-means(制約付き)とPCA(非制約付き)のソリューションは互いに非常に近いと考えられますが、それらが同一であることを期待すべきではありません。を取り、そのすべての負の要素を等しく設定し、すべての正の要素をすると、通常、正確に得られ ませんpn1/nn2n2/nn1q

Dingと彼は、定理を次のように定式化しているため、これをよく理解しているようです。

定理2.2。平均クラスタリングの場合、クラスター指標ベクトルの連続解は[最初の]主成分ですK=2

「継続的解決」という言葉に注意してください。この定理を証明した後、彼らはさらに、PCAを使用してK-meansの繰り返しを初期化することができるとコメントしています。これは、が近いと予想されることを考えると意味があります。しかし、同一ではないため、反復を実行する必要があります。qp

しかし、Ding&Heはより一般的な治療法を開発し、定理3.3を次のように定式化します。K>2

定理3.3。クラスター重心部分空間は、最初の主方向[...]にまたがってい ます。K1

私はセクション3の数学を経験しませんでしたが、この定理は実際にはK平均の「連続解」にも言及していると思います。つまり、その文は「K平均の連続解のクラスター重心空間はスパンド[...]」。

しかし、Ding&Heは、この重要な資格を与えず、さらに、

ここでは、主成分がK平均クラスタリングの離散クラスターメンバーシップインジケーターの連続解であることを証明します。同様に、クラスター重心がまたがる部分空間は、項で切り捨てられたデータ共分散行列のスペクトル展開によって与えられることを示します。K1

最初の文は完全に正しいですが、2番目の文は正しくありません。これが(非常に)ずさんな文章なのか、本物の間違いなのかははっきりしません。両方の著者に、明確化を求めて非常に丁寧にメールを送りました。(2か月後の更新:私は彼らから返事を聞いたことがない。)


MATLABシミュレーションコード

figure('Position', [100 100 1200 600])

n = 50;
Sigma = [2 1.8; 1.8 2];

for i=1:4
    means = [0 0; i*2 0];

    rng(42)
    X = [bsxfun(@plus, means(1,:), randn(n,2) * chol(Sigma)); ...
         bsxfun(@plus, means(2,:), randn(n,2) * chol(Sigma))];
    X = bsxfun(@minus, X, mean(X));
    [U,S,V] = svd(X,0);
    [ind, centroids] = kmeans(X,2, 'Replicates', 100);

    subplot(2,4,i)
    scatter(X(:,1), X(:,2), [], [0 0 0])

    subplot(2,4,i+4)
    hold on
    scatter(X(ind==1,1), X(ind==1,2), [], [1 0 0])
    scatter(X(ind==2,1), X(ind==2,2), [], [0 0 1])
    plot([-1 1]*10*V(1,1), [-1 1]*10*V(2,1), 'k', 'LineWidth', 2)
    plot(centroids(1,1), centroids(1,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
    plot(centroids(1,1), centroids(1,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
    plot(centroids(2,1), centroids(2,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
    plot(centroids(2,1), centroids(2,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)

    plot([-1 1]*5*V(1,2), [-1 1]*5*V(2,2), 'k--')
end

for i=1:8
    subplot(2,4,i)
    axis([-8 8 -8 8])
    axis square
    set(gca,'xtick',[],'ytick',[])
end    

2
Ding&Heの論文を一目見ただけです。定理2.2では、いくつかのp次元データクラウドのk-means(k = 2)を実行し、データのPCA(共分散に基づく)を実行すると、クラスターAに属するすべてのポイントが負になり、すべてがクラスターBに属するポイントは、PC1スコアで正になります。興味深い声明-シミュレーションでテストする必要があります。ただし、問題は、グローバルに最適なK-meansソリューションを想定していることです。しかし、達成されたクラスタリングが最適であったかどうかをどのように知るのでしょうか?
ttnphns

1
@ttnphns、この主張をより明確にテストするために、シミュレーションと図を更新しました。PC1の投影がクラスAとBに対して正と負である場合、PC2軸はそれらの間の境界として機能することを意味します。これは私の4つのおもちゃのシミュレーションの場合に非常に近いですが、例2と例3では、PC2の反対側にいくつかのポイントがあります。収束に関して、kmeans100回のレプリケーションで関数を実行しました。毎回異なるランダムな初期化を選択してから最適なソリューションを選択します。
アメーバは2015

1
@ttnphns:何が起こっているのかわかったと思うので、私のアップデートを見てください。
アメーバは、Reinstate Monica

アメーバ、議論されている記事を私たち全員に消化し、あなたの結論を提供してくれてありがとう(+2); そして、私に個人的に知らせてくれました!できれば数日以内に戻ってあなたの答えを読んで調査します。しかし、すでにそれを感謝しています。
ttnphns

優れた投稿。RではなくMatlabを使用した理由はありますか?私がML Courseraコースを受講していて、RやPythonではなく、Andrew NgもMatlabを使用しているので、興味があります。一般的なMLの選択ですか?
アントニ・パレラダ

10

PCAとK-meansは異なることを行います。

PCAは、次元削減/特徴選択/表現学習に使用されます。たとえば、特徴空間に含まれる無関係または冗長な特徴が多すぎる場合です。目的は、データの本質的な次元を見つけることです。

高次元の空間に一般化できる2次元の例を次に示します。データセットには2つの特徴と、すべての円はデータポイントです。xy

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

画像では、はよりも大きくなっています。これらは固有ベクトルです。データの次元は2次元から1次元に縮小され(この場合はあまり選択されません)、これはベクトルの方向に投影することにより行われます(が軸の1つに平行または垂直になる回転後) 。これは、が最大分散の方向に直交するためです。それを考える1つの方法は、情報の最小限の損失です。(1つの座標軸が失われるため、まだ損失があります)。v1v2v2v2v2

K-meansは、類似性に基づいてデータポイントの自然なグループ化を返すクラスタリングアルゴリズムです。これは、ガウス混合モデルの特殊なケースです

下の画像では、データセットには3つの次元があります。左側の3Dプロットから、多くの情報を失うことなく次元を「ドロップ」できることがわかります。PCAは、データを2次元に投影するために使用されます。左の図では、投影面も示されています。次に、投影データでK-meansを使用して、右側の図のさまざまなグループに異なる色でコードを付けることができます。X

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

PCAまたは他の次元削減手法は、機械学習で教師なしまたは教師ありの両方の方法の前に使用されます。あなたと上記で述べた理由に加えて、視覚化の目的にも使用されます(高次元からの2Dまたは3Dへの投影)。

この記事に関しては、何らかのつながりがあるとは思いません。PCAはデータの自然なグループ化に関する情報を持たず、サブセット(グループ)ではなくデータ全体を操作します。特定のクラスターがその方向に沿って広がっているという理由だけで、一部のグループが1つの固有ベクトルによって説明される場合、それは単なる偶然であり、一般的なルールとして解釈されるべきではありません。

「PCAはT機能の圧縮を目的としていますが、クラスタリングはN個のデータポイントの圧縮を目的としています。」

実際、圧縮はPCAについて考える直感的な方法です。ただし、K-meansでは、クラスターに関連する各ポイントを記述するために、少なくとも同じ量の情報(次元など)。ここで、は距離で、は格納されます代わりに。また、を保存して、デルタの相対値を知る必要があります。もちろんと保存できますが、データの実際の情報を取得することはできません。xi=d(μi,δi)dδixiμidi

クラスタリングは本当に情報を追加します。各グループのラベルの意味を理解せずに(グループ内のデータを確認するまで)、データを自然なグループに分割する(必ずしも互いに素である必要はない)と考えています。


3
プロット内でのPCのラベル付け方法は、テキスト内の対応する議論と矛盾しているように見えます。通常、PCAは列に適用され、k平均は行に適用されますが、どちらも両方に適用できます。私はこの論文を読んでいませんが、彼らが言っていることは間違いないでしょう。
GUNG -モニカ元に戻し

申し訳ありませんが、私は一番上の図を意味しました。つまり、PCのv1およびv2ラベルです。
GUNG -モニカ元に戻し

良い点は、データポイントのグループを圧縮することは有用かもしれません(何が目的なのかわかりません)。k-meansを使用してグループを検索し、pcaを使用してレコードをより少なく圧縮します。機能のグループ化に関しては、実際に役立つかもしれません。
手裏剣x青

2
それで、あなたは本質的に紙が間違っていると言っていますか?明確に述べ(要約の3番目と4番目の文を参照)、特定のつながりがあることを数学的に証明したと主張ますが、つながりはないと言います。
アメーバは、Reinstate Monica

私が得たもの:PCAはK-meansクラスタリングソリューションを改善します。接続は、クラスター構造が最初のK − 1主成分に埋め込まれていることです。これが貢献です。
手裏剣x青

7

k-meansを使用する前にデータを白くすることは一般的です。その理由は、k-meansはスケールに非常に敏感であり、属性が混在している場合、「真の」スケールがなくなるためです。次に、データを正規化、標準化、または白色化する必要があります。完璧なものはありませんが、ホワイトニングによりグローバル相関が削除され、より良い結果得られることがあります。共分散行列を操作するため、PCA /ホワイトニングはです。O(nd2+d3)

私の理解では、k-meansとPCAの関係は元のデータにはありません。距離行列(エントリを持ち、したがって完全なPCAを行うことは PCAを使用することです。つまり、特にk-meansと比較して非常に高価です。ここで、は唯一の大きな用語です)、そしておそらくに対してのみです。K-meansは最小二乗最適化問題であり、PCAも同様です。k-meansは、データの最小二乗パーティションを見つけようとします。PCAは、最小二乗クラスターメンバーシップベクトルを見つけます。n2O(n2d+n3)O(knid)nk=2

最初の固有ベクトルは最大の分散を持っているため、このベクトルで分割することは(入力データ座標ではなく、クラスターメンバーシップに似ています!)クラスター分散間の最大化を意味します。クラスター分散間の最大化により、クラスター内分散も最小化します。

しかし、実際の問題では、これは役に立ちません。それは理論的な関心のみです。


2
Ding&Heの論文(OPがリンクしている)のより具体的な説明/概要を見るのは素晴らしいことです。私は(まだ)自分でそれをよく知っていませんが、それが非常に好奇心をそそるのに十分な回数言及したのを見ました。
アメーバは、モニカの復活を

3
あなたは意味これを?はい、私もそれに遭遇しました。混乱を招くだけだと思います。私はこれが私のためにそれを明確にすることができるスレッドになることを望んでいた...今私はそれについて考えるので、おそらく私はそれに賞金をかける必要があります。私はこのトピックを自分で勉強する時間がないと思います。
アメーバは、モニカーを復活させる

3
このwikiの段落は非常に奇妙です。Ding&He(2001/2004)は間違っていて、新しい結果ではないということです!それが新しいものではないことを示すために、2004年の論文(?!)を引用しています。それが間違っていたことを示すために、Ding&Heさえも引用していない新しい2014年の論文を引用しています。うさんくさい。
アメーバは、2015

3
再び引用スパム。ウィキペディアは自己宣伝に満ちています。
アノニムース

1
私は丁&彼で何が起こっているかを理解したと思う、私の答えをご覧ください。それとは別に、行列の完全な固有ベクトル分解を K-means "components" のみを抽出して比較するため、アルゴリズムの複雑さに関する議論は完全に正しいわけではありません。それは公平な比較ではありません。PCAに反復アルゴリズムを使用し、コンポーネントのみを抽出する場合、K-meansと同じくらい高速に機能すると予想されます。ですから、実際の問題には役に立たず、理論的な興味があるだけだと言うのが正しいかどうかはわかりません。k kn×nkk
アメーバは、Reinstate Monica

4

O(k / epsilon)の低ランク近似(つまり、PCAのように最初の最大特異ベクトルのスパンに投影)でk-meansを解くと、乗法誤差に関して(1 + epsilon)近似が得られます。

特に、k-最大ベクトルに投影すると、2近似が得られます。

実際、k個の中心の任意のセットの2乗距離の合計は、この投影で近似できます。次に、削減されたデータのコアセットを計算して、この合計を近似するpoly(k / eps)ポイントへの入力を削減できます。

参照:Dan Feldman、Melanie Schmidt、Christian Sohler:ビッグデータを小さなデータに変える:k-means、PCA、および射影クラスタリング用の一定サイズのコアセット。SODA 2013:1434-1453


3

PCAとKMeansの直観的な関係

  1. 理論的にはPCA次元分析(90%の分散を保持する最初のK次元は、K平均クラスターと直接の関係を持つ必要はありません)が、PCAを使用する価値は、a)私たちが分析するのは、その主成分(年齢、性別)から(特定のセグメント)に自然にクラスター化/進化する傾向があります。b)PCAはこれらの低分散次元(ノイズ)を排除するため、それ自体が価値を追加します)これらの重要な次元に焦点を当てることによって簡単な言葉で言えば、XY軸が抽象的な数学概念をマスターするのに役立つが、より高度な方法であるように思えます。

  2. K平均は、指定されたKのクラスター内の全体の距離を最小化しようとします

  3. N次元パラメーターを持つオブジェクトのセットの場合、デフォルトでは、類似するオブジェクトにはいくつかの重要な違いを除いて「類似する」MOSTパラメーターがあります(たとえば、若いIT学生、若いダンサー、人間などのグループは、非常に類似した機能を持っています(低分散)しかし、いくつかの主要な機能はまだ非常に多様であり、これらの「主要な主要コンポーネント」をキャプチャすると、本質的に分散の大部分、たとえば色、居住地域がキャプチャされます。したがって、マイナーな差異の機能または低いPCは多くの情報を失うことはありません
  4. したがって、それらをグループ化して差異(変動)を見ることが理にかなっているのは「非常に可能性が高く」「非常に自然」です(たとえば、メインストリートで1週間に1,000件の調査を行い、民族に基づいてそれらをクラスタリングする場合) 、年齢、またはPCとしての学歴は理にかなっています)K Meansの使命の下では、(クラスター内の)それらのグループ要素が重心とコストの間の全体的な最小距離(最小化)を持つように、公正な数のKを確立しようとしますKクラスターを確立して実行するのが最適です(クラスターとしての各メンバーは、維持するにはコストがかかりすぎて価値がないため、意味がありません)
  5. K平均のグループ化は、そのようなKが主成分に沿っている場合(例えば、異なる年齢の人々、民族的/宗教的なクラスターの場合、同様の意見を表現する傾向があるので、最小化目標を達成するPC(ref。1)また、これらのPC(民族、年齢、宗教など)も非常に頻繁に直交するため、PCAを見ると視覚的に区別されます。
  6. ただし、この直感的な演は、必要条件ではなく十分条件につながります。(参照2:ただし、PCAはk-meansクラスタリングの便利な緩和であり、新しい結果ではありませんでした(たとえば、[35]を参照)。また、クラスター重心部分空間がスパンしているというステートメントの反例を明らかにするのは簡単です主な指示による。[36])

CPに基づいて/に沿ってクラスターを選択すると、快適な割り当てメカニズムに快適につながる可能性があります

これは、xがX軸に沿った最初のPCである場合の例です:(........... CC1 ............... CC2 ..... ....... CC3 X軸)ここで、X軸は、分散の9X%を超えるキャプチャを意味し、唯一のPCです

6.最後に、PCAは、K平均が完了した後の視覚化にも使用されます(参照4)

PCAがKクラスタリング結果を直交または近くに表示する場合、それは、クラスタリングが健全であるという兆候です。

(*定義により、PCAは主要な次元(1Dから3D)を見つけて表示するため、K(PCA)がおそらく分散の大部分をキャプチャするようになります。

したがって、PCAは、良好なクラスタリングの視覚化と確認の両方で有用であるだけでなく、K Meansクラスタリングの決定に本質的に有用な要素であり、K Meansの前に使用されます。

参照:

  1. https://msdn.microsoft.com/en-us/library/azure/dn905944.aspx
  2. https://en.wikipedia.org/wiki/Principal_component_analysis
  3. 主成分分析を使用したクラスタリング:高齢者の自律障害の適用(Combes&Azema)
  4. http://cs229.stanford.edu/notes/cs229-notes10.pdf Andrew Ng
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.