一、LibSVM
-
LIBSVM是台湾大学林智仁教授等开发的一个简单易用、快速有效的SVM、SVR的开源软件包,有各种语言接口,包括python、matlab和java等。现在有很多的机器学习软件包的SVM,SVR都是基于LIBSVM开发的。软件包里超参优化方法是网格法,即按照超参的范围和步长,遍历所有超参的组合可能,最后在训练集上平均准确率最高的那一组参数作为最佳参数。
-
下载地址选择Download LibSVM,zip 文件点击下载。
二、数据格式和模型参数
- LIBSVM的数据格式如下,一行是一个样本,行首是标签(类别编码,二分类时是-1或者1),然后是特征编码:特征的值一组一组的依次排列,组与组之间用空格分开。这样的数据格式的好处是,某些值为0的特征在数据储存时可以省略,因为有特征编号的存在,读数据的时候知道哪些值应该补全。
label < space > 1: feature 1 < space > 2:Feature 2 < space >...... < space > n: feature n
1 - 模型参数解析
SVM,支持向量机,它最本质的含义其实应该是最优分类超平面,表达式可以由式(1)给出,其中W ∗和b∗为其参数。由于在优化完成之后,最优分类超平面(决策面)可以由少量向量完全支持住(确定),这些向量就被称为支持向量,所以这个算法才叫支持向量机。
支持向量也不是什么新的东西,它就是输入样本特征组成的向量X本身,只是要满足一个关系,二分类且不含松弛因子时的支持向量满足的关系由式(2)给出,yi,Xi 为第i 个样本的标签和特征组成的向量。