簡介
mlpack是一個C++機器學習庫,側重於可擴展性、速度和易用性。它的目的是通過一個簡單的、前後一致的API讓新用戶使用機器學習成爲可能,同時利用C++語言特徵爲專家用戶提供最好的性能和最大的靈活性。這些通過提供一系列命令行執行程序完成,就像使用一個黑箱,而且專家用戶和研究者可以容易的更改一個模塊化的C++ API的內部算法。
這種方法的結果就是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的幫助。