我們首先看代碼
# -*- 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,就能跑出結果來。