Reputation: 3456
I have a dataset like so:
print(X_test.dtypes)
metric1 int64
rank float64
device_type int8
NA_estimate float64
When I try to make predictions on this data set, I get the following error:
y_test_pred_xgb = clf_xgb.predict(xgb.DMatrix(X_test))
TypeError: Not supported type for data.<class 'xgboost.core.DMatrix'>
I searched for a bit but only found discussion of object
variable data types causing issues. Is there something else wrong with my data or is the issue something else? I have looked at various blogs and Kaggle code without luck.
Upvotes: 9
Views: 5489
Reputation: 3180
I had the same problem. Your clf_xgb
model object is an implementation of Scikit-Learn API. DMatrix
is an internal data structure that is used by XGBoost. Maybe this caused the problem.
You can try with:
clf_xgb.get_booster().predict(xgb.DMatrix(X_test))
In my case, this worked.
Upvotes: 2
Reputation: 53
I faced the same problem and solved it by casting the data type using np.float32()
:
model.predict(np.float32(X_test))
Upvotes: 2