更新 scikit 模型,使其与最新版本兼容

Update scikit model so it is compatible with newest version

我对 scikit 模型和(复古)兼容性有疑问。

我在 Python 3.5 中从 scikit-learn 0.21.2 创建了一个模型(使用 joblib 保存),然后我使用包 shap 版本 0.30 对其进行了分析。自从我升级到 Ubuntu 20.04,我有了 Python 3.8(以及 scikit-learn 和 shap 的更新版本)。 由于新的包版本我无法用 Python 3.8 加载它们,所以我用 Py3.5 和原始包版本创建了一个虚拟环境。

现在我的问题是:有没有办法用 joblib 重新转储模型,这样我也可以用 Python 3.8 打开它们?我想用最新版本的包 shap 重新分析模型(当然它有一个 scikit 版本要求会破坏 joblib 加载)。

或者,我还有哪些其他选择? (我唯一不想的就是重新训练模型)。

scikit-learn 中没有标准解决方案。如果你的机型支持,可以试试sklearn-json.

尽管这不能解决您当前的问题,但您以后可以将模型保存为兼容性问题较少的格式 – 请参阅 scikit-learn 的模型持久性页面中的 Interoperable formats 部分。