【问题标题】:Convert XGBoost to PMML in python在 python 中将 XGBoost 转换为 PMML
【发布时间】:2019-10-13 18:29:55
【问题描述】:

我有以下数据框

train_x:

col1 col2 col3
1      4    89
0.4    1.6  14
100    678  970

train_y:

target
0
0
1

我想将 xgboost 模型转换为 pmml,如下所示:

from sklearn2pmml import sklearn2pmml, PMMLPipeline
from sklearn_pandas import DataFrameMapper
from xgboost.sklearn import XGBClassifier
pipeline = PMMLPipeline([("mapper", DataFrameMapper([
                                    ([num_features,SimpleImputer(strategy='median')],
                                     [num_features,StandardScaler()],
                                     [cat_features,SimpleImputer(strategy='constant', fill_value='missing')],
                                     [cat_features,OneHotEncoder(sparse=False, handle_unknown='ignore')])
                                     ])),
                         ("classifier", XGBClassifier(**best_params,n_jobs=-1))
])

并安装管道

pipeline.fit(train_x, train_y)

但我收到以下错误

TypeError: _build_feature() 接受 2 到 3 个位置参数,但给出了 4 个**

【问题讨论】:

    标签: python scikit-learn sklearn-pandas pmml


    【解决方案1】:

    TypeErrorDataFrameMapper.fit 方法引发,因为您指定了无效的列到转换器的映射。

    您应该指定一个 双元素 元组列表 ([(), ()]),但现在您提供的是一个单例列表,其中包含一个元组,其中包含 四个 列表 ([([], [], [], [])])。

    【讨论】:

      猜你喜欢
      • 2019-06-05
      • 2019-07-08
      • 2018-01-05
      • 2019-06-23
      • 2022-10-23
      • 2017-10-23
      • 2021-02-21
      • 2016-11-03
      • 1970-01-01
      相关资源
      最近更新 更多