k平均法クラスタリングは、もともと信号処理から派生したベクトル量子化手法で、 n 個の観測値をk 個のクラスターに分割することを目的とします。各クラスターは、クラスターのプロトタイプとして機能する、最も近い平均(クラスター中心またはクラスター重心) を持つクラスターに属します。これにより、データ空間がボロノイ セルに分割されます。k平均法クラスタリングは、クラスター内分散 (ユークリッド距離の二乗) を最小化しますが、通常のユークリッド距離は最小化しません。通常のユークリッド距離は、より困難なウェーバー問題です。平均は二乗誤差を最適化しますが、幾何中央値のみがユークリッド距離を最小化します。たとえば、 k中央値とkメドイドを使用すると、より優れたユークリッド解を見つけることができます。
この問題は計算上困難 ( NP 困難) ですが、効率的なヒューリスティック アルゴリズムにより、局所最適解にすばやく収束します。これらは通常、k 平均法とガウス混合モデリングの両方で採用されている反復改良アプローチを介した、ガウス分布の混合に対する期待値最大化アルゴリズムに似ています。どちらもクラスター中心を使用してデータをモデル化しますが、k平均法クラスタリングでは、同程度の空間範囲のクラスターが見つかる傾向がありますが、ガウス混合モデルでは、クラスターの形状が異なる場合があります。
教師なしk平均法アルゴリズムは、名前のせいでk平均法と混同されることが多い、分類のための一般的な教師あり機械学習手法であるk最近傍分類器と緩い関係があります。 k平均法によって取得されたクラスター中心に 1 最近傍分類器を適用すると、新しいデータが既存のクラスターに分類されます。これは、最近接重心分類器またはRocchio アルゴリズムとして知られています。
説明
観測値の集合( x 1 , x 2 , ..., x n )が与えられ、各観測値は次元の実数ベクトルである場合、k平均クラスタリングは、n 個の観測値をk ( ≤ n )個の集合S = { S 1 , S 2 , ..., S k }に分割して、クラスター内二乗和 (WCSS) (つまり、分散) を最小化することを目的とします。正式には、目的は次のとおりです。 ここで、 μ i は内の点の平均 (重心とも呼ばれる) 、 つまり のサイズ、 は通常のL 2ノルムです。これは、同じクラスター内の点のペアワイズ二乗偏差を最小化することと同じです。 同等性は恒等式 から推測できます。合計分散は一定であるため、これは異なるクラスター内の点間の二乗偏差の合計(クラスター間二乗和、BCSS) を最大化することと同じです。[1]この決定論的な関係は確率論における 全分散の法則とも関連している。
歴史
「 k平均法」という用語は、1967年にジェームズ・マックイーンによって初めて使用されましたが[2]、そのアイデアは1956年のヒューゴ・スタインハウスに遡ります。[3]標準アルゴリズムは、 1957年にベル研究所のスチュアート・ロイドによってパルス符号変調の技術として最初に提案されましたが、1982年まで論文として発表されませんでした。[4] 1965年にエドワード・W・フォーギーが本質的に同じ方法を発表したため、ロイド・フォーギーアルゴリズムと呼ばれることもあります。[5]
アルゴリズム
標準アルゴリズム(ナイーブけ-手段)

