[PYTHON] Comparaison de la taille de la forêt aléatoire / du temps de traitement

Aperçu

Je vois souvent des articles sur la précision des prédictions utilisant des forêts aléatoires, mais je n'ai trouvé aucun article sur la taille du modèle et le temps pendant l'entraînement et la prédiction, alors je les ai comparés. Cette fois, l'apprentissage / prédiction est effectué à l'aide des données boston (nombre d'enregistrements: 506, nombre de colonnes: 13) contenues dans scicit-learn. Les paramètres n_estimators (nombre d'arbres), max_depth (profondeur maximale de l'arbre) et le nombre d'enregistrements, qui sont souvent gérés par RandomForest, ont été modifiés et mesurés. Le nombre d'enregistrements a été augmenté du nombre d'origine à n = 506, 5060, 50600, mais lors du gonflement, chaque valeur est aléatoirement augmentée ou diminuée de 10% pour éviter autant que possible de créer des données en double.

Taille du modèle

image.png

On voit que le nombre d'arbres dans la forêt aléatoire et la taille du modèle sont simplement proportionnels. Il a été constaté que la profondeur maximale des arbres et la taille du modèle augmentaient d'environ 1,5 à 2 fois à chaque augmentation de la profondeur. Cela peut être attendu du fait que le nombre de nœuds double au maximum lorsque la profondeur maximale des dichotomies augmente de un, et que le nombre de branches augmente avec le nombre d'enregistrements.

Temps de traitement lors de la création d'un modèle

image.png Le temps de traitement pour la modélisation semble être proportionnel au nombre d'arbres, à la profondeur maximale et à la taille des données d'apprentissage.

Temps de traitement prévu

Au moment de la prédiction, le modèle d'apprentissage créé avec n = 5060 a été utilisé et le temps nécessaire pour prédire les données a été mesuré à l'aide de la fonction de prédiction. image.png On constate que le temps de traitement au moment de la prédiction est également proportionnel au nombre d'arbres et à la profondeur des arbres. D'un autre côté, étonnamment, le nombre d'enregistrements à prévoir n'a pas du tout augmenté et le temps de traitement n'a pas changé même si la prédiction était faite avec environ 100 millions de données à titre d'essai.

finalement

Je voulais vraiment changer le nombre de colonnes, mais je n'ai pas trouvé de bon moyen, alors j'ai traversé cette période. Bien sûr, ce résultat changera en fonction de la tendance des données, veuillez donc vous y référer.

Recommended Posts

Comparaison de la taille de la forêt aléatoire / du temps de traitement
Forêt aléatoire (2)
Forêt aléatoire
Comparaison du temps de traitement par décomposition en facteurs premiers Int64 (méthode de division d'essai) par langue
Forêt aléatoire équilibrée en python
[Apprentissage automatique] Comprendre la forêt aléatoire
Arbre de décision et forêt aléatoire
Utiliser Random Forest avec Python
Apprentissage automatique: forêt supervisée - aléatoire