与原始模型不同的CoreML预测

时间:2018-11-01 17:17:44

标签: scikit-learn coreml coremltools

我已经通过两种方式将受Scikit训练的Gradient BoosterRégressionTree(GBRT)模型集成到一个较大的程序中:

  • 对于iOS,使用CoreMLcoremltools
  • 对于Linux,使用pickle并调用python脚本进行分类。

有时候的预测是不同的,事实并非如此。

请注意,这是一个两类问题:输出为0或1。

为解释起见,我将重点放在两个样本上:样本3321和样本3330:预测这两个样本中的3321均为0类,但在iOS上预测为3330为1,在Linux / python版本上预测为0。

这就是我试图解决的问题:

阅读能力

由于我使用的是GBRT分类器,所以我想看看与每个类相关的概率。它们在两个样本中都不同:

在iOS版本中:

  • 样本3321,类别0,概率[0.00098,0.99901]
  • 第1类样本3330,概率[0.57140,0.42859]

在python中:

  • 样本3321 0类概率[0.000724739274,0.999275261]
  • 样本3330 0类概率[0.45024302,0.54975698]

显然,这些是不同的。

更改分类器

然后我尝试放入一个SVM分类器(其结果仅次于GBRT),该分类器具有以下几方面的概率:两者也不同(预测和概率)

功能值

然后我认为特征值可能不同(从迅速发送到python脚本时有所改变),因此在两种情况下,在调用预测变量之前,我都打印了特征向量:它们的值完全相同最后一位。

问题

知道为什么会这样,还是正常吗?

0 个答案:

没有答案