K-means++法のソースを表示
←
K-means++法
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{小文字}} {{出典の明記|date=2013年6月2日 (日) 10:49 (UTC)}} '''k-means++法'''は、非階層型[[データ・クラスタリング|クラスタリング]]手法の1つで、[[k-means法]]の初期値の選択に改良を行なった方法である。 標準的なk-means法が頻繁にクラスタとすべきではないものにもクラスタ割り当てを行ってしまう問題や、 k-means法が[[NP困難]]な問題であることを解消するために、[[2007年]]にDavid ArthurとSergei Vassilvitskiiによって提案された<ref>{{Cite conference | title=''k''-means++: the advantages of careful seeding | url=http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf | author=Arthur, D. and Vassilvitskii, S. | book-title=Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms | pages=1027–1035 | year=2007 | publisher=Society for Industrial and Applied Mathematics Philadelphia, PA, USA }}</ref>。 2006年にRafail Ostrovskyらによって提案されたthree seeding method<ref>{{Cite conference | title=The Effectiveness of Lloyd-Type Methods for the k-Means Problem | author=Ostrovsky, R., Rabani, Y., Schulman, L. J. and Swamy, C. | book-title=Proceedings of the 47th Annual IEEE Symposium on Foundations of Computer Science (FOCS'06) | pages=165–174 | year=2006 | publisher=IEEE }}</ref>と似ているが初期シードの分布が異なる。 == 背景 == k-means法はクラスタ中心を見つけるアルゴリズムである。クラスタ中心とはクラス内分散を最小化する点であり、言い換えるとクラス内のそれぞれのデータ点との距離の二乗和を最小化する点である。任意の入力に対してk-meansの真の解を求める問題はNP困難な問題であるため、解の近似がよく行われる。その手法はLloydアルゴリズムまたはk-meansアルゴリズムと呼ばれ、多くの応用分野で用いられており、高速に近似解が得られる。 しかし、k-means法には2つの理論的な問題がある。 # 1つ目は、最悪計算時間は入力サイズに対して超多項式(''super-polynomial'')であること。 # もうひとつは、近似解は最適なクラスタリング結果と比べ関していくらでも悪くなることがあること。 このk-means++法は2つ目の問題の解消を目指した手法であり、標準的なk-means法の反復を行う前にクラスタ中心を初期化するプロセスを行う。k-means++法の初期化は、最適なk-means法の解に比べてO(log k) の近似比率で解を得ることが保証されている<ref>{{Cite web |url=http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf |title=k-means++: The Advantages of Careful Seeding |accessdate=2013-10-20}}</ref>。 == アルゴリズム == このk-means++法は、初期のk個のクラスタ中心はなるべく離れている方が良いという考えにもとづいている。まず始めにデータ点をランダムに選び1つ目のクラスタ中心とし、全てのデータ点とその最近傍のクラスタ中心の距離を求め、その距離の二乗に比例した確率でクラスタ中心として選ばれていないデータ点をクラスタ中心としてランダムに選ぶ。 アルゴリズムは以下の手順で行われる。 データ点からランダムに1つ選びそれをクラスタ中心とする。 '''while''' <math>k</math>個のクラスタ中心が選ばれるまで '''do''' それぞれのデータ点<math>x</math>に関して、その点の最近傍中心との距離<math>D(x)</math>を計算する。 データ点<math>x</math>に関して重みつき確率分布 <math>\frac{D(x)^2}{\sum D(x)^2}</math>を用いて、データ点の中から新しいクラスタ中心をランダムに選ぶ。 選ばれたクラスタ中心を初期値として標準的なk-means法を行う。 この初期値決めの方法はk-means法を著しく改善する。 初期値決めに余計な時間がかかるが、k-means法は収束がとても早く計算時間はそれほどかからない。 著者らはこの手法を実データと人工データの両方で実験を行い、 だいたい収束スピードに関しては2倍、あるデータセットでは誤差が1000分の1となったことを報告している。 一連の実験では定番のk-means法に速度と誤差に関してつねに優っていた。 それに加え、このアルゴリズムの近似率が計算されている。k-means++法は 平均的に<math>O(\log k)</math>の近似比率で近似可能であることが保証されている。<math>k</math>はクラスタ数である。これに対し、標準的なk-means法では最適値に対して任意の精度で悪くなることがある。 == ソフトウェア== * [[ELKI]] * [[GNU R]] * [[OpenCV]] * [[Weka (machine learning)|Weka]] * [http://docs.graphlab.org/clustering.html CMU's GraphLab] == 関連項目== * [[x-means法]] - k=2で再帰的にk-meansを行う方法。終了条件はベイズ情報量規準(BSI: Bayesian information criterion)で決める。 ==参考文献== {{Reflist}} [[Category:データマイニング]] [[Category:クラスター分析アルゴリズム]]
このページで使用されているテンプレート:
テンプレート:Cite conference
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
テンプレート:小文字
(
ソースを閲覧
)
K-means++法
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報