我想使用tpot。我拥有的数据仅包括多输出连续变量(即输出形状为:(n_samples,n_output_variables),其中所有项都是浮点数)。
这可以通过使用sklearn的MultiOutputRegressor类来实现。但是因为我有超过100个不同的输出变量,所以我想避免对每个单独的输出应用tpot。
现在,我如何使用tpot来仅搜索多输出模型?有没有办法告诉tpot应该只使用多输出模型(比如DecisionTree)?
发布于 2019-12-04 18:52:20
关于具有多个输出的回归变量:
你有一个多输出回归问题。我建议你检查这个答案:Multi-output regression。
有一些回归器本身就支持目标上的多个输出,例如KNeighborsRegressor、DecisionTreeRegressor、GradientBoostingRegressor、ExtraTreesRegressor和RandomForestRegressor。其他(如SGDRegressor、ElasticNetCV等)如果您如前所述使用MultiOutputRegressor,则可以与多个输出一起使用。
关于TPOT和多输出回归:
目前,TPOT可以与所有本机支持多个输出的回归器一起使用,但是您必须为此调整一个文件,因为它还没有实现,看看https://github.com/EpistasisLab/tpot/issues/971。如果您想要将其他回归变量(单个输出)与MultiOutputRegressor进行比较,TPOT目前只允许您一次选择一个。也就是说,您只能指定几种算法中的一种,然后搜索最佳流水线。然后你可以用另一种算法重新运行。
关于指定要搜索的算法的问题:首先查看官方文档,并阅读“Customizing‘s operators parameters”一节。如果你只想使用一些特定的算法,一种方法是复制标准的回归配置(https://github.com/EpistasisLab/tpot/blob/master/tpot/config/regressor.py),将其包含在代码中,并取消(或添加)所有不想(或不想)包含在搜索中的算法的注释(或添加)。
https://stackoverflow.com/questions/56085595
复制相似问题