Java - xgboost DMatrix 输入

Java - xgboost DMatrix input

使用 xgboost4j 包在 java 中创建 DMatrix 时,首先我使用 "filepath".

成功创建了矩阵
DMatrix trainMat = new DMatrix("...\xgb_training_input.csv");

但是当我尝试训练模型时:

Booster booster = XGBoost.train(trainMat, params, round, watches, null, null);

我收到以下错误:

...regression_obj.cc:108: label must be in [0,1] for logistic regression

现在我的数据很可靠了。我已经在内置于 python 中的 xgb 模型上对其进行了检查。 我猜问题出在数据格式上。 目前格式如下:

x1,x2,x3,x4,x5,y

其中 x1-x5 是 "Real" 数字,y 是 0 或 1。文件结尾是 .csv

也许分隔符不应该是“,”?

DMatrix 获取 .libsvm 文件。可以使用 python.

轻松创建

libsvm 看起来像这样:

target 0:column1 1:column2 2:column3 ...等等

所以目标是第一列,而其他所有列(预测变量)都附加到增加的索引,中间有“:”。