我正在使用以下RandomForest代码创建Python模型
from sklearn2pmml.pipeline import PMMLPipeline
from sklearn2pmml import sklearn2pmml
rf=RandomForestClassifier()
rf = PMMLPipeline([('random',rf)])
rf.fit(X_train, y_train)
sklearn2pmml(rf, "classification pmml file/random.pmml",with_repr=True)我使用Python语言中的以下代码加载保存的RandomForest模型
from pypmml import Model
rf = Model.fromFile('classification pmml file/random.pmml')如何在RandomForest中对这个PMML模型进行HyperParameter调优?
发布于 2019-12-31 05:56:19
您可以像往常一样进行超参数调优;如果使用SkLearn2PMML包将结果调优的管道转换为PMML表示,则不需要执行任何特殊操作。
简而言之,如果您只调优一个估计器,那么只需将其包装到适当的GridSearchCV中即可。例如:
pipeline = PMMLPipeline([
("tuned-rf", GridSearchCV(RandomForestClassifier(..), param_grid = {..}))
])
pipeline.fit(X, y)如果您正在调优多个估计器,那么您可以将GridSearchCV视为顶级工作流引擎,并将整个流水线封装到其中。之后,可以将调优的管道作为GridSearchCV.best_estimator_属性获取:
pipeline = PMMLPipeline([
("rf", RandomForestClassifier(..))
])
gridsearch = GridSearchCV(pipeline, param_gird = {..})
gridsearch.fit(X, y)
pipeline = gridsearch.best_estimator_有关更多详细信息,请参阅以下技术文章:https://openscoring.io/blog/2019/12/25/converting_sklearn_gridsearchcv_pipeline_pmml/
https://stackoverflow.com/questions/59351591
复制相似问题