libsvm 使用命令

libsvm下载地址,http://www.csie.ntu.edu.tw/~cjlin/

  1. 数据准备成如下格式
    label1 1:value1 2:value2,…
    label2 1:value1 2:value2,…

  2. 特征归一化,使用svm-scale命令,-l,-u 为归一化后特征值范[l,u],输入文件svm_lbp_test_1,输出归一化后的文件lbptestScaled.txt,第一次保存归一化用到的参数文件-s lbp.range,第二次加载参数文件-r lbp.range
    svm-scale -l 0 -u 1 -s lbp.range svm_lbp_train_1 >lbptrainScaled.txt
    svm-scale -l 0 -u 1 -r lbp.range svm_lbp_test_1 >lbptestScaled.txt

  3. 参数寻优,grid.py是对C-SVC的参数c和γ做优选
    grid.py lbptrainScaled.txt
    输出如下:
    libsvm 使用命令_第1张图片

  4. 训练,使用寻优得到的参数进行训练,保存模型lbp.model
    svm-train -c 2.0 -g 0.03125 trainlbpScaled.txt lbp.model
    训练结束后,输出如下参数
    libsvm 使用命令_第2张图片

    其中,#iter为迭代次数,nu 是选择的核函数类型的参数,obj为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的偏置项b,nSV 为标准支持向量个数,nBSV为边界上的支持向量个数(a[i]=c),Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。

  5. 模型测试,加载模型lbp.model,对测试文件进行测试,输出结果到lbp_output.txt
    svm-predict lbptestScaled.txt lbp.model lbp_output.txt

更详细的使用步骤和解释见http://blog.csdn.net/flydreamgg/article/details/4466023

你可能感兴趣的:(libsvm 使用命令)