hadoop集成支持向量机在Map约简中的应用

qltillow  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(360)

我在mapreduce中为每个数据集建立支持向量机模型(为此我使用libsvm库)。甚至,我有每个模型的测试结果。测试结果文件包含以下详细信息(它给出了测试结果的预测)

+1
-1
+1
+1
..
..
+1

我有这样5个测试文件。现在我想在map reduce中使用多数投票来合并测试结果。在Map阶段,我想把行号作为键的值。如何在Map阶段为所有测试文件提供行号作为值。

46qrfjad

46qrfjad1#

我不知道你是否需要mapreduce来完成这个任务,但是如果你真的需要在mapreduce中完成它,我只会使用map-only作业,甚至不使用输出文件。只使用两个计数器(我没有找到一个 decrCounter 方法和 incrCounter 不能取负值)。下面是一个简单的伪代码:

enum MyCounter = {POSITIVES, NEGATIVES};
map(LongWritable key, Text value, Reporter reporter) {
    if (value.toString().equals("+1")) {
        reporter.incrCounter(MyCounter.POSITIVES, 1);
    } else {
        reporter.incrCounter(MyCounter.NEGATIVES, 1); 
    }
}

那么,如果 POSITIVES > NEGATIVES ,+1胜!
如果不需要mapreduce,只需计算所有文件的行数,例如使用 wc -l 命令,然后计算具有+1的行数,例如使用 grep -c .

相关问题