开源分类器

Libsvm是台湾大学林智仁教授等研究人员开发的一个用于支持向量机分类,回归分析及分布估计的c/c++开源库。另外,它也可以用于解决多类分类问题。

Weka是一个开源的机器学习软件,集成了数据预处置、机器学习算法、可视化功效,实现了大部分常见的机器学习算法,包含分类。Weka是国外有名教材《Data Mining: Practical Machine Learning Tools and Techniques (Second Edition)》所采取的试验平台。

Yale与Weka相竞争的另一个开源的机器学习软件是Yale,自称实现了Weka的所有算法,兼容Weka的数据格式。现在其开源版本已经更名为RapidMiner。

Bow与Weka和Yale不同,Bow是专门为文本处理设计的开源包。Bow包括三个部分:Rainbow(文本分类)、Arrow(文本检索)和Crossbow(文本聚类)。

Classifier4j


常见的文本分类方法

Rocchio方法
每一类断定一个中心点(centroid),计算待分类的文档与各类代表元间的间隔,并作为判定是否属于该类的判据。Rocchio方法最早由[Hull, 1994]引进文本分类范畴,后来又有很多文章进行了改良。Rocchio方法的特点是容易实现,效力高。毛病是受文本集散布的影响,比如计算出的中心点可能落在相应的类别之外[Sebastiani, 2002]。


朴素贝叶斯(naive bayes)方法
将概率论模型应用于文档自动分类,是一种简单有效的分类方法。应用贝叶斯公式,通过先验概率和类别的条件概率来估量文档对某一类别的后验概率,以此实现对此文档所属类别的断定。[Lewis, 1998]介绍了朴素贝叶斯方法的发展和各种变体及特点。


K近邻(K-Nearest Neightbers, KNN)方法
从训练集中找出与待分类文档最近的k个邻居(文档),根据这k个邻居的类别来判定待分类文档的类别。KNN方法的长处是不需要特征选取和训练,很轻易处理类别数目多的情形,缺陷之一是空间复杂度高。KNN方法得到的分类器是非线性分类器。此方法最早由[Yang & Chute,1994]提出。


支持向量机(SVM)方法
对于某个类别,找出一个分类面,使得这个类别的正例和反例落在这个分类面的两侧,而且这个分类面满足:到最近的正例和反例的间隔相等,而且是所有分类面中与正例(或反例)距离最大的一个分类面。SVM方法最早由[Joachims,1998]引进到文本分类中。SVM方法的长处是应用很少的练习集;毛病是太依附于分类面邻近的正例和反例的地位,具有较大的偏执

你可能感兴趣的:(开源分类器)