日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[机器学习] PMML实现模型上线

發布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [机器学习] PMML实现模型上线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習在用于產品的時候,經常會遇到跨平臺的問題。

比如用Python基于一系列的機器學習庫訓練了一個模型,但是有時候其他的產品和項目想把這個模型集成進去,但是這些產品很多只支持某些特定的生產環境比如Java,為了上一個機器學習模型去大動干戈修改環境配置很不劃算,此時我們就可以考慮用預測模型標記語言(Predictive Model Markup Language,以下簡稱PMML)來實現跨平臺的機器學習模型部署。

?

一. PMML概述

PMML是數據挖掘的一種通用的規范,它用統一的XML格式來描述我們生成的機器學習模型。這樣無論你的模型是sklearn,R還是Spark MLlib生成的,我們都可以將其轉化為標準的XML格式來存儲。當我們需要將這個PMML的模型用于部署的時候,可以使用目標環境的解析PMML模型的庫來加載模型,并做預測。

可以看出,要使用PMML,需要兩步的工作,都需要相關的庫支持。

  • 將離線訓練得到的模型轉化為PMML模型文件
  • 將PMML模型文件載入在線預測環境,進行預測
  • ?

    二. PMML模型的生成和加載相關類庫

    大部分模型都可以用PMML的方式實現

    • jpmml的說明文檔:GitHub - jpmml/jpmml-evaluator: Java Evaluator API for PMML
    • Jpmml支持的轉換語言,主流的機器學習語言都支持了;
    • 從下圖可以看到,它支持R、python和spark、xgboost、lightgbm等模型的轉換,用起來非常方便;


    ?

    三、工具的工程實踐:

    1. Python模型上線,使用了模型轉換成PMML上線方法

    如果我們使用的是sklearn,那么可以使用sklearn2pmml這個python庫來做模型文件的生成,這個庫安裝很簡單,使用"pip install sklearn2pmml"即可。python-sklearn里面的模型都支持,也支持xgboost,并且PCA,歸一化可以封裝成preprocess轉換成PMML,所以調用起來很方便。特別需要注意的是:缺失值的處理會影響到預測結果,大家可以可以看一下, 用PMML方式預測,模型預測一條記錄速度是1ms,可以用這個預測來預估一下根據你的數據量,整體的速度有多少

    2. 如果使用的是Spark MLlib, 這個庫有一些模型已經自帶了保存PMML模型的方法,可惜并不全。如果是R,則需要安裝包"XML"和“PMML”。此外,JAVA庫JPMML可以用來生成R,SparkMLlib,xgBoost,Sklearn的模型對應的PMML文件。github地址是:https://github.com/jpmml/jpmml。加載PMML模型需要目標環境支持PMML加載的庫,如果是JAVA,則可以用JPMML來加載PMML模型文件。

    ?

    ?

    ?

    ?

    https://zhuanlan.zhihu.com/p/39021238

    ?

    ?

    總結

    以上是生活随笔為你收集整理的[机器学习] PMML实现模型上线的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。