用libsvm做分类的几种实例

       最近学习了支持向量机,并且学习使用SVM的工具箱,下面推荐libsvm工具箱

       libsvm是台湾大学林智仁(Chih-Jen Lin)博士等开发设计的一个操作简单、易于使用、快速有效的通用 SVM 软件包,可以解决分类问题(包括 C−SVC 、ν−SVC ), 回归问题(包括 ε − SVR 、v− SVR )  以及分布估计(one − class − SVM ) 等问题,提供了线性、多项式、径向基和 S 形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。libsvm 是一个开源的软件包,我主要是使用java进行文本挖掘。

      libsvm的开源包可以从 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 中下载,

      java版本的工具箱,打开libsvm-3.14版本中的/java文件夹,可以找到一个测试文件svm_toy.java,带界面的,能可视化测试二维空间的分类数据,这里我选取了5中比较有代表性的数据进行实验。

 (1)第一种是二类数据没有交叉的不部分,支持向量机线性可分的情况

用libsvm做分类的几种实例_第1张图片

分类结果如下

用libsvm做分类的几种实例_第2张图片

(2)对于二分类问题数据集少量有交叉的情况,即存在噪声的情况,

用libsvm做分类的几种实例_第3张图片

分类结果如下,可以看到SVM算法仍然有很好的效果

用libsvm做分类的几种实例_第4张图片

(3)对于线性不可分的情况,svm一般是变换到高维空间处理,

用libsvm做分类的几种实例_第5张图片

分类结果如下:

用libsvm做分类的几种实例_第6张图片

(4)对于多类别的分类问题,svm通常是转换成多个二分类问题了来处理,

用libsvm做分类的几种实例_第7张图片

分类结果如下:

用libsvm做分类的几种实例_第8张图片

你可能感兴趣的:(机器学习,数据挖掘)