如何在 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 位操作系统崩溃

请问在matlab中如何实现支持向量机(SVM)算法?

准备我的数据以在 SVM libsvm matlab 中进行训练 [关闭]

Matlab 中的 SVM:函数 fitcsvm 中参数“框约束”的含义