Apache spark 仅当阈值大于该值时,Spark MLlib预测

Apache spark 仅当阈值大于该值时,Spark MLlib预测,apache-spark,machine-learning,apache-spark-mllib,Apache Spark,Machine Learning,Apache Spark Mllib,我有一个多类分类(38类)问题,为了解决这个问题,我在Spark ML中实现了一个管道。这就是我生成模型的方式 val nb = new NaiveBayes() .setLabelCol("id") .setFeaturesCol("features") .setThresholds(Seq(1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1

我有一个多类分类(38类)问题,为了解决这个问题,我在Spark ML中实现了一个管道。这就是我生成模型的方式

val nb = new NaiveBayes()
  .setLabelCol("id")
  .setFeaturesCol("features")
  .setThresholds(Seq(1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25).toArray)

val pipeline = new Pipeline()
  .setStages(Array(stages, assembler, nb))

val model = pipeline.fit(trainingSet)
我希望我的模型能够预测一个类,前提是它的置信度(概率)大于0.8%

为了更好地理解阈值参数的含义,我在Spark文档中搜索了很多,但我找到的唯一相关信息是:

多类分类中阈值的调整 预测每个类。数组的长度必须等于 类,值>0,但最多一个值可以为0。 预测p/t值最大的类别,其中p为原始值 该类的概率,t是该类的阈值

这就是我的阈值为1.25的原因

问题是,无论我为阈值插入的值是多少,它都不会影响我的预测

您知道是否有可能只预测置信度(概率)大于特定阈值的类

另一种方法是只选择概率大于该阈值的预测,但我希望可以使用该框架实现这一点


谢谢。

如果为每个类设置相同的值,为什么您会期望任何更改?好吧,鉴于文档没有深入解释阈值的概念,我希望每个类只预测概率大于0.8%的值,如果概率较低,我不想预测该值