Je construis des dizaines de modèles prédictifs dans le but d'identifier un modèle champion. Je travaille avec des gigaoctets de données, le suivi du temps d'exécution est donc important. Je souhaite construire tous mes modèles dans un format de type liste, donc je n'ai pas besoin de gérer tous les noms de modèles différents dans l'environnement global. Cependant, il semble que la seule façon d'obtenir des timings par modèle est d'avoir des objets nommés séparés.Gestion de plusieurs modèles et temps d'exécution dans R
Voici une méthode de base que les approches que je suis à la recherche:
library(tidyverse)
# Basic Approach
Time_1 <- system.time(
Model_1 <- lm(am ~ disp, mtcars)
)
Time_2 <- system.time(
Model_2 <- lm(am ~ disp + cyl, mtcars)
)
# etc. for dozens more
Time_List <-
mget(ls(pattern = "Time")) %>%
bind_rows()
Cependant, comme vous pouvez le voir, je dois nommer manuellement chaque modèle et un temps record. Ce que je cherche est quelque chose de similaire à la table produite avec le code suivant, où "xxx" est un enregistrement réel de l'exécution.
# Tribble Output
tribble(
~Model_Name, ~Model_Function, ~Run_Time,
"Model_1", lm(am ~ disp, mtcars), "xxx",
"Model_2", lm(am ~ disp + cyl, mtcars), "xxx"
)
# A tibble: 2 × 3
Model_Name Model_Function Run_Time
<chr> <list> <chr>
1 Model_1 <S3: lm> xxx
2 Model_2 <S3: lm> xxx
J'apprécierais n'importe quelle entrée fournie, indépendamment des paquets utilisés.
Great! Je ne suis plus au travail, mais je vais enquêter une fois que je reviens. –