Hadoop: 使用多个树(例如采样N个,用于x个随机树)训练大数据(GB级别)并测试

我想编写MapReduce程序(可能需要多轮)来

1. 从大数据中采样N条记录 - 用于X个随机树2. 训练每个树(总共X个)3. 然后在所有这些树上测试记录

顺序执行,

for X = 0 to 199:    - 从大数据中采样N条记录    - 训练这个树    - 对所有测试记录进行测试

这是我的作业问题,所以我只需要一些想法..!

我对以下几点不确定

  1. 在mapper中我能否准确采样N条记录并生成200个小训练数据文件?
  2. 要在所有200个树上测试每条记录,第一个选项我想的是每个reducer会对ALL树运行小测试(测试文件的一部分)。第二个选项我不确定如何实现,即独立运行200个树,测试文件放在分布式缓存中,为每个测试记录进行预测。

回答:

这取决于你的工作方式有多正式。

一个正式的mapper不能准确采样N条记录。因为它无法保持计数器,也不知道总数据大小。一个实际的Hadoop mapper当然可以。但他可能不知道总共会收到多少条记录。

但正如你所说这是作业,我认为你不需要确保是准确的N条记录。特别是,你在进行采样,拥有准确的N条记录有什么好处?

尝试以下方法:

  1. 确定记录的总大小。
  2. 让每个mapper以N/D的概率向每个树(= reducer的key)发出每条记录。
  3. 让reducer在它收到的所有记录上训练树。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注