1、准备数据
这里使用的是lab课上老师提供的数据集
但是不符合libsvm中要求的数据格式,所以需要将原始数据转换成libsvm中要求的。
-
利用FormatDataLibsvm.xls进行转换
点击下载FormatDataLibsvm.xls
提取码: cww0 -
打开FormatDataLibsvm.xls,启用编辑,启用内容。然后 “文件>打开” 选择iris.txt文件.
第三步选常规,然后完成导入。
-
处理label
使用替换功能,将label “Iris-setosa” 这些对应换成0 1 2
因为libsvm中的label格式要求是不能为字符这些。
- 然后使用宏对数据进行转换
转换好后是这样的:
<label> index1:<feature> index2:<feature> index3:<feature> index4:<feature>
复制Excel表格中的数据到一个新的txt文件中
- 验证数据
在cmd 中使用python checkdata.py tt.txt
验证 No error
2、训练和测试
我这里把原来的数据集分成了两个,一个用作train 一个用作test
from svmutil import *
y, x = svm_read_problem('train.txt')
yt, xt = svm_read_problem('test.txt')
model = svm_train(y, x,'-t 1')
p_label, p_acc, p_val = svm_predict(yt[:], xt[:], model)
网友评论