[PYTHON] Comment configurer une forêt aléatoire à l'aide d'Optuna

Comment configurer une forêt aléatoire à l'aide d'Optuna

Correction 200704 Si vous y réfléchissez bien, max_depth, n_estimators etc. auraient dû être donnés comme des valeurs discrètes suggest_discrete_uniform (name, low, high, q), j'ai donc modifié le script. Si max_depth, n_estimators, max_leaf_nodes sont des valeurs discrètes suggest_discrete_uniform, le type sera float, alors changez-le en ʻint (suggest_discrete_uniform ()) et changez le type en type entier. Je le remets. Avant correction Depuis que j'ai écrit comment utiliser ʻOptuna la dernière fois, je décrirai la méthode de réglage individuel à partir de maintenant. .. Il y a plusieurs arguments qui peuvent être passés avec Randomforest, mais j'ai mis tous les principaux avec ʻOptuna. Je me demandais s'il fallait passer max_depth, n_estimators` en tant qu'entiers ou nombres en tant que catégories, mais cette fois je les ai passés sous forme d'entiers.

def objective(trial):
    criterion = trial.suggest_categorical('criterion', ['mse', 'mae'])
    bootstrap = trial.suggest_categorical('bootstrap',['True','False'])
    max_depth = int(trial.suggest_discrete_uniform('max_depth', 10, 1000,10))
    max_features = trial.suggest_categorical('max_features', ['auto', 'sqrt','log2'])
    max_leaf_nodes = int(trial.suggest_discrete_uniform('max_leaf_nodes', 10, 1000,10))
    n_estimators =  int(trial.suggest_discrete_uniform('n_estimators', 10, 1000,10))
 
    
    regr = RandomForestRegressor(bootstrap = bootstrap, criterion = criterion,
                                 max_depth = max_depth, max_features = max_features,
                                 max_leaf_nodes = max_leaf_nodes,n_estimators = n_estimators,n_jobs=2)
 
    score = cross_val_score(regr, X_train, y_train, cv=3, scoring="r2")
    r2_mean = score.mean()
    print(r2_mean)
 
    return r2_mean
#Apprenez avec optuna
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=1000)
 
#Convient aux hyper paramètres réglés
optimised_rf = RandomForestRegressor(bootstrap = study.best_params['bootstrap'], criterion = study.best_params['criterion'],
                                     max_depth = int(study.best_params['max_depth']), max_features = study.best_params['max_features'],
                                     max_leaf_nodes = int(study.best_params['max_leaf_nodes']),n_estimators = int(study.best_params['n_estimators']),
                                     n_jobs=2)
 
optimised_rf.fit(X_train ,y_train)

Je l'ai utilisé pour régler les hyperparamètres à l'aide de l'ensemble de données de Boston. Cela va bien.

randomforest_Figure_1.png

Recommended Posts

Comment configurer une forêt aléatoire à l'aide d'Optuna
Comment configurer une forêt aléatoire à l'aide d'Optuna
Comment configurer SVM à l'aide d'Optuna
Comment configurer XG Boost à l'aide d'Optuna
Comment définir optuna (comment écrire un espace de recherche)
Comment configurer un serveur de développement local
Comment configurer Layer sur Lambda à l'aide d'AWS SAM
Comment configurer et compiler l'environnement Cython
Comment importer la bibliothèque Python configurée dans EFS dans Lambda
Jour 67 [Introduction à Kaggle] Avez-vous essayé d'utiliser Random Forest?
Journal d'enquête sur la façon d'optimiser les hyperparamètres LightGBM à l'aide d'Optuna
Comment accélérer les calculs Python
Comment configurer et utiliser OMC Log Analytics - Version Linux-
Configurer un nœud pour faire MNIST sur ROS à l'aide de Tensorflow
Comment configurer l'environnement de développement d'ev3dev [version Windows]
Forêt aléatoire (2)
[Blender] Comment définir shape_key avec un script
Forêt aléatoire
[Python] Comment afficher des nombres aléatoires (module aléatoire)
Comment dessiner un graphique avec Matplotlib
Comment régler l'heure du serveur sur l'heure japonaise
Comment installer un package à l'aide d'un référentiel
Comment configurer un notebook Jupyter à la destination SSH (AWS EC2)
Classification des maladies par Random Forest en utilisant Python
Comment télécharger des vidéos YouTube à l'aide de pytube3
Résumé de la façon de définir la charpie principale (pep8, pylint, flake8) de Python
Comment afficher la carte à l'aide de l'API Google Map (Android)
Comment coder un drone en utilisant la reconnaissance d'image
Comment accélérer Scicit-Learn comme Conda Numpy
Comment définir la base de données de Django sur Mongodb Visual Studio 2019
Comment obtenir des données d'article à l'aide de l'API Qiita
Comment rechercher des données HTML à l'aide de Beautiful Soup
Comment mettre en ligne sur un Drive partagé à l'aide de pydrive
Comment désinstaller un module installé à l'aide de setup.py
Comment définir l'affinité du processeur pour les threads de processus
Comment créer des nombres aléatoires avec le module aléatoire de NumPy
Comment préparer l'environnement pour Google Colab avec le cours avancé d'apprentissage automatique de Coursera
Comment configurer une passerelle VPN pour établir une connexion entre Alibaba Cloud et AWS
Je veux configurer un serveur fictif pour python-flask en quelques secondes en utilisant swagger-codegen.
[Rails] Comment obtenir des informations de localisation à l'aide de l'API de géolocalisation
Comment lire les définitions de table générées dynamiquement à l'aide de SQL Alchemy
Le moyen le plus simple de configurer Last-Modified dans Flask
Comment écrire une interface graphique à l'aide de la commande maya
Comment récupérer des données de courses de chevaux à l'aide de pandas read_html
Comment soumettre automatiquement des formulaires Microsoft à l'aide de python (version Mac)
Configurer un serveur de fichiers sur Ubuntu 20.04 à l'aide de Samba
Comment organiser un séminaire pratique à l'aide de Jupyter à l'aide de Docker
Comment faire un clic droit en utilisant la saisie au clavier dans RPA?
Comment créer un package Python à l'aide de VS Code
[Blender] Comment définir dynamiquement les sélections EnumProperty
Définissez PATH équivalent à "sudo su-" en utilisant l'environnement d'Ansible
Comment quitter lors de l'utilisation de Python dans Terminal (Mac)
[Introduction à Udemy Python3 + Application] 30. Comment utiliser l'ensemble
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Comment récupérer plusieurs tableaux à l'aide de slice en python.
[Introduction à Python] Comment arrêter la boucle en utilisant break?
Comment exécuter une commande à l'aide d'un sous-processus en Python
Comment écrire plus rapidement en utilisant numpy comme deque
[Introduction à Python] Comment écrire des instructions répétitives à l'aide d'instructions for