首页 > 解决方案 > 嵌套 for 循环的递归替代方案

问题描述

我有 4 个不同的 sklearn 回归器,我想使用每个预测的百分比来构建我的最终预测。

我的想法是遍历每个可能的版本并使用每个预测的百分比作为我的答案来计算 RMSE,即

reg1.predict(X_test) * 0.2  + reg2.predict(X_test) * 0.3 * reg3.predict(X_test) * 0.3  * reg4.predict(X_test) * 0.2  

我目前有以下内容,但我知道有一种更清洁的方法可以做到这一点,如果需要,我还可以轻松添加更多回归量......但我无法理解它?我很确定我需要一个递归函数?但也许我错了?

欢迎任何想法/帮助?

step = 0.05
for x in np.arange(0,1,step):
    for y in np.arange(0,1,step):
        for z in np.arange(0,1,step):
            for p in np.arange(0,1,step):
                if round(x,2)+round(y,2)+round(z,2)+round(p,2) == 1:
                    print(f"x = {round(x,2)} y = {round(y,2)} z = {round(z,2)} p = {round(p,2)}")
                    ## RMSE calculation code goes, if best store X,Y,Z,P

标签: pythonloopsrecursionscikit-learnnested

解决方案


您本身不需要递归;您对四个系列的产品感兴趣。

from itertools import product

for x, y, z, p in product(np.arange(0,1,step), repeat=4):
    ...

推荐阅读