如何对数据集进行子采样
Posted
技术标签:
【中文标题】如何对数据集进行子采样【英文标题】:How to Sub-Sample Dataset 【发布时间】:2015-01-31 11:23:43 【问题描述】:我将实现 svm(支持向量机)和其他各种分类算法。 但是我的火车数据集是 10Gb。我怎样才能对它进行子采样? 这是一个非常基本的问题,但我是初学者。
感谢您的帮助
【问题讨论】:
【参考方案1】:您应该做的第一件事是减少样本(行)的数量。 LibSVM 为此提供了一个非常有用的python script。如果您的数据集有 N 个样本并且您想将其下采样到 N - K 个样本,您可以使用上述脚本来: (1) 从数据中随机删除 K 个样本; (2) 使用stratified sampling 从您的数据中删除 K 个样本。推荐最后一个。
减少特征(列)的数量要复杂得多。你不能(你不应该)随机删除它们。为此有很多算法,通常称为数据缩减算法。最常用的是PCA。但使用起来并不简单。
【讨论】:
【参考方案2】:这取决于您的数据。
由于您正在处理一个基本级别的问题,我想最好的方法是大大减少您的样本量。完成后,将特征数量减少到指定大小。
一旦数据集足够小且足够简单,您就可以考虑添加更多适合手头问题的属性或样本。
希望对您有所帮助!
【讨论】:
以上是关于如何对数据集进行子采样的主要内容,如果未能解决你的问题,请参考以下文章