加载的LGBM模型如何在不同的机器上产生不同的预测?

时间:2019-03-27 12:37:20

标签: python scikit-learn

我以前用pickle保存了LGBM模型。该程序从给定的网页中获取内容,然后对其进行分类。

加载的模型在我的本地计算机(台式机和笔记本电脑)上运行良好。但是,当它在EC2实例上运行时,它会给出毫无意义的预测。什么问题会导致这种情况?

  • 三个机器(台式机,笔记本电脑和EC2实例)中的模型完全相同
  • 模型的输入数据(经过预处理后)是相同的
  • 代码相同(由Git复制)
  • 这些预测在本地计算机上确实有意义
  • numpyscikit-learn和其他软件包版本在所有三台计算机中都是相同的

我通过以下方式加载模型:

self.mapper = pickle.load(open(model_path + "mapper.pkl", "rb"))
self.model = pickle.load(open(model_path + "model.pkl", "rb"))

并做一些预测,以防万一(抱歉,代码混乱,这部分不是我写的)

data = self.pipeline.transform([{"url_name": url}])
df = pd.DataFrame({"text": [data]})

processed = self.mapper.transform(df)
processed = [a[0] for a in processed]

ws_results = OrderedDict()
for p1, p2 in sorted(zip(self.classes, self.model.predict_proba(processed).tolist()[0]), reverse=True, key=lambda x: x[1])[:3]:
            ws_results[p1] = round(p2, 3)

0 个答案:

没有答案