jpmml/sklearn2pmml

Python library for converting Scikit-Learn pipelines to PMML

解決的問題

SkLearn2PMML 解決了原生 Scikit-Learn 評估器缺乏可移植性的問題。由於 Scikit-Learn 模型通常缺乏足夠的元資料(例如特徵名稱),在不同環境之間遷移非常困難。此工具允許使用者將 Scikit-Learn 管道轉換為預測模型標記語言(PMML)格式,從而無論原始訓練平台為何,都能在各種環境中部署模型。

工作原理

該套件作為 JPMML-SkLearn 庫的 Python 封裝。它可透過實用函數或命令列介面,直接將擬合的評估器物件或 pickle 檔案轉換為 PMML 檔案。

為增強可移植性與功能,它提供 PMMLPipeline,一個擴展標準 Scikit-Learn 管道的元評估器。此擴展支援:

  • 元資料收集:在 fit 過程中自動捕獲特徵與標籤名稱。
  • 後處理:透過特定轉換器屬性對預測結果應用轉換。
  • 模型驗證:在部署時嵌入樣本資料以進行自我檢查。
  • 自訂:直接修改 PMML XML 片段。

此外,該套件還提供專門面向 PMML 的轉換器與預測器(例如 ExpressionTransformerCategoricalDomainGBDTLRClassifier),以處理複雜資料類型與集成方法。

適用對象

使用 Scikit-Learn 建構模型,但需在要求 PMML 以實現互操作性與可移植性的環境中部署模型的資料科學家與機器學習工程師。

主要亮點

  • 廣泛相容:支援 Scikit-Learn 0.17 及以上版本。
  • 安全反序列化:使用自訂 Java 組件讀取 pickle 檔案,使處理未經審核的檔案更安全。
  • 增強元資料:捕獲特徵與目標名稱,確保模型具備自描述性。
  • 彈性部署:同時支援 Python 套件 API 與獨立命令列工具。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案