タグ

2009年10月13日のブックマーク (9件)

  • Low-Layer Hacks: P2Pアルゴリズム毎のメリット/デメリット

    2009-10-10 P2Pアルゴリズム毎のメリット/デメリット Winny裁判で金子氏に無罪判決が下り、P2Pを実装したアプリケーションは今後増えてくると予想される。そこで、技術者向けにP2P構造化オーバーレイネットワークのアルゴリズム毎におけるメリット/デメリットを簡潔にまとめ、実装にあたり必要となるであろう参考資料を示した。 ・Chord DHT(分散ハッシュテーブル)の一種であるこのアルゴリズムはConsistent Hashingをベースとしており、名前の通り、分散されたコンピュータ間にハッシュテーブルを構築する。このアルゴリズムは多くのシステムに採用されているのでとても信頼性が高く、実装も容易である。 ただ、愚直な実装では耐障害性が低くなるので注意が必要だ。UnbreakableなChordを提案した論文もあるようなので、そういう文献も参考にすると良いかもしれない。 参

    tettsyun
    tettsyun 2009/10/13
    p2p
  • k-means++を試し中 - のんびり読書日記

    http://d.hatena.ne.jp/kaiseh/20090113/1231864089 上の記事を見て、k-means++が面白そうだったので、ちょっとだけ試してみた。 k-meansは初期値に大きく依存するところが嫌い。初期値への依存度を軽減するために、初期値を変えて何回か試行してその中で一番良い結果のものを使用する、なんてことをしないといけない。そのため処理時間も馬鹿にならなくなってしまうので、ちょっとこれじゃあなあ…ということで使ってなかった。 でも今回のk-means++は初期値をうまく求めることで、精度と速度の向上が得られるらしい。これはうれしい! 論文著者のページにサンプルコードがあったので試してみようと思ったんだけど、MFCを使っているみたいで僕の環境ではコンパイルできず…。 http://www.stanford.edu/~darthur/kMeansppTest

    k-means++を試し中 - のんびり読書日記
    tettsyun
    tettsyun 2009/10/13
    k-means
  • K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ

    K-means法は、入力データからK個のランダムな個体を初期クラスタの中心として選択し、以降、クラスタの重心を移動させるステップを繰り返すことでクラスタリングを行う非階層的手法です。K-means法はシンプルで高速ですが、初期値依存が大きいのが弱点で、不適切な初期値選択をすると間違った解に収束してしまいます。 以下は、Introduction to Information Retrievalの16章に出てくる例です。 {d1, d2, ..., d6}をK=2でクラスタリングする場合、{{d1, d2, d4, d5}, {d3, d6}}が大域最適解ですが、初期クラスタの中心をd2, d5で与えると、{{d1, d2, d3}, {d4, d5, d6}}という誤った解に収束してしまいます。 この問題を改善するK-means++という手法を見つけたので、試してみました。 K-means+

    K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ
    tettsyun
    tettsyun 2009/10/13
    k-means
  • pLSIを試してみた - のんびり読書日記

    これまでにK-means++とfuzzy c-meansを使用したクラスタリングを試してきましたが、今回はpLSI(probabilistic latent semantic indexing, 潜在的意味インデキシング)によるクラスタリングを試してみようと思います。 pLSIは確率・統計的な枠組みで次元縮約を行う枠組みで、なかなか精度がよいらしく色々な論文で見かけます。Google NewsのレコメンドでもpLSIを使用しており、MapReduceで処理を並列化させて高速に実行しているそうです(論文読んでないので間違っているかも)。また入力ベクトルをあらかじめ重み付けしておく必要がなく、文書であれば単語の頻度をそのまま入力として使用できるのもうれしいところです。 より詳しくは以下のWikipediaのエントリか、書籍をご参照下さい。(書籍は処理結果の表8.4が並びがグチャグチャになってる

    pLSIを試してみた - のんびり読書日記
  • pLSIのプログラムとか - とある研究者の日々

    前にpLSIのプログラムを載せていたが、大規模データに対して実際に使ってみるとメモリを大量に消費するは計算時間がかかるはであまり使いものにならない。基的な部分は問題がないと思うのだが。ということで、格的にメモリ節約と時間高速化を目指す。 前に作ったプログラムでメモリを一番消費しているのはEMのExpectation部分なので、ここを全文書、全単語、全隠れ属性の値を保存しない形に修正する。速度アップを実現するにはメモリに結果を保存して再利用することで計算を減らせばよいが、今回の最終の目的からは無制限には認められない。ということで、CLAPACKを使って行列演算の高速化を実現することに。また、高速化の効果が期待できそうな場所をgprofにより検証しつつ、再計算の負荷を減少することにする。 ということで、少しは高速になったと思うのだが、CLAPACK版を使う前のプログラムで実験を始めたので、

    pLSIのプログラムとか - とある研究者の日々
  • not found

  • Open source Clustering software

    The open source clustering software available here implement the most commonly used clustering methods for gene expression data analysis. The clustering methods can be used in several ways. Cluster 3.0 provides a Graphical User Interface to access to the clustering routines. It is available for Windows, Mac OS X, and Linux/Unix. Python users can access the clustering routines by using Pycluster,

    tettsyun
    tettsyun 2009/10/13
    clustering
  • Efficient Algorithms for K-Means Clustering

    Tapas Kanungo, David M. Mount, Nathan S. Netanyahu, Christine D. Piatko, Ruth Silverman, and Angela Y. Wu This is a collection of C++ procedures for performing k-means clustering based on a combination of local search and Lloyd's algorithm (also known as the k-means algorithm). Given any set of k centers Z, for each center z in Z, let V(z) denote its neighborhood, that is, the set of data points f

  • Netlib at The Univ. of Tennessee and ORNL

    tettsyun
    tettsyun 2009/10/13
    数値計算に関する著名なポータルサイトらしい。