Libsvm工具箱的使用:
一、安装Libsvm
下载libsvm,然后安装即可,可以参考http://blog.csdn.net/ahuang1900/article/details/8971991。.之后得到4个文件,分别是:libsvmread.mex,libsvmwrite.mex,svmtrain.mex,svmpredict.mex,需要注意:我的是在xp下载安装的,在win7 32为的系统,得到的文件后缀为mexw32。
函数说明:
(1)libsvmread:用于读取libsvm格式的文件,’data.txt'中包含的数据是libsvm格式
使用格式:[label_vector, instance_matrix] = libsvmread('data.txt');
输出:1.label_vector:标签向量
2.instance_matrix:实例矩阵(是一个稀疏矩阵)
原始数据如下:
使用libsvm数据格式为:标签 属性(x1)编号1:数据 属性(x2)编号2:数据 属性(x3)编号3:数据 ... 属性(xn)编号n:数据
上面的数据可以表示为如下:
(2)libsvmwrite:用于一个matlab的矩阵libsvm格式的数据,写入到data.txt中,用法:
libsvmwrite('data.txt', label_vector, instance_matrix),其中instance_matrix是必须是稀疏矩阵(double型)
例如,假设有矩阵M= [1 2 ; 3 4 ],标签矩阵为label = [1;-1]
利用 sparse函数,把M表示稀疏矩阵形式,
M =
1 2
3 4
>> M=sparse(M)
M =
(1,1) 1
(2,1) 3
(1,2) 2
(2,2) 4
这样通过 libsvmwrite('data.txt', label, M),即可得到libsvm格式的数据data.txt
M =
(1,1) 1
(2,1) 3
(1,2) 2
(2,2) 4
>> label
label =
1
-1
>> libsvmwrite('data.txt', label,M)
data.txt的内容为:
1 1:1 2:2
-1 1:3 2:4
(3)svmtrain:用于根据训练样本训练一个svm分类器,用法:(svmtrain方程返回的model用于将来预测)