我使用的是LeaveOutGroupOut的简历策略和TPOTRegressor。
from tpot import TPOTRegressor
from sklearn.model_selection import LeaveOneGroupOut
tpot = TPOTRegressor(
config_dict=regressor_config_dict,
generations=100,
population_size=100,
cv=LeaveOneGroupOut(),
verbosity=2,
n_jobs=1)
tpot.fit(XX, yy, groups=groups)经过优化后,最佳评分训练流水线存储在tpot.fitted_pipeline_和tpot.fitted_pipeline_.predict(X)中。
我的问题是:安装好的管道将接受什么训练?例如:
tpot.fitted_pipeline_中之前,tpot是否使用整个数据集重新修改了优化的管道?另外,是否有一种方法可以访问与获胜/优化管道的分割集相对应的完整的经过训练的模型?
发布于 2018-08-24 16:40:40
TPOT将在完整的训练集:code 上符合最终的“最佳”管线。
因此,如果您计划通过TPOT对象直接与“最佳”管道交互,则建议永远不要将测试数据传递给TPOT函数。
如果这对您来说是个问题,您可以通过tpot.fitted_pipeline_属性直接对管道进行重新培训,它只是一个sklearn管道对象。或者,您可以使用export函数将“最佳”管道导出到相应的Python代码,并与TPOT之外的管道进行交互。
另外,是否有一种方法可以访问与获胜/优化管道的分割集相对应的完整的经过训练的模型?
不是的。TPOT在评价管道时使用了sklearn的cross_val_score,因此它从CV过程中抛出了一组经过训练的管道。但是,您可以访问TPOT通过tpot.evaluated_individuals_属性计算的每个管道的评分结果。
https://stackoverflow.com/questions/52008298
复制相似问题