Как использовать xgboost.train()

#python #jupyter-notebook #google-colaboratory #xgboost #valueerror

#python #jupyter-ноутбук #google-colaboratory #xgboost #ошибка значения

Вопрос:

Я новичок в XGBoost и хочу использовать функцию train(), но когда я пытаюсь, я получаю следующую ошибку

 146 else:
147     try:
148         main()
149     except KeyboardInterrupt:
150         print("KeyboardInterrupt, exiting")

/usr/local/lib/python3.6/dist-packages/xgboost/core.py in __init__(self, params, cache, model_file)
938         for d in cache:
939             if not isinstance(d, DMatrix):
940                 raise TypeError('invalid cache item: {}'.format(type(d).__name__))
941             self._validate_features(d)
942 

TypeError: invalid cache item: DataFrame
 

мой код

     import xgboost as xgb
    xgb_params = {
        "objective": "multi:softmax",
        "eta": 0.3,
        "num_class": 62,
        "max_depth": 10,
        "nthread": 4,
        "eval_metric": "merror",
        "print.every.n": 1
        #"silent": 1
    }
    clf = xgb.train(params=xgb_params, dtrain=df, num_boost_round=10)
 

Ответ №1:

XGB требует, чтобы вы превратили ваш фрейм данных в DMatrix для его обработки

         d_train = xgb.DMatrix(X_train, label=y_train)
        d_test = xgb.DMatrix(X_test, label=y_test)