如何对数据集进行子采样

时间:2014-12-03 02:16:19

标签: classification weka svm subsampling

我将实现svm(支持向量机)和各种其他分类算法。 但我的火车数据集是10Gb。我该如何对其进行分样? 这是一个非常基本的问题,但我是初学者。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您应该做的第一件事是减少样本(行)的数量。 LibSVM为此提供了非常有用的python script。如果您的数据集有N个样本,并且您想将其下采样到N-K个样本,则可以使用上述脚本:(1)从数据中随机删除K个样本; (2)使用stratified sampling从您的数据中删除K个样本。推荐最后一个。

减少功能(列)的数量要复杂得多。你不能(你不应该)随机删除它们。有许多算法,通常称为数据缩减算法。最常用的是PCA。但它并不是那么简单。

答案 1 :(得分:0)

这取决于您的数据。

由于您正在处理一个基本问题,我想最好的方法是大幅减少样本量。完成后,将功能数量减少到指定大小。

一旦数据集小而且足够简单,您就可以考虑添加更多适合手头问题的属性或样本。

希望这有帮助!