最近学习LIBSVM,下载了libsvm各种版本,本博客中使用310版本。
- LIBSVM数据格式
LIBSVM工具箱中集成了libsvm数据格式读取函数,在子目录matlab下,有源代码libsvmread.c和libsvmwrite.c。LIBSVM需要的数据格式如下:
0 1:-0.961538 2:-0.830769 # 标签列 index:value
0 1:-0.941545 2:-0.778706 # 均为归一化数据
0 1:-0.972158 2:-0.730858 #
1.1 libsvmread.c
打开README文档,发现对于libsvmread函数给出了具体用法。在libsvmread.c中也给出了“Usage”
void exit_with_help()
{
mexPrintf(
“Usage: [label_vector, instance_matrix] = libsvmread(‘filename’);\n”
);
} // label_vector:filename 第一列 , instance_matrix:特征数据
这是简单的应用,具体请看README或者libsvmread.c代码,这里不再赘述。
1.2 libsvmwrite.c
一般情况下,我们需要训练的是一组数据,想要使用LIBSVM还需要进行数据格式转换。使用matlab转换格式首先需要将输入数据转为矩阵,矩阵第一列为数据标签,使用libsvmwrite函数就可以成功转换。
网上有许多使用FormatDataLibsvm.xls工具的,但是又有人测试发现该工具只处理2000行一下数据,想要使用该工具的请参考http://blog.csdn.net/kobesdu/article/details/8944851。但我建议还是选择libsvmwrite函数进行libsvm格式转换。
void exit_wi

本文介绍了LIBSVM 310版本的数据格式,包括标签列和index:value的结构。讲解了libsvmread.c和libsvmwrite.c的功能,并提供MATLAB中使用这两个函数的示例。建议在使用LIBSVM时对数据进行归一化处理,以避免过拟合。还提到了数据转换工具FormatDataLibsvm.xls的局限性,推荐使用libsvmwrite函数进行转换。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



