mlpack(machine learning package)是一个C++语言下的机器学习的库,旨在提供扩展性、速度、易用性俱佳的机器学习算法,由美国佐治亚理工大学FastLab实验室编写和维护,其官网为 http://www.mlpack.org/。最为难得的是mlpack包含sparse coding这样的比较新的机器学习算法,这也是我用mlpack的原因。
不过官网只提供mlpack的源码,由cmake组织,依赖众多的第三方库,且自动检测环境做得不好,这使得mlpack的编译极为困难(本人编译它共用了八个小时)。这里将编译好的mlpack.lib(x86、x64的release版)及相关依赖文件一并打包上传(除了boost需单独下载,自行选择x86或x64版本),方便大家使用。
以下是说明文件的内容:
--------------------------------------------说明-------------------------------------------
By TomHeaven, http://blog.csdn.net/hanlin_tan, 2014.09.15
0. 下载 mlpack_1.0.10_vs2013_release.zip 并解压到 E:\libraries (可以自己设定为其他目录);
1.此mlpack.lib库由Visual Studio 2013编译生成,故只能在VS2013中使用;
2.mlpack依赖armadillo、lapack、libxml、iconv、boost等第三方库,其中
boost体积较大,请单独下载(http://www.boost.org/users/download/);
下载后解压/安装到 E:\libraries 目录下。
3.用VS编程时,设置项目的 “项目属性->配置属性->VC++目录”:
添加包含目录:E:\libraries\boost_1_56_0;E:\libraries\mlpack\include
添加库目录: E:\libraries\boost_1_56_0\lib64-msvc-12.0;E:\libraries\mlpack\lib\x64; (根据32位和64位设置)
根据需要添加 E:\libraries\mlpack\bin 到当前目录
(以上路径换成自己的boost和mlpack所在的目录)
在 “项目属性->配置属性->链接器->输入” 中添加:mlpack.lib;
4.测试以下demo程序:
<span style="font-size:24px;">// LearningMlpack.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "mlpack/core.hpp"
using namespace mlpack;
void testLoadAndSave() {
// 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);
}
/** 主函数 */
int _tmain(int argc, _TCHAR* argv[])
{
testLoadAndSave();
return 0;
}
</span>
其中 data.csv 文件可以用notepad编辑(不要用Excel编辑,Excel是用Tab分割数据的,而mlpack用逗号分割数据):
1,3,3
2,2,5
3,1,2
4,8,3
(mlpack中的矩阵是基于列的)
输出文件应为:
7.500000000000e+000,1.050000000000e+001,7.750000000000e+000
1.050000000000e+001,1.950000000000e+001,1.125000000000e+001
7.750000000000e+000,1.125000000000e+001,1.175000000000e+001
最后是下载链接(百度云):
mlpack_1.0.10.zip and boost x86, x64 download