1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何使用PMML部署機(jī)器學(xué)習(xí)模型

      如何使用PMML部署機(jī)器學(xué)習(xí)模型,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

      站在用戶的角度思考問題,與客戶深入溝通,找到科爾沁左翼網(wǎng)站設(shè)計(jì)與科爾沁左翼網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋科爾沁左翼地區(qū)。

      PMML簡介

      預(yù)測模型標(biāo)記語言PMML(Predictive Model Markup Language)是一套與平臺(tái)和環(huán)境無關(guān)的模型表示語言,是目前表示機(jī)器學(xué)習(xí)模型的實(shí)際標(biāo)準(zhǔn)。從2001年發(fā)布的PMML1.1,到2019年最新4.4,PMML標(biāo)準(zhǔn)已經(jīng)由最初的6個(gè)模型擴(kuò)展到了17個(gè)模型,并且提供了挖掘模型(Mining Model)來組合多模型。

      作為一個(gè)開放的成熟標(biāo)準(zhǔn),PMML由數(shù)據(jù)挖掘組織DMG(Data Mining Group)開發(fā)和維護(hù),經(jīng)過十幾年的發(fā)展,得到了廣泛的應(yīng)用,有超過30家廠商和開源項(xiàng)目(包括SAS,IBM SPSS,KNIME,RapidMiner等主流廠商)在它們的數(shù)據(jù)挖掘分析產(chǎn)品中支持并應(yīng)用PMML,這些廠商應(yīng)用詳情見下表:PMML Powered

      PMML標(biāo)準(zhǔn)介紹

      PMML是一套基于XML的標(biāo)準(zhǔn),通過 XML Schema 定義了使用的元素和屬性,主要由以下核心部分組成:

      • 數(shù)據(jù)字典(Data Dictionary),描述輸入數(shù)據(jù)。

      • 數(shù)據(jù)轉(zhuǎn)換(Transformation Dictionary和Local Transformations),應(yīng)用在輸入數(shù)據(jù)字段上生成新的派生字段。

      • 模型定義 (Model),每種模型類型有自己的定義。

      • 輸出(Output),指定模型輸出結(jié)果。

      PMML預(yù)測過程符合數(shù)據(jù)挖掘分析流程:
      如何使用PMML部署機(jī)器學(xué)習(xí)模型

      PMML優(yōu)點(diǎn)

      • 平臺(tái)無關(guān)性。PMML可以讓模型部署環(huán)境脫離開發(fā)環(huán)境,實(shí)現(xiàn)跨平臺(tái)部署,是PMML區(qū)別于其他模型部署方法最大的優(yōu)點(diǎn)。比如使用Python建立的模型,導(dǎo)出PMML后可以部署在Java生產(chǎn)環(huán)境中。

      • 互操作性。這就是標(biāo)準(zhǔn)協(xié)議的最大優(yōu)勢,實(shí)現(xiàn)了兼容PMML的預(yù)測程序可以讀取其他應(yīng)用導(dǎo)出的標(biāo)準(zhǔn)PMML模型。

      • 廣泛支持性。已取得30余家廠商和開源項(xiàng)目的支持,通過已有的多個(gè)開源庫,很多重量級(jí)流行的開源數(shù)據(jù)挖掘模型都可以轉(zhuǎn)換成PMML。

      • 可讀性。PMML模型是一個(gè)基于XML的文本文件,使用任意的文本編輯器就可以打開并查看文件內(nèi)容,比二進(jìn)制序列化文件更安全可靠。

      PMML開源類庫

      模型轉(zhuǎn)換庫,生成PMML:

      • Python模型:

        • Nyoka,支持Scikit-Learn,LightGBM,XGBoost,Statsmodels和Keras。https://github.com/nyoka-pmml/nyoka

        • JPMML系列,比如JPMML-SkLearn、JPMML-XGBoost、JPMML-LightGBM等,提供命令行程序?qū)С瞿P偷絇MML。https://github.com/jpmml

      • R模型:

        • R pmml包:https://cran.r-project.org/web/packages/pmml/index.html

        • r2pmml:https://github.com/jpmml/r2pmml

        • JPMML-R:提供命令行程序?qū)С鯮模型到PMML,https://github.com/jpmml/jpmml-r

      • Spark:

        • Spark mllib,但是只是模型本身,不支持Pipelines,不推薦使用。

        • JPMML-SparkML,支持Spark ML pipleines。https://github.com/jpmml/jpmml-sparkml

      模型評(píng)估庫,讀取PMML:

      • Java:

        • JPMML-Evaluator,純Java的PMML預(yù)測庫,開源協(xié)議是AGPL V3。https://github.com/jpmml/jpmml-evaluator

        • PMML4S,使用Scala開發(fā),同時(shí)提供Scala和Java API,接口簡單好用,開源協(xié)議是常用的寬松協(xié)議Apache 2。https://github.com/autodeployai/pmml4s

      • Python:

        • PyPMML,PMML的Python預(yù)測庫,PyPMML是PMML4S包裝的Python接口。https://github.com/autodeployai/pypmml

      • Spark:

        • JPMML-Evaluator-Spark,https://github.com/jpmml/jpmml-evaluator-spark

        • PMML4S-Spark,https://github.com/autodeployai/pmml4s-spark

      • PySpark:

        • PyPMML-Spark,PySpark中預(yù)測PMML模型。https://github.com/autodeployai/pypmml-spark

      • REST API:

        • AI-Serving,同時(shí)為PMML模型提供REST API和gRPC API,開源協(xié)議Apache 2。https://github.com/autodeployai/ai-serving

        • Openscoring,提供REST API,開源協(xié)議AGPL V3。https://github.com/openscoring/openscoring

      PMML演示

      構(gòu)建模型,完整Jupyter Notebook,請(qǐng)參考:xgb-iris-pmml.ipynb

      1. 使用Iris數(shù)據(jù)構(gòu)建一個(gè)XGBoost模型,在建模之前對(duì)浮點(diǎn)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,利用Scikit-learn中的Pipeline:

      from sklearn import datasets
      from sklearn.model_selection import train_test_split
      from sklearn.pipeline import Pipeline
      from sklearn.preprocessing import StandardScaler
      import pandas as pd
      from xgboost import XGBClassifier
      
      seed = 123456
      
      iris = datasets.load_iris()
      target = 'Species'
      features = iris.feature_names
      iris_df = pd.DataFrame(iris.data, columns=features)
      iris_df[target] = iris.target
      
      X, y = iris_df[features], iris_df[target]
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=seed)
      
      pipeline = Pipeline([
          ('scaling', StandardScaler()), 
          ('xgb', XGBClassifier(n_estimators=5, seed=seed))
      ])
      
      pipeline.fit(X_train, y_train)
      y_pred = pipeline.predict(X_test)
      y_pred_proba = pipeline.predict_proba(X_test)
      1. 使用Nyoka,把Pipeline導(dǎo)出PMML:

      from nyoka import xgboost_to_pmml
      xgboost_to_pmml(pipeline, features, target, "xgb-iris.pmml")
      1. 使用PyPMML來驗(yàn)證PMML預(yù)測值是否和原生Python模型一致:

      from pypmml import Model
      model = Model.load("xgb-iris.pmml")
      model.predict(X_test)

      讀取PMML,進(jìn)行預(yù)測。以下使用PMML4S的Scala接口,您也可以使用它的Java接口,使用非常簡單。完整程序,在以下Zeppelin Notebook中:https://github.com/aipredict/ai-deployment/blob/master/deploy-ml-using-pmml/pmml4s-demo.json

      因?yàn)镚ithub不支持瀏覽Zeppelin Notebook,可以訪問以下地址瀏覽:https://www.zepl.com/viewer/github/aipredict/ai-deployment/master/deploy-ml-using-pmml/pmml4s-demo.json

      import org.pmml4s.model.Model
      val model = Model.fromFile("xgb-iris.pmml")
      val result = model.predict(Map("sepal length (cm)" -> 5.7, "sepal width (cm)" -> 4.4, "petal length (cm)" -> 1.5, "petal width (cm)" -> 0.4))

      PMML缺點(diǎn)

      PMML雖然有很多優(yōu)點(diǎn),但也并非毫無缺點(diǎn),比如:

      • 支持不了所有的數(shù)據(jù)預(yù)處理和后處理操作。雖然PMML已經(jīng)支持了幾乎所有的標(biāo)準(zhǔn)數(shù)據(jù)處理方式,但是對(duì)用戶一些自定義操作,還缺乏有效的支持,很難放到PMML中。

      • 模型類型支持有限。特別是缺乏對(duì)深度學(xué)習(xí)模型的支持,PMML下一版5.0會(huì)添加對(duì)深度模型的支持,目前Nyoka可以支持Keras等深度模型,但生成的是擴(kuò)展的PMML模型。

      • PMML是一個(gè)松散的規(guī)范標(biāo)準(zhǔn),有的廠商生成的PMML有可能不太符合標(biāo)準(zhǔn)定義的Schema,并且PMML規(guī)范允許廠商添加自己的擴(kuò)展,這些都對(duì)使用這些模型造成了一定障礙。

      關(guān)于如何使用PMML部署機(jī)器學(xué)習(xí)模型問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


      當(dāng)前名稱:如何使用PMML部署機(jī)器學(xué)習(xí)模型
      網(wǎng)頁URL:http://www.ef60e0e.cn/article/pjpcjj.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        资兴市| 大港区| 三台县| 女性| 唐海县| 邮箱| 安陆市| 灯塔市| 双牌县| 连州市| 分宜县| 义马市| 美姑县| 康平县| 云阳县| 枞阳县| 清原| 怀柔区| 青阳县| 长春市| 昆山市| 宣汉县| 靖州| 濉溪县| 长乐市| 灯塔市| 乐陵市| 将乐县| 柳江县| 咸宁市| 海原县| 宁阳县| 剑河县| 克什克腾旗| 广丰县| 潼南县| 丰台区| 东台市| 锦州市| 南岸区| 年辖:市辖区|