python 調用pmml模型文件


我們首先看代碼

# -*- coding: utf-8 -*-
"""
Created on Wed Oct 20 15:04:12 2021

@author: chenguimei
"""

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 = 123
 
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)
 

#生成pmml文件
from nyoka import xgboost_to_pmml
xgboost_to_pmml(pipeline, features, target, "xgb-iris.pmml")

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

最后結果:

 

 

 但是,

但是。。。。

想要跑通上面這段代碼,卻踩了不少坑

首先執行

model = Model.load("xgb-iris.pmml")

會報錯,如果報的是FileNotFoundError: [WinError 2] 系統找不到指定的文件,你以為是路徑錯了,其實不是,解決方法是安裝Java1.8版本,注意不要安裝錯了,Java官網可能有Java17版本,切記不要安裝,只能安裝Java1.8版本,在官網找不到,就百度找安裝包。安裝之后要注意設置環境變量,設置教程https://www.cnblogs.com/maoning/p/10701349.html,注意,不管是個人賬號,還是系統賬號,都要設置環境變量。

把這些東西做好,重啟python,就能跑出結果來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM