使用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
也许分隔符不应该是',' ?
答案 0 :(得分:0)
DMatrix获取.libsvm文件。可以使用python轻松创建。
libsvm看起来像这样:
target 0:column1 1:column2 2:column3
...等等
所以目标是第一列,而其他每一列(预测变量)都附加到增加索引,中间带有“:”。