hadoop:用多棵树(比如说n,比如x randomtree)训练大数据(以gb为单位)并进行测试

esyap4oy  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

我想写mapreduce(可能是多轮!)至

1. Sample N records from Large data - for say X RandomTree
2. Train each tree (totally X)
3. And then test records on all these trees

按顺序,

for X = 0 to 199:
    - sample N records from Large data
    - Train this tree
    - test for all test records

这是我的作业问题,所以我只需要一个主意。。!
我不太确定
在mapper中,我可以精确地采样n个记录并生成200个小的训练数据文件吗?
为了测试所有200条记录,我首先想到了每个reducer将对所有树运行小测试(测试文件的一部分)。我不确定的第二种方法是,独立运行200树,测试文件在分布式缓存中,预测每个测试记录。

gojuced7

gojuced71#

这取决于你工作的正式程度。
一个正式的Map器不能精确地对n个记录进行采样。因为它不能保留计数器,而且它不知道总的数据大小。hadoop中一个实用的Map器当然可以。但他可能不知道他总共会收到多少张唱片。
但正如你所说,这是一个家庭作业,我不认为你需要确保它完全是n。特别是,在采样时,正好有n个记录有什么好处?
请尝试以下操作:
确定记录的总大小。
让每个Map器以n/d的可能性向每个树(=reducer的键)发出每条记录。
让减速机根据它收到的所有记录来训练这棵树。

相关问题