タグ

Pythonとalgorithmに関するxiangzeのブックマーク (8)

  • Fast Non-Standard Data Structures for Python

    Python provides great built-in types like dict, list, tuple and set; there are also array, collections, heapq modules in the standard library; this article is an overview of external lesser known packages with fast C/C++ based data structures usable from Python. Note Disclaimer: I created datrie, marisa-trie, hat-trie and DAWG Python wrappers. Bloom Filters Bloom Filter (wiki) is an extremely memo

  • Python Dask で Out-Of-Core / 並列 LU 分解 - StatsFragments

    はじめに 正方行列 を となる下三角行列 と 上三角行列 に分解することを LU 分解という。LU 分解ができると連立方程式の解や逆行列が 前進/後退代入でかんたんに求められてうれしい。 Dask を使って LU 分解を Out-Of-Core / 並列でやりたい。 LU 分解の並列化にはいくつかやり方があるようで、東大講義 スパコンプログラミング(1)、スパコンプログラミング(I) の 第10回 LU分解法 にまとまっている。この講義、ガイダンス資料の単位取得状況を見るとかなり楽しそうな感じだ。 ここでは、Dask での実装がかんたんそうなブロック形式ガウス法 (資料 P33-) をやりたい。 ブロック形式ガウス法 ブロック形式ガウス法では入力となる行列をいくつかのブロックに区切り、ブロックごとに処理を行う。具体的には、左上の対角ブロックからはじめて、以下の順番で処理していく。 対角ブロ

    Python Dask で Out-Of-Core / 並列 LU 分解 - StatsFragments
  • t-SNE

    t-Distributed Stochastic Neighbor Embedding (t-SNE) is a technique for dimensionality reduction that is particularly well suited for the visualization of high-dimensional datasets. The technique can be implemented via Barnes-Hut approximations, allowing it to be applied on large real-world datasets. We applied it on data sets with up to 30 million examples. The technique and its variants are intro

    t-SNE
  • Python Packages for Graph Cuts on Images

    A graph for a small image of 512x512 pixels has 261144 nodes and 523264 edges in the 4-connected pixels case. Graphs in this scale require a fast construction interface. I reviewed a few python packages mainly from this perspective. The comparison is by no means exhaustive and fair! Based on Kolmogorov min-cut / max-flow C++ library original Kolmogorov’s code: http://vision.csd.uwo.ca/code/#Max-fl

    Python Packages for Graph Cuts on Images
  • Atsushi TATSUMA Web Page » Python と OpenCV で手軽に近似最近傍探索をする

    はじめに 近似最近傍探索は、その名のとおり、k-近傍探索の高速な近似手法です。 大量にあるデータから、検索クエリのk-近傍となるデータを、高速に探してくる技術です。 近似最近傍探索の有名ライブラリに、FLANN(Fast Library for Approximate Nearest Neighbors)があります。 FLANN 自体、独立したライブラリとして存在しているのですが、OpenCV にも組み込まれています。 しかも、OpenCVPython インターフェースからも叩けます。 各ライブラリのバージョン Python から FLANN へデータを渡すには Numpy の行列オブジェクトを用います。 今回は、以下の環境で、実行を確認しました。Python、Numpy、OpenCV は独自にビルドしたものです。 Debian GNU/Linux 6.0.5 Python

    xiangze
    xiangze 2014/03/23
    近似最近傍探索
  • PythonでPLSAを実装してみる

    probabilistic latent semantic analysis (PLSA)は、 ・文書dがP(d)で選ばれる ・潜在変数zがP(z|d)で選ばれる ・語wがP(w|z)で生成される というプロセスを経て、結果として(d,w)のペアが観測されるという文書と語の生成モデル。 式で表すと (1) となる。P(d,w)の尤もらしい確率分布を見つけたい。対数尤度関数は (2) となる。n(d,w)は語wが文書dに出現する回数。この式は訓練データn(d,w)(;どの語がどの文書に何回出現したか)が尤もらしい確率分布P(d,w)に従うとき最大になる。ベイズの定理を用いると (3) となることを利用して、この尤度関数を最大化するためにEMアルゴリズムを用いて実装してみる。(過学習を回避するために文献ではTempered EM (TEM)を用いている。)尤度関数が収束するまで以下のE-ste

  • Earth Mover's Distance (EMD) - 人工知能に関する断創録

    Earth Mover's Distance (EMD) について調べたことを整理しておきます。EMDは、ユークリッド距離のような距離尺度の一つで、二つの分布の間の距離を測ることができます。言語処理ではあまり聞いたことなかったのですが、画像処理や音声処理では比較的有名な距離尺度のようです。 EMDが使える問題設定は下図のようになります。 EMDは特徴量と重みの集合(シグネチャと呼ぶ)で与えられる分布Pと分布Qの間の距離です。ここで、特徴量間では距離 が定義されているのが前提です。特徴量がベクトルのときはユークリッド距離、特徴量が確率分布のときはカルバック・ライブラー距離(情報量)などです。EMDは、特徴量の集合が2つ与えられたときに、1個1個の特徴量間の距離をもとに、特徴量集合間の距離を求められるんですね。これはすごい。 重みは具体的な応用によって使い方が変わりますが、その特徴量の重要度を

    Earth Mover's Distance (EMD) - 人工知能に関する断創録
  • パターン認識と機械学習(PRML)まとめ - 人工知能に関する断創録

    2010年は、パターン認識と機械学習(PRML)を読破して、機械学習の基礎理論とさまざまなアルゴリズムを身につけるという目標(2010/1/1)をたてています。もうすでに2010年も半分以上過ぎてしまいましたが、ここらでまとめたページを作っておこうと思います。ただ漫然と読んでると理解できてるかいまいち不安なので、Python(2006/12/10)というプログラミング言語で例を実装しながら読み進めています。Pythonの数値計算ライブラリScipy、Numpyとグラフ描画ライブラリのmatplotlibを主に使ってコーディングしています。実用的なコードでないかもしれませんが、ご参考まで。 PRMLのPython実装 PRML読書中(2010/3/26) 多項式曲線フィッティング(2010/3/27) 最尤推定、MAP推定、ベイズ推定(2010/4/4) 分類における最小二乗(2010/4/

    パターン認識と機械学習(PRML)まとめ - 人工知能に関する断創録
  • 1