使用C++机器学习库 mlpack

最近有几个程序需要用到机器学习,第一次接触,感觉还是很有用的!

看了一部分斯坦福的公开课,又了解了一些线性回归和逻辑回归的基本知识,准备利用这两个利器解决一下手头的问题。

首先是环境配置,由于最近使用c++,就搜索了一些c++的机器学习类库,然后就决定用mlpack。

开始打算在win下使用,就像boost一样编译然后用codeblocks调用,可是,发现这个类库还依赖于其他几个类库,自身对编译类库不是很熟悉,而且这些类库在win下编译比较麻烦,所以最终选择到ubuntu下开发。

废话结束,进入正题:

1.编译安装mlpack


首先下载最新的mlpack版本http://www.mlpack.org/index.html,我用的是1.0.8。

接下来需要解压和编译安装,下面是官方的指南:http://www.mlpack.org/doxygen.php?doc=build.html

1)解压

2)创建build目录:

$ cd mlpack-1.0.8
$ mkdir build

3)安装mlpack依赖的类库

mlpack依赖于一下类库:

  • Armadillo >= 3.6.0 (with LAPACK support)
  • LibXML2 >= 2.6.0
  • Boost (math_c99, program_options, unit_test_framework, random)

后两个可以使用命令行apt直接获取:

# apt-get install libboost-math-dev libboost-program-options-dev
  libboost-random-dev libboost-test-dev libxml2-dev

对于Armadillo,如果使用apt获取,则不是最新版本,在使用的时候会出现问题,所以在此建议自己下载,编译安装。(在这里困扰了好久T_T)

首先下载最新的Armadillo:http://arma.sourceforge.net/download.html,我这里用的是4.200.0。

官网上同样有安装指南,这个库也许要几个依赖库才能编译安装,ubuntu下可以使用apt获得:

libopenblas-dev,liblapack-dev,libarpack-dev.

最后一个库貌似没有,不安装也行(暂时没发现错误- -)。

还需要安装cmake。

安装完依赖的库,解压下载的armadillo-4.200.0,进入文件夹后,执行

cmake .
  make

如果没有错,那么用管理员身份运行:

make install

期间可能遇到一个问题,(不知道是不是这一步中出现了……)error while loading shared libraries
这时候,需要执行:

sudo ldconfig

4)编译安装mlpack

进入刚才的build目录之后:

$ cd build
$ cmake ../

之后编译

$ make

之后以管理员身份安装

# make install

成功!

5)使用mlpack

源文件中有各种算法的例子,可以学习其使用方法,这里需要注意一点,在编译和链接时,都要加上-lmlpack -larmadillo,来包含所需库。



你可能感兴趣的:(c++)