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
...等等
所以目标是第一列,而其他所有列(预测变量)都附加到增加的索引,中间有“:”。
使用 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
...等等
所以目标是第一列,而其他所有列(预测变量)都附加到增加的索引,中间有“:”。