我正在使用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%的男性。或者我需要使用多类分类,如男/女/其他?
答案 0 :(得分:0)
正如您在问题中所说的那样,如果您目前正在训练您的模型进行二元分类,那么这就是他们所做的一切。你至少可以做两件事:
male
,female
,other
)。human present
/ not present
之间进行预测,然后仅将human present
结果传递给单独的male
/ female
分类器。 很难预先告诉哪些更有效,但是既然你正在使用mllib
,就应该非常直接地尝试它们并看看哪个效果更好。确保使用良好的train/validation/test
拆分进行比较。