先日ようやくドラクエ9をクリアしたのですが、切ない話が多くて、たまに泣きそうになってしまったfujisawaです。以前ご紹介したデータクラスタリングツールbayonにいくつか機能追加を行いましたので、その中から以下の2つをご紹介させていただきます。 入力データ中の特徴的なキーを自動的に特定して、クラスタリングの精度を向上させる 事前に行ったクラスタリング結果を使用して、各ドキュメントに関連するクラスタを特定する 入力データから特徴的な要素を特定 bayonでは入力データとして、各ドキュメントに対し、その特徴を表すキーとポイントを指定する必要があります。例えば以下の例では、最近食べたメニューの名前とその回数を、各ユーザの特徴として指定しています。 fujisawa 卵かけご飯 4 みそ汁 6 ソーメン 3 kimura ステーキ 8 みそ汁 7 寿司 4 ... ここで、実は「みそ汁」は多く
k-means法 (k-means method)† 次の目的関数を最小化する分割最適化クラスタリングの代表的手法. \[\mathrm{Err}(\{X_i\})=\sum_i^k\;\sum_{\mathbf{x}\in X_i}\;{\|\mathbf{x} - \bar{\mathbf{x}}_i\|}^2\] ただし,データ集合 \(X\) は,ベクトルで表現されたデータ \(\mathbf{x}\) の集合. クラスタ \(X_i\) は,データ集合の網羅的で互いに素な部分集合. \(\bar{\mathbf{x}}_i\) は \(X_i\) 中の重心(セントロイドともいう). \(\|\cdot\|\) はユークリッドノルム. ↑ アルゴリズム† 入力はデータ集合 \(X\) とクラスタ数 \(k\),および最大反復数 maxIter. 初期化:データ集合をランダムに \(
CLUTO is a software package for clustering low- and high-dimensional datasets and for analyzing the characteristics of the various clusters. CLUTO is well-suited for clustering data sets arising in many diverse application areas including information retrieval, customer purchasing transactions, web, GIS, science, and biology.
逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の
嵯峨山 茂樹: 応用音響学 D2-Clustering edu/appl-acoust/2003/D2-Clustering.tex / 1 東京大学 工学部 計数工学科 応用音響学 D2 - クラスタリング 嵯峨山 茂樹 <sagayama@hil.t.u-tokyo.ac.jp> 東京大学 工学部 計数工学科 資料所在 http://hil.t.u-tokyo.ac.jp/∼sagayama/applied acoustics/ クラスタリング k-means アルゴリズム ベクトル量子化 LBG アルゴリズム セグメンタル k-means アルゴリズム 嵯峨山 茂樹: 応用音響学 D2-Clustering edu/appl-acoust/2003/D2-Clustering.tex / 2 クラスタリング1 内容 1. クラスタリング 2. k-meansアルゴリズム、LBGアル
Cの勉強もかねつつ。kmeans.cとkmeans.Rから最低限必要そうなところを引っ込抜いてきて、コメントを適度に埋めつつやってみました。 Cのソース。100行くらい。短かい。 #include <R.h> #include <Rinternals.h> void mykmeans(double *x, int *pn, int *pp, double *cen, int *pk, int *cl, int *pmaxiter, int *nc, double *wss) { int n = *pn, k = *pk, p = *pp, maxiter = *pmaxiter; int iter, i, j, c, it, inew = 0; double best, dd, tmp; Rboolean updated; for(i = 0; i < n; i++) cl[i] = -1
クラスター分析の手法は2種類に大別される.一つはグループの数(クラスター数)を徐々に増やしていく(もしくは減らしていく)階層的な手法.もう一つはあらかじめクラスター数を固定して分類を行う非階層的な手法である.ここでは両者の違いとともに,非階層的な手法の代表例であるK-means法について概説する. 階層的なクラスタリング手法では,クラスター数を徐々に減らす場合,初めはすべての個体を要素一つからなるクラスターと考え,互いの距離の近いものから順にクラスターを融合していくことにより,適当な数のグループに分割する.そのため,クラスター間の融合の順序とその類似度を表すデンドログラム(樹状図)が形成されるという特徴がある. 非階層的な手法の代表例であるK-means法では,あらかじめ固定された数(例えば,K個)のクラスターのおのおのにその代表であるプロトタイプを与え,それぞれの個体を最も近いプロトタイ
集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く