Я читаю документацию для XGBoost и, в частности, создаю DMatrix в формате CSR / CSC.Документация не очень полезна:
To load sparse matrix in CSR/CSC format is a little complicated,
the usage is like : suppose a sparse matrix : 1 0 2 0 4 0 0 3 3 1 2 0
Не ясно, что подразумевается под предположением выше, также неясно, как это соотносится со стандартными векторами Йельского формата A, IA, JA
.Поэтому я попытался загрузить первую строку из набора тестовых данных Agaricus (в формате libSVM)
0 1:1 9:1 19:1 21:1 24:1 34:1 36:1 39:1 42:1 53:1 56:1 65:1 69:1 77:1 86:1 88:1 92:1 95:1 102:1 106:1 117:1 122:1
Я создал DMatrix следующим образом:
DMatrix dMatrix = new DMatrix(new long[] {0},
new int[] {1, 9, 19, 21, 24, 34, 36, 39, 42, 53, 56, 65, 69, 77, 86, 88, 92, 95, 102, 106, 117, 122},
new float[] {1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f},
DMatrix.SparseType.CSC, 1);
Но это не дает никакого видаразумного ответа должно быть около 4.941254E-4, но он дает 0.5.
Что я здесь не так делаю, и как мне представить одну строку в XGBoost в виде разреженной DMatrix?