Python 使用sklearn管道和MultiOutputRegressor访问属性
假设一个机器学习模型,比如LightGBM的Python 使用sklearn管道和MultiOutputRegressor访问属性,python,scikit-learn,attributes,pipeline,Python,Scikit Learn,Attributes,Pipeline,假设一个机器学习模型,比如LightGBM的LGBMRegressionor,有一个属性best\u iteration。调用fit方法后如何访问此属性,从而使用sklearn的管道和多输出分离器 对于管道我尝试了命名步骤: foo.named_steps['reg'] 它返回以下对象sklearn.multioutput.MultiOutputRegressor. 然后,我尝试了.estimators\uu: foo.named_steps['reg'].estimators_ 返回一个列
LGBMRegressionor
,有一个属性best\u iteration
。调用fit
方法后如何访问此属性,从而使用sklearn的管道
和多输出分离器
对于管道
我尝试了命名步骤
:
foo.named_steps['reg']
它返回以下对象sklearn.multioutput.MultiOutputRegressor.
然后,我尝试了.estimators\uu
:
foo.named_steps['reg'].estimators_
返回一个列表。但是,该列表包含提供给模型的初始参数
有人能解释一下访问模型属性的理想方法吗?我假设
foo
是一个sklearn管道对象,如果是这样,您可能可以这样做:
for e in foo.named_steps['reg'].estimators_:
print(e.best_iteration_)
返回估计器列表 多输出分离器的内部李>foo.named_steps['reg'].estimators_u
是您使用的LGBM回归器 多输出分离器内部e
您可以用您想要访问的模型的任何属性替换
best\u iteration.
。这可能是解决方案的一部分:是的,foo
具有类型sklearn.pipeline.pipeline
。但是,我尝试了您的循环建议,并且返回了无
。根据,我引用:如果指定了提前停止循环,则拟合模型的最佳迭代。
您需要指定提前停止循环
,否则它将不返回任何循环。