python - 嵌套 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
解决方案
您本身不需要递归;您对四个系列的产品感兴趣。
from itertools import product
for x, y, z, p in product(np.arange(0,1,step), repeat=4):
...
推荐阅读
- angular - 如何从 Angular 2+ 的缩小中排除一些文件?
- asp.net - 使用 Restful - JSON 发送图像和元数据
- javascript - 如何对数组中的每个文件发出 POST 请求
- c# - Visual Studio 找不到安装项目的依赖项
- f# - 列表:将每个第一个、第二个、第三个元素组合到一个子列表列表中
- javascript - 我无法在引导工具提示中单击 html 锚标记中的链接
- java - 如何在适配器类中传递意图
- c++ - 读取 TCP 标头并使用 RAW_SOCKET 管理 TCP 连接
- mysqli - SQL全文搜索 - 'where子句'中的未知列'test'
- dynamics-crm - Microsoft USD - 根据 CaseID 更改 URL