如果你对模式分类有兴趣,并且对svm有一定的理解,此文和接下来的博文或许对你有帮助。
首先libsvm的代码可以在http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载,我在这里介绍的是libsvm的classification部分。这个部分的training部分涉及两个核心过程,选两个alpha和更新这两个algha。
上海交通大学的《libsvm2.6程序代码注释》讲解了libsvm的主要类和数据结构,并且对这两个过程也有一定描述,不过代码总是要对应着论文才能自圆其说,不然就是天书。
我在第一部分,介绍一下platt大牛的smo更新两个选中的alpha和如何快速选中最违反kkt条件的两个alpha的过程。在第二部分,基于S.S. Keerthi大牛的paper,介绍smo选两个alpha的改进策略。第三部分介绍libsvm的分类部分是如何贯彻这两位大牛的加速方针。
下面贴一段platt大牛的伪码:
http://download.csdn.net/source/1824762
这里有相关资料,以上纯粹整理。