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

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

Depuis que j'ai écrit comment utiliser ʻOptunala 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 avecRandomforest, 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 = trial.suggest_int('max_depth', 1, 10000)
    max_features = trial.suggest_categorical('max_features', ['auto', 'sqrt','log2'])
    max_leaf_nodes = trial.suggest_int('max_leaf_nodes', 1, 10000)
    n_estimators =  trial.suggest_int('n_estimators', 30, 1000)
    
    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)
    
    
    #regr.fit(X_train, y_train)
    #y_pred = regr.predict(X_val)
    #return r2_score(y_val, y_pred)
    
    score = cross_val_score(regr, X_train, y_train, cv=5, scoring="r2")
    r2_mean = score.mean()

    return r2_mean
#Exécutez optuna et définissez les hyper paramètres
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=1000)

#Créer une instance avec des hyperparamètres réglés
optimised_rf = RandomForestRegressor(bootstrap = study.best_params['bootstrap'], criterion = study.best_params['criterion'],
                                     max_depth = study.best_params['max_depth'], max_features = study.best_params['max_features'],
                                     max_leaf_nodes = study.best_params['max_leaf_nodes'],n_estimators = study.best_params['n_estimators'],
                                     n_jobs=2)
#apprendre
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.

Figure 2020-06-29 163110.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 configurer un environnement Python à l'aide de pyenv
Comment définir optuna (comment écrire un espace de recherche)
Comment configurer un serveur de développement local
Comment configurer l'authentification par clé publique avec SSH
Comment configurer Layer sur Lambda à l'aide d'AWS SAM
Comment configurer et compiler l'environnement Cython
J'ai essayé d'utiliser RandomForest
Comment configurer Ubuntu pour le sous-système Windows pour Linux 2 (WSL2)
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 installer Python à l'aide d'Anaconda
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
Comment accélérer la belle instanciation de soupe
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
Configurer un serveur de messagerie avec Twisted
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 définir l'emplacement du navigateur dans Headless Chrome
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)