最近有几个程序需要用到机器学习,第一次接触,感觉还是很有用的!
看了一部分斯坦福的公开课,又了解了一些线性回归和逻辑回归的基本知识,准备利用这两个利器解决一下手头的问题。
首先是环境配置,由于最近使用c++,就搜索了一些c++的机器学习类库,然后就决定用mlpack。
开始打算在win下使用,就像boost一样编译然后用codeblocks调用,可是,发现这个类库还依赖于其他几个类库,自身对编译类库不是很熟悉,而且这些类库在win下编译比较麻烦,所以最终选择到ubuntu下开发。
废话结束,进入正题:
首先下载最新的mlpack版本http://www.mlpack.org/index.html,我用的是1.0.8。
接下来需要解压和编译安装,下面是官方的指南:http://www.mlpack.org/doxygen.php?doc=build.html
$ cd mlpack-1.0.8 $ mkdir build
mlpack依赖于一下类库:
后两个可以使用命令行apt直接获取:
# apt-get install libboost-math-dev libboost-program-options-dev libboost-random-dev libboost-test-dev libxml2-dev
首先下载最新的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
进入刚才的build目录之后:
$ cd build $ cmake ../
$ make
# make install
源文件中有各种算法的例子,可以学习其使用方法,这里需要注意一点,在编译和链接时,都要加上-lmlpack -larmadillo,来包含所需库。