详细参数在 PMML 管道中不起作用

verbose parameter not working in PMML pipeline

我正在尝试将我的 gbdt+lr 管道放入 PMML 管道。按照说明 here,这是我的测试代码:

gbm = lgb.LGBMClassifier(n_estimators=100)
clf = GBDTLRClassifier(gbm, LogisticRegression(penalty='l2'))
pipeline = PMMLPipeline([('classifier', clf)])
pipeline.fit(x, y, classifier__gbm_early_stopping_rounds=5, classifier__gbm_eval_set=[(xv, yv)], classifier__gbm_eval_metric='logloss', classifier__gbm_verbose = 2)

拟合期间,verbose参数无效。相同的设置在简单的 lightgbm 分类器中效果很好。有人知道为什么 verbose 不工作吗?

Do anyone have idea about why verbose not working?

Scikit-Learn 会发出任何警告或错误吗?比如那个“'classifier'没有'gbm'属性”?

你可以看看GBDTLRClassifier源代码here

保存GBDT分类器的属性叫做GBDTLRClassifier.gbdt(而不是GBDTLRClassifier.gbm)。因此,如果您在拟合参数前加上 classifier__gbdt(而不是 classifier__gbm),那么一切都应该正常:

pipeline = PMMLPipeline([('classifier', clf)])
pipeline.fit(x, y, classifier__gbdt__verbose = 2)