K平均法

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:小文字 テンプレート:Expand English

k平均法の収束

テンプレート:Machine learning bar k平均法(kへいきんほう、テンプレート:Lang-en-short)は、非階層型クラスタリングアルゴリズム。クラスタの平均を用い、与えられたクラスタ数k個に分類することから、MacQueen がこのように命名した。k-平均法(k-means)、c-平均法(c-means)とも呼ばれる。

何度か再発見されており、まず、Hugo Steinhus1957年に発表し[1]、Stuart Lloydが1957年に考案し、E.W.Forgyが1965年に発表し[2]、James MacQueenが1967年に発表しk-meansと命名した[3]

数式で表現すると、下記最適化問題を解くアルゴリズム[4]。本アルゴリズムでは最小値ではなく初期値依存の極小値に収束する。

argminV1,,Vki=1nminjxiVj2

単純なアルゴリズムであり、広く用いられている。分類をファジィ化したファジィc-平均法エントロピー法をはじめ、データ構造を発見するさまざまな応用手法が提案されている。上記の最適化問題はNP困難であるが、k-平均法は局所解を求める効率的なヒューリスティックである。k-平均法は混合正規分布に対するEMアルゴリズムの特殊な場合である。

アルゴリズム

k-平均法は、一般には以下のような流れで実装される[5][6]。データの数を n、クラスタの数を k としておく。

  1. 各データ xi(i=1,,n) に対してランダムにクラスタを割り振る。
  2. 割り振ったデータをもとに各クラスタの中心 Vj(j=1,,k) を計算する。計算は通常割り当てられたデータの各要素の算術平均が使用されるが、必須ではない。
  3. xi と各 Vj との距離を求め、xi を最も近い中心のクラスタに割り当て直す。
  4. 上記の処理で全ての xi のクラスタの割り当てが変化しなかった場合、あるいは変化量が事前に設定した一定の閾値を下回った場合に、収束したと判断して処理を終了する。そうでない場合は新しく割り振られたクラスタから Vj を再計算して上記の処理を繰り返す。

結果は、最初のクラスタのランダムな割り振りに大きく依存することが知られており、1回の結果で最良のものが得られるとは限らない。そのため、何度か繰り返して行って最良の結果を選択する手法や、k-means++法のように最初のクラスタ中心点の振り方を工夫する手法などが使用されることがある。

なお、このアルゴリズムではクラスタ数 k は最初に所与のものとして定めるため、最適なクラスタ数を選ぶには他の計算等による考察を用いる必要がある。

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

  • 宮本定明 『クラスター分析入門 ファジィクラスタリングの理論と応用』 森北出版株式会社、1999年、ISBN 4-627-91651-5

関連項目