[[ノート/ノート]]

***mlpackのインストール [#mc13abbf]
[[mlpack (machine learning package):http://www.mlpack.org]]

[[インストールガイド:http://oregano.yy.is.sci.toho-u.ac.jp/mlpack/build.html]]は、ダウンロードしたものからdoxygenで生成。

[[doxygen:http://oregano.yy.is.sci.toho-u.ac.jp/mlpack/]]


***前提ソフトのインストール [#jfb48646]
-LAPACK (linear algebra package)
--yum でインストール
 yum install lapack-devel
 (1/4): blas-3.2.1-4.fc13.x86_64.rpm                      | 321 kB     00:02
 (2/4): blas-devel-3.2.1-4.fc13.x86_64.rpm                | 9.2 kB     00:00
 (3/4): lapack-3.2.1-4.fc13.x86_64.rpm                    | 4.3 MB     00:19
 (4/4): lapack-devel-3.2.1-4.fc13.x86_64.rpm              | 9.2 kB     00:00
 --------------------------------------------------------------------------------
 合計                                            197 kB/s | 4.6 MB     00:24
 インストールしました:
   lapack-devel.x86_64 0:3.2.1-4.fc13
 依存性関連をインストールしました:
   blas.x86_64 0:3.2.1-4.fc13           blas-devel.x86_64 0:3.2.1-4.fc13
   lapack.x86_64 0:3.2.1-4.fc13
-pthreads 〜 インストール済み
-Armadillo >= 2.4.0
--yumでは1.2.0しかないので、ソースからインストール~
ソースをhttp://arma.sourceforge.net/download.htmlを参考にしてダウンロード
 wget -4 http://sourceforge.net/projects/arma/files/armadillo-2.4.4.tar.gz
 tar -xzvf armadillo-2.4.4.tar.gz
cmakeでコンパイルすることにするが、その前提としてLAPACK, BLAS, ATLAS, Boostが望ましいと書いてある。~
LAPACK, BLASは既にインストールしたので、boost-devel, atlas-develをyumインストールしておく~
次にarmadillo-2.4.4をcmake
 cmake .   〜〜 最後の.は必要
 make
 make install  〜〜 installにはroot権限必要
-LIBXML2
 yum install libxml2
 (1/2): libxml2-2.7.7-1.fc13_2.7.7-2.fc13.x86_64.drpm     | 127 kB     00:02
 (2/2): libxml2-python-2.7.7-1.fc13_2.7.7-2.fc13.x86_64.d |  31 kB     00:00
 更新しました:
   libxml2.x86_64 0:2.7.7-2.fc13
 依存性を更新しました:
   libxml2-python.x86_64 0:2.7.7-2.fc13
 yum install libxml2-devel
   libxml2-devel        x86_64        2.7.7-2.fc13           updates        1.1 M
 インストールしました:
   libxml2-devel.x86_64 0:2.7.7-2.fc13
-Boost 上記armadilloインストール中にインストールされているが、更にmath_c99, program_options, unit_test_framework必要~
program_options, unit_test_frameworkはOKだが、math_c99は yum install boost-math には含まれておらず(形の上だけ?)、mlpackのcmakeが探し当てることが出来なかった。~
そこで、やむを得ずソースからインストールする。 http://www.boost.org/doc/libs/1_49_0/more/getting_started/unix-variants.html を参照。
 wget -4 http://sourceforge.net/projects/boost/files/boost/1.49.0/boost_1_49_0.tar.gz/download
 tar -xzvf boost*
 cd boost*
 mv boost_1_49_0 /usr/local/
 cd /usr/local/boost*
 ./booststrap.sh
 ./b2 install

***ようやく本体mlpackのコンパイル [#o9463cdb]
-cmake
 cd build
 cmake ../
 make
 make install

***サンプルプログラムの実行 [#gca80e73]
サンプル [[covariance:http://oregano.yy.is.sci.toho-u.ac.jp/mlpack/sample.html]]
 // Includes all relevant components of MLPACK.
 #include <mlpack/core.hpp>
 
 // Convenience.
 using namespace mlpack;
 
 int main()
 {
   // First, load the data.
   arma::mat data;
   // Use data::Load() which transposes the matrix.
   data::Load("data.csv", data, true);
 
   // Now compute the covariance.  We assume that the data is already centered.
   // Remember, because the matrix is column-major, the covariance operation is
   // transposed.
   arma::mat cov = data * trans(data) / data.n_cols;
 
   // Save the output.
   data::Save("cov.csv", cov, true);
 }
コンパイルは
 g++ -c -o covariance.o covariance.cpp -I/usr/include/libxml2 -I/usr/local/include/
 g++ -o covariance covariance.o -lmlpack -larmadillo

実行する時に、もしldできないと言ってきたら(/usr/local/libがLDパスに入っていないため)
 sudo ldconfig
とするか、実行前にいつも
 LD_LIBRARY_PATH=/usr/local/lib
 export LD_LIBRARY_PATH
とするか。

***コマンドラインでも実行できる [#k1c1a2a9]
[[コマンドラインからの実行:http://trac.research.cc.gatech.edu/fastlab/doxygen/sample.html]]

gmm (Gaussian Mixture Model)を使うと、
 gmm -h でヘルプ
 gmm -i 入力ファイル -o 出力ファイル -g 正規分布の数  で実行
 gmm -i test.csv -g 2
これによって、test.csvが解析され、出力(デフォルト名)gmm.xmlが生成される。

**OpenCVにも [#x7439e7b]
OpenCVにもGMMのEMアルゴリズムがある ⇒ http://opencv.itseez.com/modules/ml/doc/expectation_maximization.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS