0

I'm going to implement svm(support vector machines) and various other classifying algorithms. But my train dataset is of 10Gb. How can I sub-sample it ? This is a very basic level question but I'm a beginner.

Thank for the help

4

2 回答 2

1

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

减少特征(列)的数量要复杂得多。你不能(你不应该)随机删除它们。为此有很多算法,通常称为数据缩减算法。最常用的一种是PCA。但使用起来并不简单。

于 2014-12-03T21:41:40.370 回答
0

这取决于您的数据。

由于您正在研究一个基本级别的问题,我想最好的开始方法是大大减少您的样本量。完成后,将特征数量减少到指定大小。

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

希望这可以帮助!

于 2014-12-03T03:14:18.597 回答