处理大数据进行随机森林分类

Dealing with big data to perform random forest classification

我目前正在写我的论文,其中涉及处理相当大的数据集:~400 万个观察值和~260 个特征。它是国际象棋游戏的数据集,其中大部分特征是虚拟玩家(每种颜色 130k)。

至于硬件和软件,我在这台电脑上有大约 12GB 的内存。我在 Python 3.5 中完成所有工作,主要使用 pandas 和 scikit-learn 包。

我的问题是显然我无法将这么多数据加载到我的 RAM 中。我想做的是生成虚拟变量,然后将数据库切成大约一千个块,应用随机森林并再次聚合结果。

但是,要做到这一点,我需要能够首先创建虚拟变量,由于内存错误我无法创建虚拟变量,即使我使用稀疏矩阵也是如此。理论上,我可以先分割数据库,然后创建虚拟变量。但是,这样做的结果是我将对不同的切片具有不同的特征,所以我不确定如何汇总这些结果。

我的问题:
1. 你们将如何解决这个问题?尽管在不同的 "chunks" 数据中具有不同的特征,但有没有办法 "merge" 我的估计结果?
2. 也许可以通过租用服务器来完全避免这个问题。是否有此类服务的试用版?我不确定我需要多少 CPU/RAM 才能完成此任务。

感谢您的帮助,我们将不胜感激:)

我建议您试试 CloudxLab。

虽然它不是免费的,但价格实惠(每月 25 美元)。它提供了完整的环境来试验各种工具,如 HDFS、Map-Reduce、Hive、Pig、Kafka、Spark、Scala、Sqoop、Oozie、Mahout、MLLib、Zookeeper、R、Scala 等。许多流行的培训师都在使用 CloudxLab .