[PYTHON] So richten Sie eine zufällige Gesamtstruktur mit Optuna ein

So richten Sie eine zufällige Gesamtstruktur mit Optuna ein

Fix 200704 Wenn Sie sorgfältig darüber nachdenken, sollten "max_depth, n_estimators" usw. als diskrete Werte angegeben werden "suggest_discrete_uniform (name, low, high, q)", also habe ich das Skript geändert. Wenn "max_depth", "n_estimators", "max_leaf_nodes" diskrete Werte "suggest_discrete_uniform" sind, lautet der Typ "float". Ändern Sie daher den Typ in "int (suggest_discrete_uniform ())" und den Typ in "integer type". Ich übergebe es. Vor der Korrektur Da ich das letzte Mal geschrieben habe, wie man "Optuna" benutzt, werde ich von nun an die individuelle Einstellungsmethode beschreiben. .. Es gibt verschiedene Argumente, die mit "Randomforest" übergeben werden können, aber ich habe alle Hauptargumente mit "Optuna" festgelegt. Ich habe mich gefragt, ob ich "max_depth", "n_estimators" als Ganzzahlen oder Zahlen als Kategorien übergeben soll, aber diesmal habe ich sie als Ganzzahlen übergeben.

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
#Lerne mit optuna
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=1000)
 
#Passend für abgestimmte Hyperparameter
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)

Ich habe dies verwendet, um Hyperparameter mithilfe des Boston-Datensatzes abzustimmen. Es passt gut.

randomforest_Figure_1.png

Recommended Posts

So richten Sie eine zufällige Gesamtstruktur mit Optuna ein
So richten Sie eine zufällige Gesamtstruktur mit Optuna ein
So richten Sie SVM mit Optuna ein
So stellen Sie xg boost mit Optuna ein
Wie man optuna einstellt (wie man einen Suchraum schreibt)
So richten Sie einen lokalen Entwicklungsserver ein
So konfigurieren Sie Layer auf Lambda mit AWS SAM
So richten Sie die Cython-Umgebung ein und kompilieren sie
So importieren Sie die in EFS eingerichtete Python-Bibliothek in Lambda
Tag 67 [Einführung in Kaggle] Haben Sie versucht, Random Forest zu verwenden?
Umfrageprotokoll zur Optimierung von LightGBM-Hyperparametern mit Optuna
So beschleunigen Sie Python-Berechnungen
So richten Sie OMC Log Analytics ein und verwenden es - Linux-Version-
Richten Sie mit Tensorflow einen Knoten für MNIST auf ROS ein
So richten Sie die Entwicklungsumgebung von ev3dev ein [Windows-Version]
Zufälliger Wald (2)
[Blender] So legen Sie shape_key mit dem Skript fest
Zufälliger Wald
[Python] So zeigen Sie Zufallszahlen an (Zufallsmodul)
So zeichnen Sie ein Diagramm mit Matplotlib
So stellen Sie die Serverzeit auf japanische Zeit ein
So installieren Sie ein Paket mithilfe eines Repositorys
So richten Sie ein Jupyter-Notebook am SSH-Ziel ein (AWS EC2)
Krankheitsklassifizierung durch Random Forest mit Python
So laden Sie YouTube-Videos mit pytube3 herunter
Zusammenfassung zum Festlegen der Hauptfussel (pep8, pylint, flake8) von Python
So zeigen Sie eine Karte mit der Google Map API (Android) an
So codieren Sie eine Drohne mithilfe der Bilderkennung
Wie man Scicit-Learn wie Conda Numpy beschleunigt
So stellen Sie Djangos DB auf mongodb visual studio 2019 ein
So erhalten Sie Artikeldaten mithilfe der Qiita-API
So suchen Sie HTML-Daten mit Beautiful Soup
Hochladen auf ein freigegebenes Laufwerk mit pydrive
So deinstallieren Sie ein mit setup.py installiertes Modul
Festlegen der CPU-Affinität für Prozessthreads
Wie man Zufallszahlen mit dem Zufallsmodul von NumPy macht
So bereiten Sie die Umgebung mit Courseras fortgeschrittenem Kurs für maschinelles Lernen auf Google Colab vor
So richten Sie ein VPN-Gateway ein, um eine Verbindung zwischen Alibaba Cloud und AWS herzustellen
Ich möchte mit swagger-codegen in Sekundenschnelle einen Mock-Server für Python-Flask einrichten.
[Rails] So erhalten Sie Standortinformationen mithilfe der Geolocation-API
Lesen dynamisch generierter Tabellendefinitionen mit SQL Alchemy
Der einfachste Weg, um Last-Modified in Flask einzurichten
So schreiben Sie eine GUI mit dem Befehl maya
Wie man Pferderenndaten mit pandas read_html kratzt
So senden Sie Microsoft Forms automatisch mit Python (Mac-Version)
Richten Sie mit Samba einen Dateiserver unter Ubuntu 20.04 ein
Wie man ein praktisches Seminar mit Jupyter mit Docker abhält
Wie klicke ich mit der rechten Maustaste über die Tastatureingabe in RPA?
So erstellen Sie ein Python-Paket mit VS Code
[Blender] So legen Sie die Auswahlelemente von EnumProperty dynamisch fest
Stellen Sie PATH in der Umgebung von Ansible auf "sudo su-" ein
Beenden bei Verwendung von Python in Terminal (Mac)
[Einführung in die Udemy Python3 + -Anwendung] 30. Verwendung des Sets
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
So rufen Sie mehrere Arrays mit Slice in Python ab.
[Einführung in Python] Wie stoppe ich die Schleife mit break?
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Wie man schneller schreibt, wenn man numpy wie deque verwendet
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen