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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python之pypmml:pypmml的简介、安装、使用方法之详细攻略

發(fā)布時(shí)間:2025/3/21 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之pypmml:pypmml的简介、安装、使用方法之详细攻略 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python之pypmml:pypmml的簡介、安裝、使用方法之詳細(xì)攻略

?

?

目錄

pypmml的簡介

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

2、PMML的缺點(diǎn)

pypmml的安裝

pypmml的使用方法

1、基礎(chǔ)案例

2、利用XGBoost模型對Iris數(shù)據(jù)訓(xùn)練并轉(zhuǎn)為PMML文件,載入并實(shí)現(xiàn)預(yù)測


?

?

pypmml的簡介

? ? ? ?pypmml是一個(gè)python pmml評分庫,它實(shí)際上是用于PMML4S的python api。pmml經(jīng)常是跨平臺(tái)給java調(diào)用,借用PMML模型進(jìn)行上線測試,即采用Python語言做模型訓(xùn)練,線上采用 Java 載入模型做預(yù)測。離線部分負(fù)責(zé)模型訓(xùn)練和導(dǎo)出模型,線上導(dǎo)入模型并且做預(yù)測。當(dāng)然特征工程部分主要做特征變換,例如 分桶,單值編碼,歸一化等。
? ? ? ?預(yù)測模型標(biāo)記語言PMML(Predictive Model Markup Language)是一套與平臺(tái)和環(huán)境無關(guān)的模型表示語言,是目前表示機(jī)器學(xué)習(xí)模型的實(shí)際標(biāo)準(zhǔn)。PMML是一種可以呈現(xiàn)預(yù)測分析模型的事實(shí)標(biāo)準(zhǔn)語言。標(biāo)準(zhǔn)東西的好處就是,各種開發(fā)語言都可以使用相應(yīng)的包,把模型文件轉(zhuǎn)成這種中間格式,而另外一種開發(fā)語言,可以使用相應(yīng)的包導(dǎo)入該文件做線上預(yù)測。
? ? ? ? ?從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,
? ? ? ?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é)果。

?

1、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è)開源庫,很多重量級流行的開源數(shù)據(jù)挖掘模型都可以轉(zhuǎn)換成PMML。
  • 可讀性。PMML模型是一個(gè)基于XML的文本文件,使用任意的文本編輯器就可以打開并查看文件內(nèi)容,比二進(jìn)制序列化文件更安全可靠。

?

2、PMML的缺點(diǎn)

  • 數(shù)據(jù)處理操作有限。支持不了所有的數(shù)據(jù)預(yù)處理和后處理操作。雖然PMML已經(jīng)支持了幾乎所有的標(biāo)準(zhǔn)數(shù)據(jù)處理方式,但是對用戶一些自定義操作,還缺乏有效的支持,很難放到PMML中。
  • 模型類型支持有限。特別是缺乏對深度學(xué)習(xí)模型的支持,PMML下一版5.0會(huì)添加對深度模型的支持,目前Nyoka可以支持Keras等深度模型,但生成的是擴(kuò)展的PMML模型。
  • PMML是一個(gè)松散的規(guī)范標(biāo)準(zhǔn),有的廠商生成的PMML有可能不太符合標(biāo)準(zhǔn)定義的Schema,并且PMML規(guī)范允許廠商添加自己的擴(kuò)展,這些都對使用這些模型造成了一定障礙。

?

?

參考文章:https://zhuanlan.zhihu.com/p/79197337

?

pypmml的安裝

pip install pypmml
pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple pypmml

?

?

?

?

pypmml的使用方法

1、基礎(chǔ)案例

heart_data = pandas.read_csv("heart.csv") #用Mapper定義特征工程 mapper = DataFrameMapper([(['sbp'], MinMaxScaler()),(['tobacco'], MinMaxScaler()),('ldl', None),('adiposity', None),(['famhist'], LabelBinarizer()),('typea', None),('obesity', None),('alcohol', None),(['age'], FunctionTransformer(np.log)), ]) #用pipeline定義使用的模型,特征工程等 pipeline = PMMLPipeline([('mapper', mapper),("classifier", linear_model.LinearRegression()) ])pipeline.fit(heart_data[heart_data.columns.difference(["chd"])], heart_data["chd"]) #導(dǎo)出模型文件 sklearn2pmml(pipeline, "lrHeart.xml", with_repr = True)

?

?

2、利用XGBoost模型對Iris數(shù)據(jù)訓(xùn)練并轉(zhuǎn)為PMML文件,載入并實(shí)現(xiàn)預(yù)測

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 XGBClassifierseed = 123iris = datasets.load_iris() target = 'Species' features = iris.feature_names iris_df = pd.DataFrame(iris.data, columns=features) iris_df[target] = iris.targetX, 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)from nyoka import xgboost_to_pmml xgboost_to_pmml(pipeline, features, target, "xgb-iris.pmml")from pypmml import Model model = Model.load("xgb-iris.pmml") model.predict(X_test)

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Python之pypmml:pypmml的简介、安装、使用方法之详细攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。