非线性支持向量机测试数据集

8
我正在实现一个非线性SVM,希望在简单的不可线性分离数据上测试我的实现。谷歌没有帮助我找到我想要的。你能告诉我在哪里可以找到这样的数据吗?或者,如何手动生成这种数据? 谢谢。
4个回答

5
好的,SVM是二分类分类器,即这些分类器将数据放置在单个决策边界的两侧。
因此,我建议使用仅由两个类组成的数据集(这不是必需的,因为当然可以通过在数据上多次(串行)通过分类器来分离多个类别,但在初始测试期间这样做很麻烦)。
例如,您可以使用Scott答案中链接的鸢尾花数据集;它由三个类组成,第一类与第二和第三类线性可分;第二和第三类不能线性分离。如果要使用此数据集,为了方便起见,您可能更喜欢删除Class I(大约前50个数据行),这样剩下的就是一个两类系统,在该系统中,其余两个类别不能线性分离。
鸢尾花数据集非常小(150 x 4,或50行/类x四个特征)-取决于您使用SVM原型测试的进程,这可能正是您想要的,或者您可能需要一个更大的数据集。
一个有趣的数据集家族,只包含两个类别且明显是非线性可分的,是由超级约会网站 eHarmony(无任何关联)提供的匿名数据集。除了鸢尾花数据外,我喜欢使用这些数据集进行SVM原型评估,因为它们是大型数据集,具有相当多的特征,但仍然只包含两个非线性可分的类别。
我知道可以从两个地方检索到此数据。第一个网站有一个单一的数据集(PCI代码下载,第9章,matchmaker.csv),由500个数据点(行)和六个特征(列)组成。虽然这个数据集更简单易用,但数据基本上是“原始”形式,需要一些处理才能使用。
这份数据的第二来源包含两个eHarmony数据集,其中一个由超过50万行和59个特征组成。此外,这两个数据集经过了大量处理,只需要对特征进行常规缩放即可将其馈送到您的SVM中。

最后两个链接已经失效了,我还能从哪里获取eHarmony数据集? - gavinmh

2
您需要的特定数据集将高度依赖于您选择的核函数,因此最简单的方法似乎是自己创建一个玩具数据集。
一些有用的想法:
  • 同心圆
  • 螺旋形类别
  • 嵌套香蕉形类别
如果您只是想要一个不可线性分离的随机数据集,我建议使用鸢尾花数据集。 这是一个多元数据集,其中至少有几个相关类别是不可线性分离的。
希望这可以帮助您!

1

你可以从简单的数据集开始,比如Iris或two-moons,它们都是线性不可分的。一旦你满意了,就可以转向更大的数据集,例如UCI ML repository, classification datasets

一定要与标准SVM求解器(如libSVM和SVM-light)进行比较和基准测试。


0
如果您使用Python进行编程,可以使用sklearn.datasets.samples_generator包中的一些函数手动生成嵌套月形数据集、同心圆数据集等。这里是这些数据集的绘图页面。
如果您不想手动生成数据集,可以参考这个网站,在“形状集”部分,您可以直接下载这些数据集并对其进行测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接