如何在 MATLAB 上开始 SVM 训练
Posted
技术标签:
【中文标题】如何在 MATLAB 上开始 SVM 训练【英文标题】:How to start SVM training on MATLAB 【发布时间】:2012-01-23 23:22:33 【问题描述】:我已经获得了一组面部特征,并希望使用 SVM 进行分类。我打算使用 libsvm 包并使用 MATLAB 进行培训。我已经通过观看斯坦福讲座了解了 SVM。但我不确定如何使用 libsvm 启动.. 需要一些指导...
【问题讨论】:
matlab/readme 中有哪些不明白的部分? matlab文件夹下怎么会有.c文件和.m文件? 你用的是linux还是windows? 【参考方案1】:在 matlab 中,您可以将您的 matlab 代码与一些用 c 实现的程序链接起来。这称为mex-file。
但是你需要编译它们,让它工作。
您可以阅读自述文件以了解如何编译它们:
安装
在 Unix 系统上,我们建议使用 GNU g++ 作为编译器和类型 'make' 来构建 'svmtrain.mexglx' 和 'svmpredict.mexglx'。注意 我们假设您的 MATLAB 安装在“/usr/local/matlab”中,如果没有, 请更改 Makefile 中的 MATLABDIR。
示例: linux>制作
要使用 Octave,请输入“make octave”:
例子:linux>制作八度
在 Windows 系统上,预构建的二进制文件已经在 目录`..\windows',所以不需要进行安装。现在我们 包括 32 位二进制文件和 64 位二进制文件,但将来 发布时,我们将仅在 64 位 MATLAB 上提供二进制文件 视窗。如果您修改了源代码并想重新构建 包,在 MATLAB 中键入“mex -setup”以选择用于 mex 的编译器 第一的。然后输入“make”开始安装。
例子:
matlab> mex -setup
(ps:MATLAB 将显示以下消息以设置默认编译器。) 请选择您的编译器来构建外部接口 (MEX) 文件: 您希望 mex 找到已安装的编译器 [y]/n 吗?是的 选择编译器: 1 C:\Program Files\Microsoft Visual Studio 中的 Microsoft Visual C/C++ 7.1 版 [0] 无 编译器:1 请验证您的选择: 编译器:Microsoft Visual C/C++ 7.1 位置:C:\Program Files\Microsoft Visual Studio 这些正确吗?([y]/n): y
matlab> make
有关 MATLAB 支持/兼容的编译器列表,请查看 以下页面:
http://www.mathworks.com/support/compilers/current_release/
【讨论】:
你只需要启动 SVM 吗? 之后,您可以运行自述文件剩余部分中提供的示例代码 尝试安装Microsoft Visual Studio Express Edition,它会安装lcc。将其用作 mex 的编译器。 好的,如果你不设法编译它。您应该尝试复制预编译版本....它位于 libsvm-3.1/windows/ 中...将所有这些复制到与 .m 文件相同的目录中。再试一次 复制到你说的m个文件所在的文件夹?以上是关于如何在 MATLAB 上开始 SVM 训练的主要内容,如果未能解决你的问题,请参考以下文章
如何标记 PCA 获得的训练投影以用于训练 SVM 进行分类? MATLAB
如何获得在更大矩阵上训练的 SVM 以对不同大小的矩阵进行分类
如何训练用于对象检测的潜在 SVM 模型?它使用 Matlab 2012b、Windows 64 位操作系统崩溃