Je suis en train d'utiliser xgboost pour exécuter -en utilisant python - sur un problème de classification, où j'ai les données dans une matrice numpy X (lignes = observations & colonnes = caractéristiques) et les étiquettes dans un tableau numpy y. Parce que mes données sont rares, je voudrais le faire fonctionner en utilisant une version clairsemée de X, mais il semble qu'il me manque quelque chose comme une erreur se produit.XGBoost et matrice clairsemée
Voici ce que je fais:
# Library import
import numpy as np
import xgboost as xgb
from xgboost.sklearn import XGBClassifier
from scipy.sparse import csr_matrix
# Converting to sparse data and running xgboost
X_csr = csr_matrix(X)
xgb1 = XGBClassifier()
xgtrain = xgb.DMatrix(X_csr, label = y) #to work with the xgb format
xgtest = xgb.DMatrix(Xtest_csr)
xgb1.fit(xgtrain, y, eval_metric='auc')
dtrain_predictions = xgb1.predict(xgtest)
etc ...
Maintenant, j'obtiens une erreur en essayant de tenir le classificateur:
File ".../xgboost/python-package/xgboost/sklearn.py", line 432, in fit
self._features_count = X.shape[1]
AttributeError: 'DMatrix' object has no attribute 'shape'
Maintenant, je cherchais un alors que d'où il pourrait venir, et je crois qu'il a à voir avec le format clairsemé que je souhaite utiliser. Mais ce que c'est, et comment je pourrais le réparer, je n'ai aucune idée.
Je serais heureux de recevoir de l'aide ou des commentaires! Merci beaucoup
Est-ce que ce travail avec 'X'? Que dit 'xgb' à propos de l'utilisation d'une matrice éparse? Ils ne sont souvent pas tomber dans les remplacements. – hpaulj