首页 理论教育 Python中使用SVM的基本方法

Python中使用SVM的基本方法

时间:2023-07-02 理论教育 版权反馈
【摘要】:Python中常用的SVM包有由台湾大学林智仁老师开发的LIBSVM和LIBLINEAR以及sklearn中的SVM库等。LIBSVM和LIBLINEAR是两个不同的包,需要分别进行下载和安装。但是LIBLINEAR针对线性分类进行了优化,在线性分类应用中,效率要比LIBSVM高许多。当样本数据量在10万规模以上时,如果LIBSVM处理的效果变差,就要考虑想办法用LIBLINEAR模型或者换其他机器学习算法了。采用CSV数据格式的数据,可以当作文本文件读入,通过Python切片操作获取其中需要的内容。sklearn中的SVM包括分类、回归和异常值检测几个部分。

Python中使用SVM的基本方法

Python中常用的SVM包有由台湾大学林智仁老师开发的LIBSVM和LIBLINEAR以及sklearn中的SVM库等。其中,sklearn中的SVM库的底层计算采用LIBSVM和LIBLINEAR来实现,模块sklearn.svm.SVC和sklearn.svm.LinearSVC分别对应着LIBSVM和LIBLINEAR。所以在应用上,这些工具具有很多相似之处,当需要查找一些细节内容时,可以参考LIBSVM和LIBLINEAR文档。

LIBSVM和LIBLINEAR是两个不同的包,需要分别进行下载和安装。LIBSVM实现了整套的SVM模型,包括使用核函数来训练非线性分类SVM,也包括训练线性分类SVM。LIBLINEAR只针对线性分类场景,支持线性SVM和逻辑回归(Logistic Regression)模型,无法通过定义核函数实现非线性分类器。但是LIBLINEAR针对线性分类进行了优化,在线性分类应用中,效率要比LIBSVM高许多。当样本数据量在10万规模以上时,如果LIBSVM处理的效果变差,就要考虑想办法用LIBLINEAR模型或者换其他机器学习算法了。

SVM的应用过程一般如下:

(1)将数据转换为SVM包使用的格式,包括将分类属性转换为数值属性;

(2)对数据进行预处理,比如进行标准化或归一化处理;

(3)优先考虑使用RBF核函数;(www.xing528.com)

(4)使用交叉验证找到最佳参数C和γ;

(5)使用最佳参数C和γ重新训练整个训练数据集,再重新测试。

在SVM数据格式方面,对于sklearn来说,样本数据支持稠密和稀疏两种输入形式:稠密数据直接使用numpy.ndarray或用numpy.asarray,以numpy的数组形式输入;稀疏数据格式则使用scipy.sparse。稀疏数据是指数据元素中大部分都是0的数据。这样的数据在存储时,为了提高效率,会使用特殊的格式。scipy.sparse模块专门用于处理稀疏数据存储问题。采用CSV(comma-separated values)数据格式的数据,可以当作文本文件读入,通过Python切片操作获取其中需要的内容。

sklearn中的SVM包括分类、回归和异常值检测几个部分。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