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
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.
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%