mlpack: 一个C++机器学习库

简介

mlpack是一个C++机器学习库,侧重于可扩展性、速度和易用性。它的目的是通过一个简单的、前后一致的API让新用户使用机器学习成为可能,同时利用C++语言特征为专家用户提供最好的性能和最大的灵活性。这些通过提供一系列命令行执行程序完成,就像使用一个黑箱,而且专家用户和研究者可以容易的更改一个模块化的C++ API的内部算法。

mlpack

这种方法的结果就是mlpack的性能大幅度超过其他竞争的机器学习库;在the BigLearning workshop paper 和the benchmarks for details查看细节。

mlpack由全世界的贡献者开发。基于伯克利发行软件许可的第三个条款免费发行。(比1.0.12更老的版本基于GNU通用公共授权规定发行:LGPL,第3版。)

安装

mlpack存储在许多Linux的发行版本中,所以在你的系统中使用程序包管理器可能更容易一些。例如:在Ubuntu上,你可以使用下面的命令安装mlpack。

C++

1

$ sudo apt-get install libmlpack-dev

如果mlpack不能在你的系统的程序包管理器中使用,那么你可以按照下面的步骤编译和安装mlpack源文件。

Mlpack使用CMake作为生成系统,允许几个灵活的生成配置选项。你可以查询大量的CMake教程得到更多的文件,但是这个教程应该足够让你在大多数Linux和类UNIX系统中(包括OS X)成功生成和安装mlpack。如果你想在Windows操作系统中生成mlpack,请看这里

首先下载mlpack。

当mlpack的源文件完成解压,你可以创建一个生成目录。

C++

1

2

$ cd mlpack-2.2.5

$ mkdir build

这个目录可以是任何名字,不仅仅是“build”,但是“build”足够了。

mlpack依赖项

mlpack依赖下面的库,它们需要被安装在系统中并有一些头文件出现。

  • Armadillo >=4.200.0(支持LAPACK(线性代数程序包))

  • Boost(math_c99, program_options, serialization, unit_test_framework, heap, spirit)>=1.49

在Ununtu和Debian中,你可以通过apt获得所有这些依赖项:

C++

1

2

# apt-get install libboost-math-dev libboost-program-options-dev

  libboost-test-dev libboost-serialization-dev libarmadillo-dev binutils-dev

在Fedora、Red Hat或CentOS上,这些相同的依赖项可以通过dnf获得:

C++

1

2

# dnf install boost-devel boost-test boost-program-options boost-math

  armadillo-devel binutils-devel


配置CMake

运行CMake相当于使用autotools运行./configure。

如果你工作中使用mlpack的svn trunk版本,且不带任何选项运行CMake,它将配置这个生成项目带有调试符号和分析信息:如果你工作中使用发行版本的mlpack,不带任何选项运行CMake,它将配置这个生成项目不带调试符号和分析信息(为了速度)。

C++

1

2

$ cd build

$ cmake ../

你可以手动指定选项去编译或不编译调试信息和分析信息(也就是说尽可能快):

C++

1

2

$ cd build

$ cmake -D DEBUG=OFF -D PROFILE=OFF ../

Mlpack允许的全部选项为:

  • DEBUG=(ON/OFF): compile with debugging symbols (default ON in svn trunk, OFF in releases)

  • PROFILE=(ON/OFF): compile with profiling symbols (default ON in svn trunk, OFF in releases)

  • ARMA_EXTRA_DEBUG=(ON/OFF): compile with extra Armadillo debugging symbols (default OFF)

  • BUILD_TESTS=(ON/OFF): compile the mlpack_test program (default ON)

  • BUILD_CLI_EXECUTABLES=(ON/OFF): compile the mlpack command-line executables (i.e. mlpack_knn, mlpack_kfn, mlpack_logistic_regression, etc.) (default ON)

  • TEST_VERBOSE=(ON/OFF): run test cases in mlpack_test with verbose output (default OFF)

每个选项都可以被指定给带有‘-D’标记的CMake。其他工具也可以用于配置CMake,但是它们没有被记录在这里。

生成mlpack

一旦CMake配置好,生成库就像打出‘make’一样简单。这将生成所有库组件和‘mlpack_test’。

C++

1

2

3

4

5

$ make

Scanning dependencies of target mlpack

[  1%] Building CXX object

src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/aug_lagrangian/aug_lagrangian_test_functions.cpp.o

<...>

如果你不想生成每一个库,可以指定你想生成的单个组件。

C++

1

$ make mlpack_pca mlpack_knn mlpack_kfn

一个有趣的特殊组件是mlpack_test,它是运行mlpack的测试组件。你可以使用这个命令生成这个组件:

C++

1

$ make mlpack_test

然后运行所有的测试组件或单个的测试组件:

C++

1

2

$ bin/mlpack_test

$ bin/mlpack_test -t KNNTest

如果生成失败,而你不能找到为什么失败,在Github上注册一个账户,提交这个问题,mlpack的开发人员将会尽快帮你解决,

或者在irc.freenode.netm上的mlpack的IRC中也可以找到mlpack的帮助。


猜你喜欢

转载自blog.51cto.com/13959004/2176099