0
votes

Alternative récursive à imbriquée pour boucle

J'ai 4 régresseurs Sklearn différents et je veux utiliser un pourcentage de chaque prédiction pour construire ma prédiction finale.

Mon idée est de boucler à travers chaque version possible et de calculer le RMSE en utilisant un pourcentage de chaque prédiction que ma réponse, c'est-à-dire p> xxx pré>

J'ai ci-dessous, mais je sais Il y a un moyen plus propre de le faire, où je peux aussi facilement ajouter plus de régresseurs si nécessaire ... mais je ne peux pas me faire tourner la tête? Je suis sûr que j'ai besoin d'une fonction récursive? Mais peut-être que je me trompe? P>

Des idées / Aide Bienvenue? P>

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


1 commentaires

Plutôt que de s'appuyer sur les valeurs arrondies résumant exactement 1, vérifiez que la somme des valeurs non finies tombe dans un intervalle suffisamment petit, par exemple (0,99, 1.01).


3 Réponses :


1
votes

Vous pouvez utiliser une fonction récursive, mais peut-être essayer itherTools.Production


0 commentaires

2
votes

Vous n'avez pas besoin de récursions en soi; Vous êtes intéressé par le produit em> des quatre gammes.

from itertools import product

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


1 commentaires

... , répéter = ... ? Schwweet. Je ne savais pas que c'était disponible



1
votes

Je pense que vous voulez un produit cartésien, non? Vous pouvez donc utiliser itheroTools.Production comme ceci: xxx


0 commentaires