0

我想使用tpot。我拥有的数据仅包括多输出连续变量(即输出形状为:(n_samples,n_output_variables),其中所有项目都是浮点数)。

这可以使用 sklearn 的MultiOutputRegressor类来实现。但是因为我有超过 100 个不同的输出变量,所以我想避免为每个单独的输出应用 tpot。

现在,如何使用 tpot 只搜索多输出模型?有没有办法告诉 tpot 只应该使用多输出模型(例如决策树)?

4

1 回答 1

2

关于具有多个输出的回归器:

你有一个多输出回归问题。我建议你检查这个答案:多输出回归

有一些回归器本身支持目标上的多个输出,例如 KNeighborsRegressor、DecisionTreeRegressor、GradientBoostingRegressor、ExtraTreesRegressor 和 RandomForestRegressor。如果您使用前面提到的 MultiOutputRegressor,则其他(如 SGDRegressor、ElasticNetCV 等)可以与多个输出一起使用。


关于 TPOT 和多输出回归:

目前 TPOT 可以与所有原生支持多输出的回归器一起使用,但您必须为此调整文件,因为它尚未实现,请查看https://github.com/EpistasisLab/tpot/issues/971。如果您想将其他回归量(单输出)与 MultiOutputRegressor 进行比较,TPOT 目前只允许您一次选择一个。也就是说,您可以仅指定几种算法中的一种,然后搜索最佳管道。然后你可以用另一种算法重新运行。

关于您关于指定要搜索哪种算法的问题:首先查看官方文档并阅读自定义 TPOT 的操作符和参数部分。如果您只想使用一些特定的算法,实现此目的的一种方法是复制标准 TPOT 配置以进行回归(https://github.com/EpistasisLab/tpot/blob/master/tpot/config/regressor.py),将其包含在您的代码中并取消注释(或添加)您不想(或不想)包含在搜索中的所有算法。

于 2019-12-04T10:52:19.880 回答