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 这样的多类分类?
正如您在问题中所述,如果您目前已经训练您的模型进行二元分类,那么这就是它要做的全部。您至少可以做两件不同的事情:
- 按照您的建议训练您的模型预测三个 类(
male
、female
、other
)。
- 使用两个二元模型,一个在
human present
/not present
之间进行预测,然后仅将 human present
结果传递给单独的 male
/female
分类器。
很难预先判断哪个更有效,但由于您使用的是 mllib
,所以应该非常直接地尝试一下它们,看看哪个效果更好。确保使用良好的 train/validation/test
拆分进行比较。
我正在使用 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 这样的多类分类?
正如您在问题中所述,如果您目前已经训练您的模型进行二元分类,那么这就是它要做的全部。您至少可以做两件不同的事情:
- 按照您的建议训练您的模型预测三个 类(
male
、female
、other
)。 - 使用两个二元模型,一个在
human present
/not present
之间进行预测,然后仅将human present
结果传递给单独的male
/female
分类器。
很难预先判断哪个更有效,但由于您使用的是 mllib
,所以应该非常直接地尝试一下它们,看看哪个效果更好。确保使用良好的 train/validation/test
拆分进行比较。