一、实验目的和内容

实验目的:
1、 理解学习svm算法的意义,进一步了解svm算法的作用
2、 学会调用现在已经相对成熟且权威的svm接口libsvm,熟悉 libsvm的相关操作,接口调用,以及调用过程
3、 真实体验一下svm分类

二、实验过程

1、 下载libSvm和FormatDataLibsvm.xls和课程资源

  1. 从对分易上下载课程资源
  2. 下载libsvm http://www.csie.ntu.edu.tw/~cjlin/
  3. Youtube上观看简单实例https://www.youtube.com/watch?v=gePWtNAQcK8
  4. 下载FormatDataLibsvm.xls(需要的请移步FormatDataLibsvm.xls链接

2、 将课程资源中的数据文件转化为svm需要的格式

  1. 打开FormatDataLibsvm.xls,在弹出来的小提示中选择开启宏

  2. Excel中依次点击 “文件”“打开”,选择训练数据,然后在文本导入向导第一步选择原始数据类型、第二部选择空格、第三步选择常规后点完成。数据成功导入

  3. 点击工具中的宏、选择第二个点执行 如图
    机器学习实验01_用 libSVM 分类
    执行完成后保存即可,test数据如上操作

  4. 这里我得到了如下两个文件
    机器学习实验01_用 libSVM 分类

3、试用libsvm

上面我们已经下好了livsvm 现在我们依照YouTube的视频 来测试一下能否正常运行
打开cmd,cd到windows目录下 1、训练数据:svm-train.exe a1a.train(此时会生成a1a.train.model文件)2、预测正确率svm-predict.exe a1a.test a1a.train.model a1a.out。此时会输出Accuracy = 83.5864% (25875/30956) (classification)
看来能够正确运行

4、 进行svm分类(未缩放)

  1. 先把格式转好的训练文件和测试文件转到libsvm库的windows目录下
    机器学习实验01_用 libSVM 分类
  2. 打开cmd命令行输入 svm-train.exe todo.train,结果如下
    机器学习实验01_用 libSVM 分类
  3. 此时打开目录,看到todo.train.modle文件 这便是训练结果了
    机器学习实验01_用 libSVM 分类
  4. 预测一下测试数据
    机器学习实验01_用 libSVM 分类
    正确率出来了

5、进行svm分类(缩放)
4中没有缩放,现在我在5来缩放一下用svm分类,其他步骤不变,在训练todo.train之前缩放就好了.这里没有截屏到的地方是new_todo.train(缩放区间为-1到1)
机器学习实验01_用 libSVM 分类
然后训练new.todo.train
机器学习实验01_用 libSVM 分类
预测
额,仍然是这么多的正确率
机器学习实验01_用 libSVM 分类
回头看一下数据
缩放也确实生效了,那大概就是这个样子的吧
机器学习实验01_用 libSVM 分类
机器学习实验01_用 libSVM 分类

三、实验结果

实验结果数据(如果有评测要求应包括评测结果,例如分类的准确率)
1、分类的准确率:94.3533%

四、实验总结

做实验之前有去了解SVM的原理推导,发现缺少大量数学知识……,很无奈,我觉得要想深究机器学习,还得先把数学重新学一遍……
对于libsvm在windows下的使用,单纯用windows下的命令行实现还是比较简单的,就是如何数据转化为svm需要的格式,找了好久才找到方法…….
Libsvm针对不同语言有不同接口,但是核心程序也就那么几个核心程序,有了此次经验,以后若需要在高级语言中调用libsvm也更得心应手吧

相关文章:

  • 2021-11-26
  • 2021-11-15
  • 2022-12-23
  • 2021-08-18
  • 2021-11-05
猜你喜欢
  • 2021-12-24
  • 2022-12-23
  • 2021-06-29
  • 2021-06-17
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案