最も一般的なアルゴリズムは、反復改良法を使用する。その普遍性から、このアルゴリズムは「k平均法アルゴリズム」と呼ばれることが多い。また、特にコンピュータサイエンスの分野では、ロイドのアルゴリズムとも呼ばれる。より高速な代替法が存在するため、「ナイーブk平均法」と呼ばれることもある。[6]
初期k平均集合m 1 (1) , ..., m k (1)(下記参照)が与えられると、アルゴリズムは2つのステップを交互に実行して進行する:[7]
- 割り当てステップ: 各観測値を最も近い平均値を持つクラスター、つまり最小二乗ユークリッド距離を持つクラスターに割り当てます。[8] (数学的には、これは平均値によって生成されたボロノイ図に従って観測値を分割することを意味します。)ここで、各観測値は、2つ以上の観測値に割り当てることができる場合でも、正確に1つの観測値に割り当てられます。
- 更新手順:各クラスターに割り当てられた観測値の平均 (重心) を再計算します。
k平均法の目的関数はWCSS (クラスター内の二乗和) です。各反復の後、WCSS は減少し、非負の単調減少シーケンスが得られます。これにより、k平均法は常に収束しますが、必ずしもグローバル最適値に収束するとは限りません。
アルゴリズムは、割り当てが変化しなくなったとき、または同等にWCSSが安定したときに収束したとみなされます。アルゴリズムが最適値を見つけることは保証されていません。[9]
このアルゴリズムは、オブジェクトを距離に応じて最も近いクラスターに割り当てるものとしてよく提示されます。ユークリッド距離 (2 乗) 以外の距離関数を使用すると、アルゴリズムが収束しない可能性があります。球面k平均法やkメドイド法など、k平均法のさまざまな修正法が提案され、他の距離測定法を使用できるようになりました。
- 擬似コード
以下の擬似コードは、標準のk平均法クラスタリング アルゴリズムの実装の概要を示しています。重心の初期化、ポイントと重心間の距離メトリック、および新しい重心の計算は設計上の選択であり、実装によって異なります。この例の擬似コードでは、最小値のインデックスを見つけるために argminが使用されています。
def k_means_cluster ( k , ポイント):
# 初期化: k 個の重心を選択 (Forgy、ランダム パーティションなど)
重心 = [ c1 , c2 , ... , ck ]
# クラスタリストを初期化する
クラスター = [[] _の 範囲( k ) ]
# 収束するまでループする
収束 = 偽
収束していない 間:
# 以前のクラスターをクリア
クラスター = [[] _の 範囲( k ) ]
# 各点を「最も近い」重心に割り当てる
ポイント内のポイントの 場合:
distances_to_each_centroid = [重心間の重心の距離(点、 重心) ]
cluster_assignment = argmin (各重心までの距離)
クラスター[クラスター割り当て] . append (ポイント)
# 新しい重心を計算する
# (標準実装では、
# 新しい重心を決定するためのクラスター)
new_centroids = [ calculate_centroid ( cluster ) クラスター内のクラスター ]
収束 = (新しい重心 == 重心)
重心 = 新しい重心
収束した場合:
クラスターを返す
初期化メソッド
一般的に使用される初期化方法は、Forgy 法とランダム パーティション法です。[10] Forgy 法では、データセットからk 個の観測値をランダムに選択し、これを初期平均値として使用します。ランダム パーティション法では、最初に各観測値にクラスターをランダムに割り当て、次に更新ステップに進み、クラスターのランダムに割り当てられたポイントの重心となる初期平均値を計算します。Forgy 法では初期平均値が広がる傾向がありますが、ランダム パーティション法ではすべての初期平均値がデータセットの中心近くに配置されます。Hamerly らによると、[10]ランダム パーティション法は、 k調和平均やファジーk平均などのアルゴリズムに一般的に適しています。期待値最大化アルゴリズムと標準k平均アルゴリズムには、Forgy 初期化法が適しています。しかし、Celebiらによる包括的な研究[11]では、Forgy、Random Partition、Maximinなどの一般的な初期化方法はパフォーマンスが低いことが多いのに対し、BradleyとFayyadのアプローチ[12]は「最良のグループ」で「一貫して」パフォーマンスを発揮し、k -means++は「一般的に良好」なパフォーマンスを発揮することがわかりました。
- 標準アルゴリズムのデモンストレーション
-
1. k 個の初期「平均」(この場合はk =3)がデータ領域内でランダムに生成されます(色で表示されます)。
-
2.各観測値を最も近い平均値に関連付けることで、 k 個のクラスターが作成されます。ここでのパーティションは、平均値によって生成されたボロノイ図を表します。
-
3. k個のクラスターそれぞれの重心が新しい平均になります。
-
4. 収束に達するまで手順 2 と 3 を繰り返します。
このアルゴリズムは、グローバル最適値への収束を保証するものではありません。結果は初期クラスターに依存する可能性があります。このアルゴリズムは通常高速であるため、異なる開始条件で複数回実行するのが一般的です。ただし、最悪の場合のパフォーマンスは遅くなる可能性があります。特に、特定のポイントセットは、2次元であっても、指数時間、つまり2 Ω( n )で収束します。[13]これらのポイントセットは実際には発生しないようです。これは、 k平均法の平滑化された実行時間が多項式であるという事実によって裏付けられています。[14]
「割り当て」ステップは「期待値ステップ」と呼ばれ、「更新ステップ」は最大化ステップであるため、このアルゴリズムは一般化 期待値最大化アルゴリズムのバリエーションになります。
複雑
d次元の観測値に対するk平均クラスタリング問題の最適解を見つけることは次のようになります。
- 一般的なユークリッド空間(d次元)では2つのクラスターに対してもNP困難である。 [15] [16]
- 平面上のクラスターの一般的な数kに対してもNP困難である。 [17]
- kとd(次元)が固定されている場合、問題は時間で正確に解くことができます。ここでnはクラスタリングされるエンティティの数です。[18]
したがって、上記に示したロイドのアルゴリズムなどの さまざまなヒューリスティック アルゴリズムが一般的に使用されます。
ロイドのアルゴリズム(およびほとんどの変種)の実行時間は、[9] [19]で示される。ここで、
- nはd次元ベクトルの数(クラスタ化される)
- kクラスターの数
- i収束までに必要な反復回数。
クラスタリング構造を持つデータでは、収束までの反復回数は少なく、最初の12回の反復後には結果がわずかに改善されるだけです。そのため、ロイドのアルゴリズムは実際には「線形」複雑性を持つと考えられることが多いですが、収束まで実行すると最悪の場合、超多項式になります。[20]
- 最悪の場合、ロイドのアルゴリズムは反復を必要とするため、ロイドのアルゴリズムの最悪ケースの複雑さは超多項式となる。[20]
- ロイドのk平均法アルゴリズムは、多項式平滑化実行時間を持ちます。 [14]によれば、内の任意のn点集合に対して、各点が平均0および分散の正規分布によって独立に摂動を受ける場合、 k平均法アルゴリズムの期待実行時間はによって制限されます。これは、 n、k、d、およびの多項式です。解析に失敗しました (SVG (MathML はブラウザ プラグインで有効にできます): サーバー "http://localhost:6011/en.wikipedia.org/v1/" からの応答 ("Math 拡張機能は Restbase に接続できません。") が無効です: {\displaystyle 1/\sigma} 。
- 単純なケースではより良い境界が証明されています。例えば、k平均法アルゴリズムの実行時間は整数格子内のn点に対してで制限されることが示されています。[21]
ロイドのアルゴリズムは、この問題に対する標準的なアプローチです。しかし、k個のクラスターの中心とn 個のデータ ポイント間の距離を計算するのに多くの処理時間がかかります。ポイントは通常、数回の反復処理の後は同じクラスターに留まるため、この作業の多くは不要であり、単純な実装は非常に非効率的です。一部の実装では、キャッシュと三角不等式を使用して境界を作成し、ロイドのアルゴリズムを高速化しています。[9] [22] [23] [24] [25]
最適なクラスター数
k平均法クラスタリングの最適なクラスター数(k)を見つけることは、クラスタリング結果が有意義で有用なものとなるようにするための重要なステップです。[26]適切なクラスター数を決定するための手法はいくつかあります。ここでは、よく使われる手法をいくつか紹介します。
- エルボー法(クラスタリング):この方法では、説明された変動をクラスター数の関数としてプロットし、曲線のエルボーをクラスター数として選択します。[27]しかし、「エルボー」の概念は明確に定義されておらず、信頼性が低いことが知られています。[28]
- シルエット(クラスタリング):シルエット分析はクラスタリングの質を測定し、結果として得られるクラスター間の分離距離についての洞察を提供します。[29]シルエットスコアが高いほど、オブジェクトが自身のクラスターとよく一致し、隣接するクラスターとは一致しにくいことを示します。
- ギャップ統計:ギャップ統計は、kの異なる値に対するクラスター内変動の合計を、データのヌル参照分布の下での期待値と比較します。[30]最適なkは、最大のギャップ統計をもたらす値です。
- デイヴィス・ボールディン指数:デイヴィス・ボールディン指数は、クラスター間の分離の程度を測る指標です。[31]デイヴィス・ボールディン指数の値が低いほど、分離が良好なモデルであることを示します。
- Calinski-Harabasz指数:この指数は、クラスターのコンパクトさと分離に基づいてクラスターを評価します。この指数は、クラスター間の分散とクラスター内の分散の比率を使用して計算され、値が高いほどクラスターが明確に定義されていることを示します。[32]
- ランド指数:同じクラスターまたは異なるクラスターに正しく割り当てられた要素のペアの両方を考慮して、2つのクラスター間の一致率を計算します。[33]値が高いほど類似性が高く、クラスタリングの品質が優れていることを示します。より正確な測定を提供するために、1985年にHubertとArabieによって導入された調整ランド指数(ARI)は、偶然によるすべてのペアの予想される類似性を調整することでランド指数を修正します。[34]
バリエーション
- ジェンクス自然ブレーク最適化:単変量データへのk平均法の適用
- k中央値クラスタリングでは、平均の代わりに各次元の中央値を使用し、この方法でノルムを最小化します (タクシーの幾何学)。
- k -medoids (別名: Partitioning Around Medoids、PAM) は平均の代わりに medoid を使用し、任意の距離関数の距離の合計を最小化します。
- ファジー C 平均法クラスタリングはk平均法のソフト バージョンであり、各データ ポイントは各クラスターに属する度合いがファジーです。
- 期待最大化アルゴリズム(EM アルゴリズム) を使用してトレーニングされたガウス混合モデルは、決定論的な割り当てではなくクラスターへの確率的な割り当てを維持し、平均ではなく多変量ガウス分布を維持します。
- k -means++ は、 WCSS 目的関数に証明可能な上限を与えるような方法で初期中心を選択します。
- フィルタリングアルゴリズムはk -dツリーを使用して各k -meansステップを高速化します。[35]
- いくつかの方法では、三角不等式を使用してk平均法の各ステップを高速化しようとします。[22] [23] [24] [36] [25]
- クラスター間のポイントを交換することで局所最適状態から脱出する。[9]
- 球状k平均法クラスタリングアルゴリズムはテキストデータに適している。[37]
- 二分k平均法[38]、 X平均法クラスタリング[39]、G平均法クラスタリング[40] などの階層的な変種は、階層を構築するためにクラスターを繰り返し分割し、データセット内のクラスターの最適な数を自動的に決定しようとすることもできます。
- クラスターシルエットなどの内部クラスター評価尺度は、クラスターの数を決定するのに役立ちます。
- ミンコフスキー重み付きk平均法は、クラスター固有の特徴の重みを自動的に計算し、特徴が異なると関連性の度合いが異なる可能性があるという直感的な考えをサポートします。[41]これらの重みは、特定のデータセットを再スケーリングするためにも使用でき、クラスターの予想される数でクラスター妥当性指標が最適化される可能性が高まります。[42]
- ミニバッチk平均法:メモリに収まらないデータセットに対して「ミニバッチ」サンプルを使用するk平均法。 [43]
- 大津法
ハーティガン・ウォン法
Hartiganと Wong の方法[9]は、異なる解の更新を伴う最小二乗和問題の局所的最小値に向かって進むk平均法アルゴリズムのバリエーションを提供します。この方法は、このプロセスによって目的関数が改善される限り、サンプルを別のクラスターに再配置することを繰り返し試みる局所探索です。目的関数の改善によってサンプルを別のクラスターに再配置できない場合、この方法は停止します (局所的最小値で)。従来のk平均法と同様に、このアプローチは、最終解が必ずしもグローバルに最適であるとは限らないため、ヒューリスティックのままです。
を の個別コストとし、 をクラスターの中心 として定義します。
- 割り当てステップ
- Hartigan と Wong の方法は、ポイントをランダムなクラスターに分割することから始まります。
- 更新手順
- 次に、次の関数が最大値に達する および を決定します。この最大値に達するについては、クラスター からクラスター に移動します。
- 終了
- アルゴリズムは、すべてに対して がゼロ未満になると終了します。
異なる移動受け入れ戦略を使用することができる。第一改善戦略では、改善するあらゆる再配置を適用することができるが、最善改善戦略では、すべての可能な再配置が反復的にテストされ、各反復で最良のものだけが適用されます。前者のアプローチは速度を重視し、後者のアプローチは一般的に追加の計算時間を犠牲にしてソリューションの品質を重視します。再配置の結果を計算するために使用される関数は、等式[44]を使用して効率的に評価することもできます。
グローバル最適化とメタヒューリスティック
古典的なk平均法アルゴリズムとそのバリエーションは、次のように定義される最小二乗和クラスタリング問題の局所的最小値にのみ収束することが知られています。 多くの研究が、アルゴリズムの収束動作を改善し、大域的最適値 (または少なくとも、より高品質の局所的最小値) を達成する可能性を最大化しようと試みてきました。前のセクションで説明した初期化と再起動の手法は、より良いソリューションを見つけるための 1 つの代替手段です。最近では、分岐限定法と半正定値計画法に基づく大域的最適化アルゴリズムにより、最大 4,177 のエンティティと 20,531 の特徴を持つデータセットに対して「実証済みの最適」ソリューションが生成されました。[45]予想どおり、基礎となる最適化問題のNP 困難性により、このサイズを超えると、 k平均法の最適アルゴリズムの計算時間は急速に増加します。小規模および中規模の最適ソリューションは、他のヒューリスティックの品質を評価するためのベンチマーク ツールとして依然として価値があります。制御された計算時間内で最適性の保証なしに高品質の局所最小値を見つけるために、他の研究では、増分アプローチと凸最適化に基づくメタヒューリスティクスやその他のグローバル最適化手法、 [46]ランダムスワップ[47](つまり、反復局所探索)、可変近傍探索[48]および遺伝的アルゴリズム[ 49]などが研究されてきた。[50]最小二乗和クラスタリング問題のより良い局所最小値を見つけることが、高次元の特徴空間におけるクラスター構造の回復の成功と失敗の違いを生む可能性があることは確かに知られている。[50]
議論



k平均法の効率性を高める 3 つの重要な特徴は、しばしば最大の欠点と見なされます。
- ユークリッド距離はメトリックとして使用され、分散はクラスター散布の尺度として使用されます。
- クラスターの数kは入力パラメータです。k を不適切に選択すると、結果が悪くなる可能性があります。そのため、k 平均法を実行するときは、データ セット内のクラスターの数を決定するための診断チェックを実行することが重要です。
- 局所的最小値への収束により、直感に反する(「間違った」)結果が生じる可能性があります(図の例を参照)。
k平均法の主な制限は、そのクラスター モデルです。この概念は、平均がクラスターの中心に向かって収束するように分離可能な球状クラスターに基づいています。クラスターは同様のサイズであることが期待されるため、最も近いクラスターの中心に割り当てるのが正しい割り当てになります。たとえば、の値を持つk平均法をよく知られたアヤメのデータ セットに適用すると、結果ではデータ セットに含まれる 3種類のアヤメを分離できないことがよくあります。 を使用すると、2 つの目に見えるクラスター (1 つに 2 種類が含まれる) が検出されますが、 を使用すると、2 つのクラスターのうちの 1 つが 2 つの均等な部分に分割されます。実際、データ セットには 3 つのクラスが含まれていますが、 の方がこのデータ セットに適しています。他のクラスタリング アルゴリズムと同様に、k平均法の結果では、データが特定の基準を満たしていると想定しています。これは、一部のデータ セットではうまく機能しますが、他のデータ セットでは機能しません。
k平均法の結果は、クラスター平均のボロノイ セルとして見ることができます。データはクラスター平均の中間で分割されるため、マウスの例で見られるように、最適ではない分割につながる可能性があります。期待値最大化アルゴリズムで使用されるガウス モデル ( k平均法の一般化とも言える) は、分散と共分散の両方を持つため、より柔軟です。したがって、EM の結果は、 k平均法よりもはるかに適切に、可変サイズのクラスターや相関クラスター (この例ではそうではありません) に対応できます。一方、EM では、より多くの自由パラメーターの最適化が必要であり、クラスターの消失や条件の悪い共分散行列による方法論上の問題がいくつか発生します。k平均法は、ノンパラメトリックベイズ モデルと密接に関連しています。[52]
アプリケーション
k平均法クラスタリングは、特にロイドのアルゴリズムなどのヒューリスティックを使用する場合、大規模なデータ セットにも簡単に適用できます。市場セグメンテーション、コンピューター ビジョン、天文学など、さまざまな分野で効果的に使用されています。他のアルゴリズムの前処理手順として、たとえば開始構成を見つけるために使用されることがよくあります。
ベクトル量子化
ベクトル量子化は、信号処理やコンピュータグラフィックスでよく使用される手法で、画像のカラーパレットをkと呼ばれる固定数の色に減らします。ベクトル量子化を実現する一般的な方法の 1 つは、 k平均法クラスタリングです。このプロセスでは、k平均法を画像の色空間に適用して、画像を k 個のクラスターに分割します。各クラスターは画像内の異なる色を表します。この手法は、類似した色を識別してグループ化するのに役立つ画像セグメンテーションタスクで特に役立ちます。


例:コンピュータグラフィックスの分野では、k平均法クラスタリングは画像圧縮におけるカラー量子化によく使用されます。画像を表現するために使用される色の数を減らすことで、見た目の品質を大幅に損なうことなくファイルサイズを大幅に削減できます。たとえば、数百万色の画像について考えてみましょう。kをより小さな数値に設定してk平均法クラスタリングを適用すると、画像はより限定されたカラーパレットを使用して表現できるため、圧縮バージョンではストレージスペースと帯域幅の消費が少なくなります。ベクトル量子化のその他の用途には、非ランダムサンプリングが含まれます。k 平均法を使用すると、大規模なデータ セットからk個の異なるプロトタイプ オブジェクトを簡単に選択して、さらに分析することができます。
クラスター分析
クラスター分析は、データマイニングと機械学習の基本的なタスクであり、一連のデータポイントを類似性に基づいてクラスターにグループ化します。k平均法クラスタリングは、データを k 個のクラスターに分割するために使用される一般的なアルゴリズムで、各クラスターはその重心によって表されます。
ただし、純粋なk平均法アルゴリズムは柔軟性に欠けるため、用途が限られています (上記のようなベクトル量子化が実際に望ましい使用例である場合を除く)。特に、パラメータkは、外部制約によって指定されていない場合は選択が難しいことが知られています (上記で説明したとおり)。もう 1 つの制限は、任意の距離関数や非数値データでは使用できないことです。これらの使用例には、他の多くのアルゴリズムの方が優れています。
例: マーケティングでは、類似した特性や行動を持つ顧客をグループ化する市場セグメンテーションにk平均法クラスタリングがよく使用されます。たとえば、小売企業は、購買行動、人口統計、地理的位置などの要因に基づいて、顧客ベースを明確なグループに分割するためにk平均法クラスタリングを使用できます。その後、これらの顧客セグメントをターゲットにして、カスタマイズされたマーケティング戦略と製品提供を行い、売上と顧客満足度を最大化できます。
機能学習
k平均法クラスタリングは、(半)教師あり学習または教師なし学習のいずれかにおいて、特徴学習(または辞書学習)ステップとして使用されてきました。[53]基本的なアプローチは、まず入力トレーニングデータ(ラベルを付ける必要はありません)を使用して、 k平均法クラスタリング表現をトレーニングすることです。次に、入力データを新しい特徴空間に投影するために、データと重心位置のしきい値付き行列積などの「エンコード」関数を使用して、データから各重心までの距離、または単に最も近い重心の指標関数を計算します。 [53] [54]または距離の滑らかな変換。[55]または、サンプルクラスター距離をガウス RBFで変換すると、ラジアル基底関数ネットワークの隠れ層が得られます。[56]
このk平均法は、 NLP(特に名前付きエンティティの認識)[57]やコンピュータビジョンにおける半教師あり学習のための単純な線形分類器とうまく組み合わせられてきました。物体認識タスクでは、オートエンコーダや制限付きボルツマンマシンなどのより洗練された特徴学習アプローチと同等のパフォーマンスを発揮することが確認されました。[55]ただし、各データポイントは1つの「特徴」にしか寄与しないため、同等のパフォーマンスを得るには、通常、より多くのデータが必要です。[53]
例:自然言語処理(NLP) では、k平均法クラスタリングが、固有表現抽出(NER)などの半教師あり学習タスク用の単純な線形分類器と統合されています。最初にk平均法を使用してラベルなしテキスト データをクラスタリングすることで、意味のある特徴を抽出し、NER モデルのパフォーマンスを向上させることができます。たとえば、k平均法クラスタリングを適用して、入力テキストで頻繁に共起する単語またはフレーズのクラスターを識別し、それを NER モデルのトレーニング用の特徴として使用できます。このアプローチは、ラベル付きデータに対する要件は高くなりますが、 オートエンコーダーや制限付きボルツマン マシンなどのより複雑な特徴学習手法と同等のパフォーマンスを実現することが示されています。
最近の動向
k平均法クラスタリングの応用における最近の進歩には、より効果的な方法で初期クラスター重心を選択するためのk平均法++初期化の使用など、初期化手法の改善が含まれます。さらに、研究者は、コンピューター ビジョン、自然言語処理、およびその他のドメインにおけるさまざまなタスクのパフォーマンスを向上させるために、畳み込みニューラル ネットワーク(CNN) や再帰型ニューラル ネットワーク(RNN)などのディープラーニング手法とk平均法クラスタリングの統合を研究してきました。
他のアルゴリズムとの関係
ガウス混合モデル
k平均法クラスタリングの低速な「標準アルゴリズム」と、それに関連する期待値最大化アルゴリズムは、ガウス混合モデルの特殊なケース、具体的には、すべての共分散を対角で等しく、無限小の小さな分散を持つように固定した場合の極限ケースです。[58] : 850 小さな分散の代わりに、ハードクラスター割り当てを使用して、k平均法クラスタリングと「ハード」ガウス混合モデリングの特殊なケースの別の同等性を示すこともできます。[59] : 354、11.4.2.5 これは、ガウス混合モデリングを使用してk平均法を計算することが効率的であることを意味するのではなく、理論的な関係があり、ガウス混合モデリングがk平均法の一般化として解釈できることを意味します。逆に、k平均法クラスタリングを使用して、困難なデータに対するガウス混合モデリングの開始点を見つけることが提案されています。[58] : 849
け-SVD
k平均法アルゴリズムのもう一つの一般化はk -SVDアルゴリズムであり、これはデータポイントを「コードブックベクトル」のスパース線形結合として推定する。k平均法は、重みが1の単一のコードブックベクトルを使用する特殊なケースに対応する。[60]
主成分分析
クラスター指標によって指定されるk平均法クラスタリングの緩和された解は、主成分分析 (PCA) によって与えられます。[61] [62] 直感的には、k平均法は球形 (ボールのような) のクラスターを表します。データに 2 つのクラスターがある場合、2 つの重心を結ぶ線が最適な 1 次元投影方向であり、これが最初の PCA 方向でもあります。線を質量の中心で切断すると、クラスターが分離します (これは、離散クラスター指標の連続緩和です)。データに 3 つのクラスターがある場合、3 つのクラスター重心が張る 2 次元平面が最適な 2 次元投影です。この平面も、最初の 2 つの PCA 次元によって定義されます。十分に分離されたクラスターは、ボール形のクラスターによって効果的にモデル化されるため、k平均法によって検出されます。ボール形以外のクラスターは、近くにあると分離が困難です。たとえば、空間で絡み合った 2 つの半月形のクラスターは、PCA サブスペースに投影しても十分に分離しません。k平均法はこのデータではうまく機能しないと考えられる。[63]クラスター重心部分空間が主方向によって張られるという主張に対する反例を挙げるのは簡単である。[64]
平均シフトクラスタリング
基本的な平均シフト クラスタリング アルゴリズムは、入力データセットと同じサイズのデータ ポイント セットを維持します。最初に、このセットは入力セットからコピーされます。次に、すべてのポイントは、周囲のポイントの平均に向かって反復的に移動されます。対照的に、k平均法は、クラスター セットをkクラスターに制限します。これは通常、入力データセット内のポイントの数よりもはるかに少ない数で、前のクラスター内の、そのポイントに重心 (たとえば、各更新ポイントのボロノイ分割内) のどのポイントよりも近いすべてのポイントの平均を使用します。k 平均法に似た平均シフト アルゴリズムは、尤度平均シフトと呼ばれ、置換されるポイント セットを、変更セットから指定された距離内にある入力セット内のすべてのポイントの平均に置き換えます。[65] k平均法に対する平均シフト クラスタリングの利点は、クラスターの数を決定するパラメーターがないため、データセット内の任意の数のクラスターを検出できることです。平均シフトはk平均法よりもはるかに遅くなることがあり、帯域幅パラメーターの選択も必要です。
独立成分分析
スパース性の仮定の下で、入力データがホワイトニング変換で前処理されると、k平均法は線形独立成分分析(ICA)タスクのソリューションを生成します。これは、k平均法を特徴学習に適用するのに成功したことを説明するのに役立ちます。[66]
双方向フィルタリング
k平均法は、入力データセットの順序は重要ではないと暗黙的に想定しています。バイラテラルフィルタは、平均値に繰り返し置き換えられるデータポイントのセットを維持するという点で、 k平均法や平均値シフトに似ています。ただし、バイラテラルフィルタは、(カーネル重み付け)平均の計算を、入力データの順序が近いポイントのみを含むように制限します。[65]これにより、画像内のピクセルの空間配置が非常に重要である画像ノイズ除去などの問題に適用できます。
同様の問題
クラスター関数を最小化する二乗誤差のセットには、k-メドイドアルゴリズムも含まれます。これは、各クラスターの中心点を実際の点の 1 つに強制するアプローチです。つまり、重心の代わりにメドイドを使用します。
ソフトウェア実装
アルゴリズムの異なる実装ではパフォーマンスに違いが見られ、テストデータセットでは最速で10秒、最も遅いものでは25,988秒(約7時間)かかりました。[1]この違いは、実装の品質、言語とコンパイラの違い、終了基準と精度レベルの違い、加速のためのインデックスの使用に起因します。
フリーソフトウェア/オープンソース
以下の実装は、フリー/オープンソース ソフトウェアライセンスの下で利用可能であり、ソース コードは公開されています。
- Accord.NET には、 k -means、k -means++、k -modesの C# 実装が含まれています。
- ALGLIB には、 k -means およびk -means++用の並列化された C++ および C# 実装が含まれています。
- AOSP には、k平均法の Java 実装が含まれています。
- CrimeStat は2 つの空間k平均アルゴリズムを実装しており、そのうちの 1 つではユーザーが開始場所を定義できます。
- ELKI には、 k平均法 (Lloyd および MacQueen 反復法、およびk平均法++ 初期化などのさまざまな初期化を含む) と、より高度なさまざまなクラスタリング アルゴリズムが含まれています。
- Smile には、k平均法やその他のさまざまなアルゴリズムと結果の視覚化 (Java、Kotlin、Scala 用) が含まれています。
- Julia には、 JuliaStats Clustering パッケージにk平均法の実装が含まれています。
- KNIME には、 k平均法とkメドイド法のノードが含まれています。
- Mahout にはMapReduceベースのk平均法が含まれています。
- mlpack にはk平均法の C++ 実装が含まれています。
- Octave にはk平均法が含まれます。
- OpenCV にはk平均法の実装が含まれています。
- Orange には、kの自動選択とクラスター シルエット スコアリングを備えたk平均法クラスタリングのコンポーネントが含まれています。
- PSPPにはk平均法が含まれており、QUICK CLUSTER コマンドはデータセットに対してk平均法クラスタリングを実行します。
- Rには 3 つのk平均法バリエーションが含まれています。
- SciPyとscikit-learn には複数のk平均法の実装が含まれています。
- Spark MLlib は分散k平均法アルゴリズムを実装します。
- Torch には、k平均法クラスタリングを提供するunsupパッケージが含まれています。
- Weka にはk平均法とx平均法が含まれています。
独自
以下の実装は独自のライセンス条件に基づいて利用可能であり、ソース コードが公開されていない可能性があります。
参照
参考文献
- ^ ab Kriegel, Hans-Peter ; Schubert, Erich; Zimek, Arthur (2016). 「実行時評価の (ブラック) アート: 比較しているのはアルゴリズムか実装か?」.知識と情報システム. 52 (2): 341–378. doi :10.1007/s10115-016-1004-2. ISSN 0219-1377. S2CID 40772241.
- ^ MacQueen, JB (1967). 多変量観測の分類と分析のためのいくつかの方法。第5回バークレー数理統計および確率シンポジウムの議事録。第1巻 。カリフォルニア大学出版局。pp. 281–297。MR 0214227。Zbl 0214.46201 。 2009年4月7日閲覧。
- ^ シュタインハウス、ヒューゴ(1957)。 「パーティーにおける軍団資材の部門」。ブル。アカド。ポロン。科学。(フランス語で)。4 (12): 801–804。MR 0090073。Zbl 0079.16403 。
- ^ Lloyd, Stuart P. (1957). 「PCM における最小二乗量子化」。ベル電話研究所論文。ずっと後のジャーナルに掲載されました: Lloyd, Stuart P. (1982). 「PCM における最小二乗量子化」(PDF) . IEEE Transactions on Information Theory . 28 (2): 129–137. CiteSeerX 10.1.1.131.1338 . doi :10.1109/TIT.1982.1056489. S2CID 10833328 . 2009-04-15に取得。
- ^ Forgy, Edward W. (1965). 「多変量データのクラスター分析: 分類の効率性と解釈可能性」.バイオメトリクス. 21 (3): 768–769. JSTOR 2528559.
- ^ Pelleg, Dan; Moore, Andrew (1999). 「幾何学的推論による正確な k 平均法アルゴリズムの高速化」。知識発見とデータマイニングに関する第 5 回 ACM SIGKDD 国際会議の議事録。カリフォルニア州サンディエゴ、米国: ACM プレス。pp. 277–281。doi : 10.1145 /312129.312248。ISBN 9781581131437. S2CID 13907420。
- ^ MacKay, David (2003). 「第 20 章 推論タスクの例: クラスタリング」(PDF)。情報理論、推論、学習アルゴリズム。ケンブリッジ大学出版局。284 ~ 292 ページ。ISBN 978-0-521-64298-9. MR 2012999.
- ^ 平方根は単調関数なので、これも最小ユークリッド距離の割り当てです。
- ^ abcde Hartigan, JA; Wong, MA (1979). 「アルゴリズム AS 136: k -Means クラスタリングアルゴリズム」.英国王立統計学会誌、シリーズ C. 28 ( 1): 100–108. JSTOR 2346830.
- ^ ab Hamerly, Greg; Elkan, Charles (2002). 「より優れたクラスタリングを見つける k-means アルゴリズムの代替手段」(PDF)。第 11 回国際情報知識管理会議 (CIKM) の議事録。
- ^ Celebi, ME; Kingravi, HA; Vela, PA (2013). 「k -means クラスタリングアルゴリズムの効率的な初期化方法の比較研究」. Expert Systems with Applications . 40 (1): 200–210. arXiv : 1209.1960 . doi :10.1016/j.eswa.2012.07.021. S2CID 6954668.
- ^ Bradley, Paul S.; Fayyad, Usama M. (1998). 「 k -Means クラスタリングの初期ポイントの改良」第 15 回国際機械学習会議の議事録。
- ^ Vattani, A. (2011). 「k-means では平面上でも指数関数的に多くの反復処理が必要となる」(PDF) .離散幾何学と計算幾何学. 45 (4): 596–616. doi : 10.1007/s00454-011-9340-1 . S2CID 42683406.
- ^ ab Arthur, David; Manthey, B.; Roeglin, H. (2009). 「 k-means は多項式平滑化複雑度を持つ」。第 50 回コンピュータサイエンスの基礎に関するシンポジウム (FOCS) の議事録。arXiv : 0904.1113。
- ^ Aloise, D.; Deshpande, A.; Hansen, P.; Popat, P. (2009). 「ユークリッド平方和クラスタリングのNP困難性」.機械学習. 75 (2): 245–249. doi : 10.1007/s10994-009-5103-0 .
- ^ Dasgupta, S.; Freund, Y. (2009 年 7 月). 「ベクトル量子化のためのランダム射影木」. IEEE Transactions on Information Theory . 55 (7): 3229–42. arXiv : 0805.1390 . doi :10.1109/TIT.2009.2021326. S2CID 666114.
- ^ Mahajan, Meena ; Nimbhorkar, Prajakta; Varadarajan, Kasturi (2009). 「平面 k-Means 問題は NP 困難」WALCOM: アルゴリズムと計算. コンピュータサイエンスの講義ノート。 Vol. 5431. pp. 274–285. doi :10.1007/978-3-642-00202-1_24. ISBN 978-3-642-00201-4。
- ^ 稲葉 正之; 加藤 暢; 今井 秀次 (1994).重み付きボロノイ図とランダム化の分散ベースk-クラスタリングへの応用.第10回ACM計算幾何学シンポジウム論文集. pp. 332–9. doi : 10.1145/177424.178042 .
- ^ マニング、クリストファー D.;ラガヴァン、プラバーカール。シュッツェ、ハインリッヒ (2008)。情報検索の概要。ケンブリッジ大学出版局。ISBN 978-0521865715. OCLC 190786122.
- ^ ab Arthur, David; Vassilvitskii, Sergei (2006-01-01). 「k -means 法はどのくらい遅いか?」. Proceedings of the sixth annual symposium on Computational Geometry . SCG '06. ACM. pp. 144–153. doi :10.1145/1137856.1137880. ISBN 978-1595933409. S2CID 3084311。
- ^ Bhowmick, Abhishek (2009). 「K平均法クラスタリングにおけるロイドのアルゴリズムの理論的分析」(PDF)。2015年12月8日時点のオリジナル(PDF)からアーカイブ。こちらも参照してください。
- ^ ab Phillips, Steven J. (2002)。「K-Means および関連するクラスタリング アルゴリズムの高速化」。Mount, David M.、Stein, Clifford (編)。K - Meansおよび関連するクラスタリング アルゴリズムの高速化。Lecture Notes in Computer Science。第 2409 巻。Springer。pp. 166–177。doi :10.1007/3-540-45643-0_13。ISBN 978-3-540-43977-6。
- ^ ab Elkan, Charles (2003). 「三角不等式を使用したk平均法の高速化」(PDF)。第20回国際機械学習会議(ICML)の議事録。
- ^ ab Hamerly, Greg ( 2010). 「K 平均法をさらに高速化」。2010 SIAM 国際データマイニング会議議事録。pp. 130–140。doi : 10.1137 /1.9781611972801.12。ISBN 978-0-89871-703-7。
- ^ ab Hamerly, Greg; Drake, Jonathan (2015). 「K-Means Clustering における Lloyd のアルゴリズムの高速化」パーティション クラスタリング アルゴリズム. pp. 41–78. doi :10.1007/978-3-319-09259-1_2. ISBN 978-3-319-09258-4。
- ^ Abiodun M. Ikotun、Absalom E. Ezugwu、Laith Abualigah、Belal Abuhaija、Jia Heming、「K-means クラスタリング アルゴリズム: 包括的なレビュー、バリアント分析、ビッグデータ時代の進歩」、Information Sciences、第 622 巻、2023 年、178 ~ 210 ページ、ISSN 0020-0255、https://doi.org/10.1016/j.ins.2022.11.139。
- ^ 276. doi:10.1007/BF02289263. S2CID 120467216.
- ^ Schubert, Erich (2023-06-22). 「k-means のエルボー基準の使用をやめ、代わりにクラスターの数を選択する方法」 ACM SIGKDD Explorations Newsletter. 25 (1): 36–42. arXiv:2212.12189. doi:10.1145/3606274.3606278. ISSN 1931-0145.
- ^ Peter J. Rousseeuw (1987). 「シルエット: クラスター分析の解釈と検証のためのグラフィカルな補助」. 計算および応用数学. 20: 53–65. doi:10.1016/0377-0427(87)90125-7.
- ^ Robert Tibshirani、Guenther Walther、Trevor Hastie (2001)。「ギャップ統計によるデータセット内のクラスター数の推定」。Journal of the Royal Statistical Society、シリーズ B。63 (2): 411–423。doi:10.1111/1467-9868.00293。S2CID 59738652。
- ^ Davies, David L.; Bouldin, Donald W. (1979). 「クラスター分離尺度」. IEEE Transactions on Pattern Analysis and Machine Intelligence. PAMI-1 (2): 224–227. doi:10.1109/TPAMI.1979.4766909. S2CID 13254783.
- ^ Caliński, Tadeusz; Harabasz, Jerzy (1974). 「クラスター分析のための樹状突起法」. Communications in Statistics. 3 (1): 1–27. doi:10.1080/03610927408827101.
- ^ WM Rand (1971). 「クラスタリング手法の評価のための客観的基準」. アメリカ統計学会誌. 66 (336). アメリカ統計学会: 846–850. doi:10.2307/2284239. JSTOR 2284239.
- ^ ヒューバート、L.、アラビー、P. (1985)。ヒューバート、L.、アラビー、P. (1985)。パーティションを比較しています。分類ジャーナル、2(1)、193-218。 https://doi.org/10.1007/BF01908075
- ^ Kanungo, Tapas; Mount, David M. ; Netanyahu, Nathan S. ; Piatko, Christine D. ; Silverman, Ruth; Wu, Angela Y. (2002). 「効率的な k-means クラスタリング アルゴリズム: 分析と実装」(PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 24 (7): 881–892. doi :10.1109/TPAMI.2002.1017616. S2CID 12003435 . 2009-04-24に取得。
- ^ Drake, Jonathan (2012). 「適応型距離境界による高速 k-means」(PDF)。機械学習の最適化に関する第 5 回 NIPS ワークショップ、OPT2012。
- ^ Dhillon, IS; Modha, DM (2001). 「クラスタリングを使用した大規模スパーステキストデータの概念分解」.機械学習. 42 (1): 143–175. doi : 10.1023/a:1007612920971 .
- ^ スタインバッハ、M.; カリピス、G.; クマール、V. (2000). "「文書クラスタリング技術の比較」。KDDテキストマイニングワークショップ。400 (1):525-526。
- ^ Pelleg, D.; & Moore, AW (2000 年 6 月)。「X 平均法: クラスター数の効率的な推定による k 平均法の拡張」。ICML 、第 1 巻
- ^ Hamerly, Greg; Elkan, Charles (2004). 「k-means における k の学習」(PDF) .ニューラル情報処理システムの進歩. 16 : 281.
- ^ Amorim, RC; Mirkin, B. (2012). 「 K平均クラスタリングにおけるミンコフスキー計量、特徴重み付け、異常クラスタ初期化」.パターン認識. 45 (3): 1061–1075. doi :10.1016/j.patcog.2011.08.012.
- ^ Amorim, RC; Hennig, C. (2015). 「特徴再スケーリング係数を使用したノイズ特徴を含むデータセット内のクラスター数の回復」. Information Sciences . 324 : 126–145. arXiv : 1602.06989 . doi :10.1016/j.ins.2015.06.039. S2CID 315803.
- ^ Sculley, David (2010). 「Webスケールのk平均法クラスタリング」。第19回World Wide Web国際会議議事録。ACM。pp. 1177–1178 。 2016年12月21日閲覧。
- ^ Telgarsky, Matus. 「Hartigan 法: Voronoi を使用しない k-means クラスタリング」(PDF)。
- ^ ベロニカ、ピッチャリ;スドーソ、アントニオ M.ヴィーゲレ、アンジェリカ (2022-03-28)。 「SOS-SDP: 最小二乗和クラスタリングのための正確なソルバー」。INFORMS ジャーナル・オン・コンピューティング。34 (4): 2144–2162。arXiv : 2104.11542。土井:10.1287/ijoc.2022.1166。ISSN 1091-9856。S2CID 233388043。
- ^ Bagirov, AM; Taheri, S.; Ugon, J. (2016). 「最小二乗和クラスタリング問題に対する非平滑 DC プログラミングアプローチ」.パターン認識. 53 : 12–24. Bibcode :2016PatRe..53...12B. doi :10.1016/j.patcog.2015.11.011.
- ^ Fränti, Pasi (2018). 「ランダムスワップクラスタリングの効率」. Journal of Big Data . 5 (1): 1–21. doi : 10.1186/s40537-018-0122-y .
- ^ Hansen, P.; Mladenovic, N. (2001). 「J-Means: 最小二乗和クラスタリングのための新しいローカルサーチヒューリスティック」.パターン認識. 34 (2): 405–413. Bibcode :2001PatRe..34..405H. doi :10.1016/S0031-3203(99)00216-2.
- ^ Krishna, K.; Murty, MN (1999). 「遺伝的k平均アルゴリズム」. IEEE Transactions on Systems, Man, and Cybernetics - Part B: Cybernetics . 29 (3): 433–439. doi :10.1109/3477.764879. PMID 18252317.
- ^ ab Gribel, Daniel; Vidal, Thibaut (2019). 「HG-means: 最小二乗和クラスタリングのためのスケーラブルなハイブリッドメタヒューリスティック」.パターン認識. 88 :569–583. arXiv : 1804.09813 . doi :10.1016/j.patcog.2018.12.022. S2CID 13746584.
- ^ Mirkes, EM「K-means and k-medoids applet」 。 2016年1月2日閲覧。
- ^ Kulis, Brian; Jordan, Michael I. (2012-06-26). 「K平均法の再考: ベイズ非パラメトリックによる新しいアルゴリズム」(PDF) . ICML . Association for Computing Machinery. pp. 1131–1138. ISBN 9781450312851。
- ^ abc Coates, Adam; Ng, Andrew Y. (2012). 「k-means による特徴表現の学習」(PDF)。Montavon, G.; Orr, GB; Müller, K.-R. (編)。ニューラル ネットワーク: コツのコツ。Springer。
- ^ Csurka, Gabriella; Dance, Christopher C.; Fan, Lixin; Willamowski, Jutta; Bray, Cédric (2004). バッグオブキーポイントによる視覚的分類(PDF) . ECCV Workshop on Statistical Learning in Computer Vision.
- ^ ab Coates, Adam; Lee, Honglak; Ng, Andrew Y. (2011). 教師なし特徴学習における単層ネットワークの分析(PDF) 。人工知能と統計に関する国際会議 (AISTATS)。 2013-05-10 のオリジナル(PDF)からアーカイブ。
- ^ Schwenker, Friedhelm; Kestler, Hans A.; Palm, Günther (2001). 「ラジアル基底関数ネットワークの3つの学習フェーズ」.ニューラルネットワーク. 14 (4–5): 439–458. CiteSeerX 10.1.1.109.312 . doi :10.1016/s0893-6080(01)00027-2. PMID 11411631.
- ^ Lin, Dekang; Wu, Xiaoyun (2009). 識別学習のためのフレーズクラスタリング(PDF) . ACLおよび IJCNLP年次会議。pp. 1030–1038。
- ^ ab Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). 「セクション 16.1. ガウス混合モデルと k-Means クラスタリング」。Numerical Recipes: The Art of Scientific Computing (第 3 版)。 ニューヨーク (NY): Cambridge University Press。ISBN 978-0-521-88068-8。
- ^ Kevin P. Murphy (2012).機械学習:確率論的視点。マサチューセッツ州ケンブリッジ:MIT プレス。ISBN 978-0-262-30524-2. OCLC 810414751.
- ^ Aharon, Michal ; Elad, Michael; Bruckstein, Alfred (2006). 「K-SVD: スパース表現の過剰完全辞書を設計するためのアルゴリズム」(PDF) . IEEE Transactions on Signal Processing . 54 (11): 4311. Bibcode :2006ITSP...54.4311A. doi :10.1109/TSP.2006.881199. S2CID 7477309.
- ^ Zha, Hongyuan; Ding, Chris; Gu, Ming; He, Xiaofeng; Simon, Horst D. (2001 年 12 月). 「k-means クラスタリングのスペクトル緩和」(PDF) . Neural Information Processing Systems Vol.14 (NIPS 2001) : 1057–1064.
- ^ Ding, Chris; He, Xiaofeng (2004 年 7 月)。「主成分分析による K 平均法クラスタリング」(PDF)。国際機械学習会議 (ICML 2004) の議事録: 225–232。
- ^ Drineas, Petros; Frieze, Alan M.; Kannan, Ravi; Vempala, Santosh; Vinay, Vishwanathan (2004). 「特異値分解による大規模グラフのクラスタリング」(PDF) .機械学習. 56 (1–3): 9–33. doi : 10.1023/b:mach.0000033113.59016.96 . S2CID 5892850 . 2012-08-02に取得。
- ^ Cohen, Michael B.; Elder, Sam; Musco, Cameron; Musco, Christopher; Persu, Madalina (2014). 「k平均法クラスタリングと低ランク近似の次元削減(付録B)」arXiv:1410.6801 [cs.DS]。
- ^ ab Little, Max A.; Jones , Nick S. (2011). 「区分定数信号からのノイズ除去のための一般化された方法とソルバー。I. 背景理論」。Proceedings of the Royal Society A 。467 ( 2135 ) : 3088–3114。Bibcode :2011RSPSA.467.3088L。doi :10.1098 / rspa.2010.0671。PMC 3191861。PMID 22003312。
- ^ Vinnikov, Alon; Shalev-Shwartz, Shai (2014). 「独立成分がスパースな場合のK平均法によるICAフィルターの回復」(PDF)。国際機械学習会議(ICML 2014)の議事録。
