XGBoost: Was ist falsch mit xgb.cv Anruf?

9

Ich versuche, xgboost auf Python zu verwenden.

Hier ist mein Code. xgb.train funktioniert, aber ich bekomme einen Fehler mit xgb.cv obwohl es scheint, habe ich es richtig benutzt.

Folgendes funktioniert für mich:

%Vor%

Aber wenn ich die Zeile ändere:

%Vor%

dazu:

%Vor%

Ich erhalte den folgenden unerwarteten Fehler:

  %Vor%

BEARBEITEN: Befolgen Sie den folgenden Ratschlag von @martineau, und versuchen Sie dies

%Vor%

ergibt diesen Fehler

  

TypeError Traceback (letzter Aufruf   zuletzt im ()        43 # bst = xgb.train (plst, dtrain, num_round, evallist, early_stopping_rounds = 5) # early_stopping_rounds = 10 # wenn   Es gibt einen Validierungssatz        44   --- & gt; 45 bst.res = xgb.cv (plst, dzug, num_round, evallist, nfold = 5, early_stopping_rounds = 5)        46        47 bst.save_model ('0001.model')

     

TypeError: cv () hat mehrere Werte für das Schlüsselwortargument 'nfold'

erhalten
    
Fagui Curtain 06.06.2016, 01:28
quelle

2 Antworten

2

Sie können evallist nicht in cv verwenden. Daher sollten Sie evallist aus den Argumenten des Aufrufs xgb.cv entfernen. Anders ausgedrückt, sollten Sie versuchen:

bst.res = xgb.cv(plst, dtrain, num_round, nfold=5, early_stopping_rounds=5)

statt

bst.res=xgb.cv(plst,dtrain,num_round,nfold = 5,evallist,early_stopping_rounds=5)

Chris, Die Python-Trainings-API wurde zwischen der Pip-Version und dem aktuellen Master-Zweig in Github leicht geändert. Sie haben hauptsächlich das Schlüsselwort args verbose_eval , callbacks und folds zur Funktion cv hinzugefügt. Die Schlüsselwörter verbose_eval und callbacks waren bereits in der pip-Version für die Funktion train vorhanden, nicht jedoch für die cv eins.

    
Adrien Renaud 26.06.2016 22:02
quelle
0

Nach meinem Verständnis liegt dieser Fehler bei der Installation von xgboost über pip, das jetzt veraltet ist. XGBoost sollte stattdessen wie folgt installiert werden:

%Vor%     
Chris Parry 24.06.2016 01:47
quelle

Tags und Links