Spark 二进制分类预测准确性

Spark binary classifications predictions accuracy

我正在使用 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);
            }
        });

我有一个问题,如果一张图片没有人怎么办?例如一张花的图片。无论如何,我都会得到男性或女性的结果。有没有办法查看当前决策的准确性?例如,如果我们尝试对花卉图片进行预测,则此向量为 30% 的男性。或者我需要使用像 male/female/others 这样的多类分类?

正如您在问题中所述,如果您目前已经训练您的模型进行二元分类,那么这就是它要做的全部。您至少可以做两件不同的事情:

  1. 按照您的建议训练您的模型预测三个 类(malefemaleother)。
  2. 使用两个二元模型,一个在 human present/not present 之间进行预测,然后仅将 human present 结果传递给单独的 male/female分类器。

很难预先判断哪个更有效,但由于您使用的是 mllib,所以应该非常直接地尝试一下它们,看看哪个效果更好。确保使用良好的 train/validation/test 拆分进行比较。