how*_*ard 12 python numpy pandas xgboost
我下面就它们的主要git的一个xgboost例如在- https://github.com/dmlc/xgboost/blob/master/demo/guide-python/basic_walkthrough.py#L64
在这个例子中,他们正在读取直接放入的文件dMatrix-
dtrain = xgb.DMatrix('../data/agaricus.txt.train')
dtest = xgb.DMatrix('../data/agaricus.txt.test')
Run Code Online (Sandbox Code Playgroud)
我查看了dMatrix代码,似乎没有办法简单地看一下数据的结构 - 正如我们通常在pandas中所做的那样pandas.DataFrame.head()
xgboost文档中它提到,我们可以转换numpy.ndarray到xgboost.dMatrix-我们可以以某种方式将其转换回-从xgboost.dMatrix到numpy.ndarray,或者是熊猫数据帧?我没有看到他们的代码可能的方式 - 但也许有人知道一种方式?
或者有没有办法简要地看看数据是如何形成的xgboost.dMatrix?
霍华德,提前谢谢
小智 5
要详细说明@jcaine 的答案,您可以使用 sklearn 加载文件,然后将它们转换为普通的 numpy 数组:
from sklearn.datasets import load_svmlight_file
train_data = load_svmlight_file('demo/data/agaricus.txt.train')
X = train_data[0].toarray()
y = train_data[1]
Run Code Online (Sandbox Code Playgroud)
我还没有找到直接从 dMatrix 转换为 numpy 数组的方法。
小智 2
霍华德,
我相信 xgb.DMatrix 采用 libsvm 数据格式。您可以使用 scikit 的 load_svmlight_file 将此数据放入稀疏 CSR 矩阵中:http://scikit-learn.org/stable/modules/ generated/sklearn.datasets.load_svmlight_file.html 。
然后,您可以使用页面底部的示例对响应变量和特征进行分区。