2009年1月12日星期一

开始尝试svm

前几天在网上看到Google Developer Day上关于机器学习的一个演讲,演讲者之一是台湾的林智仁教授,讲了svm的原理和发展情况。可惜视频上没有演讲时的ppt的内容,他的演讲又是中英混杂的,时不时蹦一个英文单词出来,对于没有相关背景的我来说,有不少都不懂是什么意思。演讲中提到了林教授是svm研究中的先锋人物(当然不是林教授自己说的,是另一个Google的工程师说的),还提到了libsvm工具包。于是顺藤摸瓜找到了libsvm,原来就是林教授开发的!对python语言的支持非常好,是内置在包里的。而且好像用的人也很多,网上相关的资料很多,看了一下,上手很容易。
恰好知道师兄也用过svm,就发个飞信问他用的是不是这个,结果说是ls-svm。上网又搜了一下,这是最小二乘支持向量机:
近年,Suykens J.A.K提出一种新型支持向量机方法—最小二乘支持向量机(Least Squares Support Vector Machines,简称LS-SVM)用于解决模式分类和函数估计问题等.最小二乘支持向量机方法是采用最小二乘线性系统作为损失函数,代替传统的支持向量机采用的二次规划方法。

LS-SVM方法简化了计算的复杂性。另外,由于LS-SVM采用了最小二乘法,因此运算速度明显快于支持向量机的其它版本。
问了一下,另一个师妹也是用的这个。不过ls-svm好像只支持c和matlab,对于其他语言不支持。当然支持c就可以包装成python可用的模块,但毕竟麻烦一点,还有人说:
但是该方法也是以推广性的损失为代价的
要根据使用的范围确定选用什么样的方法
这让我回过神来,这些都是工具,要对svm的原理有了清楚的认识才能合理、正确、有效的使用这些工具。正好师兄的大论文里有关于SVM的详细介绍,看完这个再来选择吧~



没有评论: