(四)SMO算法SVM分类器的python实现
SVM分类器Python学习包包括三个.py文 件,svm/object_json/testsvm.py。其中svm.py实现SVM分类器,testsvm.py包含两个测试用例。因为训练过程耗 时较长,object_json.py中则是通过自定义的json编码函数将分类器对象永久保存,以后使用时只需要load分类器文件即可,除非需要更新 分类器。
包中SVM分类器定义了两个对象svmTrain和svmClassifer,前者根据训练数据,通过SMO算法产生一个SVM分类器;后者则仅是一个SVM分类器,包括由svmTrain产生的支持向量、支持向量set和get函数,分类器永久保存支持函数等。
SVM分类器软件包全部源文件和测试文件的下载地址是:
TBD
(五)SVM分类的应用
1,手写识别
svm分类器包中的digits.rar是一个手写识别测试用例,感兴趣的话可以自己训练svm分类器测试识别效果。
2,文本分类
3,多分类简介
基本的SVM分类器解决的2分类的问题,N分类的情况下有多种方式,这里介绍1vs(N–1)和1v1。更多的SVM多分类应用介绍。
前 一种方法我们需要训练N个分类器,第i个分类器是判断新的数据属于分类i还是属于其补集(除去i的N-1个分类)。后一种方式我们需要训练N * (N – 1) / 2个分类器,分类器(i,j)能够判断某个点是属于i还是属于j,当对一个未知样本进行分类时,每个分类器都对其类别进行判断.并为相应的类别“投上一 票”,最后得票最多的类别即作为该未知样本的类别。这种处理方式不仅在SVM中会用到,在很多其他的分类中也是被广泛用到,从林教授(libsvm的作 者)的结论来看,1vs1的方式要优于1vs(N–1)。
原文链接:http://blog.csdn.net/suipingsp/article/details/41645779