【发布时间】:2018-10-08 11:44:05
【问题描述】:
我正在尝试使用 xgboost 运行 - 使用 python - 处理分类问题,其中我有 numpy 矩阵 X 中的数据(行 = 观察和列 = 特征)和标签numpy 数组 y。 因为我的数据是稀疏的,所以我想让它使用 X 的稀疏版本运行,但似乎在发生错误时我遗漏了一些东西。
这是我的工作:
# 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)
等等……
现在尝试拟合分类器时出现错误:
File ".../xgboost/python-package/xgboost/sklearn.py", line 432, in fit
self._features_count = X.shape[1]
AttributeError: 'DMatrix' object has no attribute 'shape'
现在,我研究了它的来源,并相信它与我希望使用的稀疏格式有关。但它是什么,以及如何解决它,我不知道。
我欢迎任何帮助或 cmets ! 非常感谢
【问题讨论】:
-
这是否适用于
X?xgb对使用稀疏矩阵有什么看法?它们通常不会被替换掉。
标签: python numpy scipy sparse-matrix xgboost