LabeledPoint labeledPoint = base.next(); batch.add(labeledPoint); numElem += labeledPoint.values().length; numRows++; LabeledPoint labeledPoint = batch.get(i); rowOffset[i] = offset; label[i] = labeledPoint.label(); weight[i] = labeledPoint.weight(); if (labeledPoint.indices() != null) { System.arraycopy(labeledPoint.indices(), 0, featureIndex, offset, labeledPoint.indices().length); } else { for (int j = 0; j < labeledPoint.values().length; j++) { featureIndex[offset + j] = j; System.arraycopy(labeledPoint.values(), 0, featureValue, offset, labeledPoint.values().length); offset += labeledPoint.values().length;
/** Transform List<String> inputs into a XGBoost input format */ @Nullable public static LabeledPoint parseFeatures(final double target, @Nonnull final String[] features) { final int size = features.length; if (size == 0) { return null; } final int[] indices = new int[size]; final float[] values = new float[size]; for (int i = 0; i < size; i++) { if (features[i] == null) { continue; } final String str = features[i]; final int pos = str.indexOf(':'); if (pos >= 1) { indices[i] = Integer.parseInt(str.substring(0, pos)); values[i] = Float.parseFloat(str.substring(pos + 1)); } } return new LabeledPoint((float) target, indices, values); }
LabeledPoint labeledPoint = base.next(); batch.add(labeledPoint); numElem += labeledPoint.values().length; numRows++; LabeledPoint labeledPoint = batch.get(i); rowOffset[i] = offset; label[i] = labeledPoint.label(); weight[i] = labeledPoint.weight(); if (labeledPoint.indices() != null) { System.arraycopy(labeledPoint.indices(), 0, featureIndex, offset, labeledPoint.indices().length); } else { for (int j = 0; j < labeledPoint.values().length; j++) { featureIndex[offset + j] = j; System.arraycopy(labeledPoint.values(), 0, featureValue, offset, labeledPoint.values().length); offset += labeledPoint.values().length;
LabeledPoint labeledPoint = base.next(); batch.add(labeledPoint); numElem += labeledPoint.values().length; numRows++; LabeledPoint labeledPoint = batch.get(i); rowOffset[i] = offset; label[i] = labeledPoint.label(); weight[i] = labeledPoint.weight(); if (labeledPoint.indices() != null) { System.arraycopy(labeledPoint.indices(), 0, featureIndex, offset, labeledPoint.indices().length); } else { for (int j = 0; j < labeledPoint.values().length; j++) { featureIndex[offset + j] = j; System.arraycopy(labeledPoint.values(), 0, featureValue, offset, labeledPoint.values().length); offset += labeledPoint.values().length;