SyntaxError: invalid syntax bei Verwendung von lambda Parameter des XGBRFClassifiers

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nichtSoGuter
User
Beiträge: 92
Registriert: Mittwoch 13. April 2022, 17:40

Ich möchte eine Instanz der Klasse xgboost.XGBRFClassifiers erstellen. Wenn ich den Parameter lambda=0.999999999 verwende dann erhalte ich einen SyntaxError. Ich finde den Fehler aber leider nicht.

Code: Alles auswählen

# Dieser Code funktioniert einwandfrei:
model=XGBRFClassifier(eta=0.049999999999999996, gamma=0.2, max_depth=20, min_child_weight=1.2,objective='multi:softprob',subsample=0.7)

Code: Alles auswählen

# Dieser Code erzeugt folgenden Error: SyntaxError: invalid syntax
XGBRFClassifier(eta=0.049999999999999996, gamma=0.2, lambda=0.9999999999999999, max_depth=20, min_child_weight=1.2, objective='multi:softprob', subsample=0.7)
Der Parameter "lambda" erzeugt also diesen error. "lambda" ist aber ein Parameter wie alle anderen auch. Wieso wird ein Error erzeugt?
(Link zu der Dokumentation: https://xgboost.readthedocs.io/en/stable/parameter.html)

Vielen Dank im Voraus!
nichtSoGuter
User
Beiträge: 92
Registriert: Mittwoch 13. April 2022, 17:40

Ich habe auch schon die Antwort darauf gefunden link: https://stackoverflow.com/questions/529 ... or-xgboost
Benutzeravatar
__blackjack__
User
Beiträge: 14180
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@nichtSoGuter: ``lambda`` ist eben kein Parameter wie alle anderen sondern ein Schlüsselwort in Python, wie ``def``, ``import``, ``class``, ``for``, und so weiter. Die kann man auch alle nicht als Namen verwenden. Mit ``lambda`` werden anonyme Funktionen definiert. Die Syntax sieht so aus ``lambda <argumentlist>: <expression>``.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
Sirius3
User
Beiträge: 18307
Registriert: Sonntag 21. Oktober 2012, 17:20

`lambda` ist in Python ein Schlüsselwort, kann also nicht als Paramete benutzt werde, deswegen heißt der auch `reg_lambda`.
nichtSoGuter
User
Beiträge: 92
Registriert: Mittwoch 13. April 2022, 17:40

Stimmt vielen Dank für die Antworten!
Antworten