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: 13003
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>``.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17710
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