[PYTHON] Umfrageprotokoll zur Optimierung von LightGBM-Hyperparametern mit Optuna

Einführung

Kürzlich studiere ich maschinelles Lernen mit Jupyter Lab. Unter anderem dachte ich, ich würde einen Artikel über Optunas Forschung zur Optimierung von LightGBM-Hyperparametern schreiben, der ein altes Suchergebnis bei Google hatte.

Umgebung

Was ich getan habe

Erste grobe Zusammenfassung

Ich möchte LightGBM-Hyperparameter mit Optuna optimieren

Dies ist das erste, was herauskam, als ich Google ausprobierte Automatische Optimierung von Hyperparametern durch die Optuna-Erweiterung LightGBM Tuner Unten finden Sie einen Auszug aus dem Code auf der obigen Seite

booster = lgb.train(params, dtrain, valid_sets=dval,
                    verbose_eval=0,
                    best_params=best_params,
                    tuning_history=tuning_history)

Als ich das oben genannte versuchte, bekam ich den folgenden Fehler. TypeError: __init__() got an unexpected keyword argument 'best_params'

HM. Es gibt kein Schlüsselwortargument für "best_params". Wird gesagt, dass.

Offizielle Dokumentenbestätigung

Ich fragte mich, ob die verschiedenen Argumente unterschiedliche Versionen bedeuten, und beschloss, die offizielle Dokumentation zu überprüfen. Optuna Es gab eine Verbindung zu Github, also bin ich dorthin gezogen optuna/optuna

Probieren Sie das offizielle Dokumentationsbeispiel → funktioniert

Suche im Repository mit lightgbm unter optuna / optuna Suchergebnisse im Repository

Bei Betrachtung der Suchergebnisse stellte ich fest, dass examples / README.md wie ein Beispiel war. Bestätige es.

examples/lightgbm_tuner_simple.py

    #Einige Zeilenumbrüche werden verwendet, um den Vergleich der Zitierquellen zu erleichtern.
    model = lgb.train(
        params, dtrain, valid_sets=[dtrain, dval], 
        verbose_eval=100, 
        early_stopping_rounds=100
    )

Da es hier keine "best_params" gibt, sieht die aktuelle Version so aus. Ich habe es oben versucht und es hat funktioniert! Ich habe es getan.

Übrigens, als ich nachgesehen habe, gab es best_params bis v1.3.0 und [v1.4.0](https :: Von //github.com/optuna/optuna/blob/v1.4.0/examples/lightgbm_tuner_simple.py) gab es keine "best_params".

Lösung & Eindruck

Eigentlich habe ich andere als die oben genannten Seiten überprüft, aber diejenigen weggelassen, die keine Ergebnisse erbracht haben (oder besser gesagt, ich habe es vergessen) Wenn die Untersuchung und Lösung solcher Probleme und Fehler keine Ergebnisse liefert, kommt sie überhaupt nicht heraus. Es ist schwer, Ergebnisse zu erzielen. In einem solchen Fall wird empfohlen, den Tag zu ändern oder andere Personen leichtfertig zu konsultieren, da Sie die Lebensweise unerwartet sehen können.

Zusammenfassung

Wenn das Ergebnis von Google nicht funktioniert, liegt es häufig an einer anderen Umgebung oder Version. Wenn die Spezifikationen und Muster öffentlich verfügbar sind, ist es häufig eine Abkürzung, um das Problem unter Bezugnahme auf die offizielle Dokumentation und Github zu lösen. (Obwohl diesmal anders ist) Es ist auch wichtig, den Inhalt der Fehlermeldung zu überprüfen und nach Nachrichten zu suchen. Wenn die Anzahl der Argumente oder die Argumente selbst unterschiedlich sind, ist die Version wahrscheinlich unterschiedlich. Wenn Sie keine Lösung finden, ist es wichtig, mit einer anderen Person zu sprechen oder das Datum zu ändern.

Recommended Posts

Umfrageprotokoll zur Optimierung von LightGBM-Hyperparametern mit Optuna
So richten Sie SVM mit Optuna ein
So stellen Sie xg boost mit Optuna ein
So richten Sie eine zufällige Gesamtstruktur mit Optuna ein
So ändern Sie die Protokollstufe von Azure SDK für Python
ABC170 E - So lösen Sie ohne Verwendung mehrerer intelligenter Säuglinge
So speichern Sie einen Teil eines langen Videos mit OpenCV
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Zusammenfassung der Verwendung von pyenv-virtualenv
Zusammenfassung der Verwendung von csvkit
So melden Sie sich bei Docker + NGINX an
Optimieren Sie RF oder lightGBM mit Optuna
So testen Sie jede IE-Version mit Selenium mit modan.IE (VM)
So ermitteln Sie die Anzahl der CPUs ohne den Befehl sar
[Python] Zusammenfassung der Verwendung von Pandas
Wie man optuna einstellt (wie man einen Suchraum schreibt)
Wie man lange Einschlüsse loswird
So überprüfen Sie die Version von Django
So zeichnen Sie ein Diagramm mit Matplotlib
So installieren Sie CatBoost [Stand Januar 2020]
Berechnen Verwenden Sie% des Befehls df
So installieren Sie ein Paket mithilfe eines Repositorys
Melden Sie sich mit Anforderungen in Python bei Slack an
[Python2.7] Zusammenfassung der Verwendung von unittest
Jupyter Notebook Grundlagen der Verwendung
Grundlagen von PyTorch (1) - Verwendung von Tensor-
So laden Sie YouTube-Videos mit pytube3 herunter
Zusammenfassung der Verwendung der Python-Liste
Zusammenfassung des Schreibens von AWS Lambda
[Frage] Wie verwende ich plot_surface von Python?
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
So erstellen Sie eine Umgebung für die Verwendung mehrerer Python-Versionen auf einem Mac