我試圖用xgboost運行 - 使用蟒蛇 - 一種分類問題,在這裏我有一個numpy的矩陣X(行=觀察&列=功能)中的數據,並在標籤numpy array y。 因爲我的數據很稀疏,所以我想使用稀疏版本的X來運行它,但是似乎我錯過了某些內容,因爲發生了錯誤。XGBoost以及稀疏矩陣
這裏是我做的:
# 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'
現在,我找了一個儘管它可能來自哪裏,並且相信它與我希望使用的稀疏格式有關。但是它是什麼,以及我如何修復它,我不知道。
我會歡迎任何幫助或意見! 非常感謝
是否與'X'這項工作? 'xgb'是關於使用稀疏矩陣的說法?他們通常不會減少替換。 – hpaulj