SVM支持向量机中PCA函数的使用注意事项
来源:互联网 发布:python客户端接口登录 编辑:程序博客网 时间:2024/05/22 12:01
使用SVM做一个图片分类器,主要使用的技术是,各种特征提取方法加上PCA主成分提取,最后用SVM进行图片分类处理。
特征提取这个东西还是比较简单的,前人做的工作很多,源代码也不少。主要采用的不变距、HOG、SIFT、LBP、信息熵、tamura纹理特征、面积和欧拉数等。主要从两个大的角度研究。一个是纹理特征,还有一个就是几何特征。总的来说,就是各种特征叠加然后到了整个分类器,慢慢调整最终达到比较的结果。调的这个过程需要耐心和记录。每变一个参数,运行一遍,最后都要记录下最终的结果。方便日后进行比对。
PCA主成分分析,我跌了个跟头,先说一下PCA的作用吧。PCA说白了就是提取主成分的。为什么要提取主成分呢,由于之前提取的特征量特别大,你不可能把所有特征都拿来算一下。如果你有超级计算机作支撑,当我没说。而且你之前提取的特征应该是比较大的一部分是没有作用的,甚至会有噪声,因此你需要提取有用的特征,进而有利于接下来的支持向量机的分类。好了,说了这个多PCA是个什么东东,我就来讲讲,我是咋掉坑的。这个坑是这样的,我把得到的特征矩阵,直接放进了PCA的计算函数princomp函数,然后发现怎么更改特征矩阵都不行,测试集一直都是20%的准确率,训练集的准确率倒还比较好90%以上的准确率。怎么着都不行。而且当时还是用的我的小笔记本跑的程序,跑一次笔记本风扇呜呜转,电脑各种发热,可心疼死我了。
后来我想不行啊,这样下去啥进展没啊。跑程序一天跑了没几次。后来果断换了教研室台式机,虽然台式机也不咋地,但是耐操啊。现在一天跑十次不在话下。也就是在台式机上各种跑程序的过程中慢慢摸索出了一下道道。之前princomp函数的参数是有问题的,不能直接放入特征矩阵,应该先转置一下特征矩阵,然后再转置一下score(提取得到的特征)得到的才是最终的结果。虽然现在的结果也不是很好,但是好歹可以达到50%以上的准确率。
最后再说一下SVM吧,这个东西,在网上都有现成的工具箱,我用的libsvm。比较好用四五行就可以搭起来。但是问题就是你需要调的参数问题。我在这个地方也遇到了不少问题,好多大神都建议直接自己撸代码,自己搭一个svm,但是本人还是才疏学浅,采用的是
《MATLAB神经网络30个案例分析》这本书里面的教程,总体来说很不错,比较详细,有具体的实例教程。看这本书上手很快。但是这里面有个小坑。可以看我之前的吐槽博客。
机器学习这个东西,其实入门不算太难,但是你想真正深入原理,甚至自己看机器学习论文徒手撸一个学习机器还是比较难的。共勉!
- SVM支持向量机中PCA函数的使用注意事项
- 支持向量机(SVM)中核函数的选择
- Python中如何使用支持向量机(SVM)算法
- Python中使用支持向量机(SVM)实践
- 支持向量机SVM核函数的选择(七)
- 支持向量机SVM核函数分析
- Kernel SVM (核函数支持向量机)
- 选择支持向量机(SVM)核函数
- 支持向量机原理与实践(二):scikit-learn中SVM的使用
- 支持向量机(SVM)中对偶问题的理解
- 支持向量机SVM的java api 使用
- SVM支持向量机和libsvm的使用
- SVM 中查看支持向量的权重。
- 使用支持向量机(SVM)
- 支持向量机SVM
- SVM支持向量机
- svm支持向量机
- SVM支持向量机
- 自主/遥控水下机器人研究现状 -读后总结
- Mysql自带profiling性能分析工具
- Super Jumping! Jumping! Jumping!
- Highlighting System4.1的使用
- Appearance Analysis UVALive(模拟)
- SVM支持向量机中PCA函数的使用注意事项
- Redis 乐观锁
- 机器学习-损失函数
- TreeSet的两种排序方式
- js实现form2json轻量框架
- RAC环境下如何将数据库内存由200G调整到500G
- STM8 uart1
- 欢迎使用CSDN-markdown编辑器
- Python pip命令