Spark二进制分类预测准确性

时间:2017-03-28 14:34:41

标签: java apache-spark classification prediction

我正在使用Spark mlib进行二进制分类。我在3000张照片上训练了一个模型,可以预测它是男性还是女性1/0。

final NaiveBayesModel model = NaiveBayes.train(training.rdd(), 1.0);
JavaRDD predictions = test.map(new Function<Vector, Double>() {
            @Override
            public Double call(Vector p) {
                return model.predict(p);
            }
        });

我有一个问题,如果图片中没有人怎么办?例如一朵花的图片。无论如何,我将获得男性或女性的结果。有没有办法看到当前决策的准确性?例如,如果我们尝试对花卉图片进行预测,则此Vector为30%的男性。或者我需要使用多类分类,如男/女/其他?

1 个答案:

答案 0 :(得分:0)

正如您在问题中所说的那样,如果您目前正在训练您的模型进行二元分类,那么这就是他们所做的一切。你至少可以做两件事:

  1. 按照您的建议训练您的模型预测三个班级(malefemaleother)。
  2. 使用两个二进制模型,一个在human present / not present之间进行预测,然后仅将human present结果传递给单独的male / female分类器。
  3. 很难预先告诉哪些更有效,但是既然你正在使用mllib,就应该非常直接地尝试它们并看看哪个效果更好。确保使用良好的train/validation/test拆分进行比较。