我想使用tpot。我拥有的数据仅包含多输出连续变量(即输出形状为:(n_samples,n_output_variables),其中所有项目均为浮点数。)
这可以使用sklearn的MultiOutputRegressor
类来实现。但是因为我有100多个不同的输出变量,所以我想避免为每个单独的输出应用tpot。
现在,如何使用tpot仅搜索多输出模型?有没有办法告诉tpot仅应使用多输出模型(例如DecisionTree)?
答案 0 :(得分:1)
您有一个多输出回归问题。我建议您检查以下答案:Multi-output regression。
有些回归器本来就支持目标上的多个输出,例如KNeighborsRegressor,DecisionTreeRegressor,GradientBoostingRegressor,ExtraTreesRegressor和RandomForestRegressor。如果您已经提到过使用MultiOutputRegressor,则其他(例如SGDRegressor,ElasticNetCV等)可以与多个输出一起使用。
当前TPOT可以与所有支持本机支持多个输出的回归器一起使用,但是由于尚未实现,因此您必须为此调整文件,请查看https://github.com/EpistasisLab/tpot/issues/971。如果要将其他回归变量(单输出)与MultiOutputRegressor进行比较,则TPOT当前仅允许您一次只选择一个。也就是说,您只能指定几种算法中的一种,然后搜索最佳管道。然后,您可以使用其他算法重新运行。
关于指定要搜索的算法的问题:首先查看官方文档,然后阅读自定义TPOT的运算符和参数部分。如果您只想使用某些特定的算法,一种实现方法是复制标准TPOT配置以进行回归(https://github.com/EpistasisLab/tpot/blob/master/tpot/config/regressor.py),将其包含在代码中,然后取消注释(或添加)所有您不使用的算法(或愿意)要包含在您的搜索中。