Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

predict neighbors refactored

  • Loading branch information...
commit 2cdfa812c18ae3e6551b2b058b5485afdefe9620 1 parent 9c1dcc7
@paolo-losi authored
View
817 python/extratrees/cbindings.c
397 additions, 420 deletions not shown
View
18 python/extratrees/cbindings.pyx
@@ -13,7 +13,6 @@ from cextratrees cimport (ET_problem, ET_problem_destroy, ET_load_libsvm_file,
ET_forest_neighbors, ET_params,
ET_forest_predict_class_bayes,
class_probability_vec, class_probability,
- neighbour_weight, neighbour_weight_vec,
double_vec, ET_forest_feature_importance)
@@ -172,13 +171,12 @@ cdef class Forest:
@cython.wraparound(False)
def neighbors(self, np.ndarray[np.float32_t, ndim=2] X, curtail=1):
cdef float *vector
+ cdef double *weights
cdef int sample_idx, feature_idx
cdef uint32_t _curtail = curtail
- cdef neighbour_weight_vec *nwv
- cdef neighbour_weight *nw
cdef np.ndarray[np.float64_t, ndim=2] adiacency
- adiacency = numpy.zeros(shape=(X.shape[0], self._forest.n_samples),
+ adiacency = numpy.empty(shape=(X.shape[0], self._forest.n_samples),
dtype=numpy.float64)
vector = <float *> malloc(sizeof(float) * X.shape[1])
@@ -189,16 +187,14 @@ cdef class Forest:
for feature_idx in xrange(X.shape[1]):
vector[feature_idx] = X[sample_idx, feature_idx]
- nwv = ET_forest_neighbors(self._forest, vector, _curtail)
- if not nwv:
+ weights = ET_forest_neighbors(self._forest, vector, _curtail)
+ if not weights:
raise MemoryError()
- for i in xrange(nwv.n):
- nw = &nwv.a[i]
- adiacency[sample_idx, nw.key] = nw.weight
+ for feature_idx in xrange(X.shape[1]):
+ adiacency[sample_idx, feature_idx] = weights[feature_idx]
- free(nwv.a)
- free(nwv)
+ free(weights)
free(vector)
return adiacency
View
2  python/extratrees/cextratrees.c
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.15.1 on Thu Mar 29 13:49:06 2012 */
+/* Generated by Cython 0.15.1 on Sun Apr 1 00:10:29 2012 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
View
11 python/extratrees/cextratrees.pxd
@@ -51,16 +51,7 @@ cdef extern from "extratrees.h":
float *vector,
uint32_t curtail_min_size,
bool smooth)
-
- ctypedef struct neighbour_weight:
- uint32_t key
- double weight
-
- ctypedef struct neighbour_weight_vec:
- size_t n, m
- neighbour_weight *a
-
- cdef neighbour_weight_vec *ET_forest_neighbors(ET_forest *forest,
+ cdef double *ET_forest_neighbors(ET_forest *forest,
float *vector,
uint32_t curtail_min_size)
View
10 src/extratrees.h
@@ -95,14 +95,6 @@ typedef struct {
// --- predict types ---
typedef struct {
- uint32_t key;
- double weight;
-} neighbour_weight;
-
-typedef kvec_t(neighbour_weight) neighbour_weight_vec;
-
-
-typedef struct {
double label;
double probability;
} class_probability;
@@ -127,7 +119,7 @@ double ET_forest_predict_class_majority(ET_forest *forest, float *v,
uint32_t curtail_min_size);
double ET_forest_predict_class_bayes(ET_forest *forest, float *v,
uint32_t curtail_min_size, bool smooth);
-neighbour_weight_vec *ET_forest_neighbors(ET_forest *forest, float *vector,
+double *ET_forest_neighbors(ET_forest *forest, float *vector,
uint32_t curtail_min_size);
class_probability_vec *ET_forest_predict_probability(ET_forest *forest,
float *vector,
View
28 src/predict.c
@@ -189,15 +189,14 @@ uint_vec **ET_forest_neighbors_detail(ET_forest *forest, float *vector,
}
-neighbour_weight_vec *ET_forest_neighbors(ET_forest *forest, float *vector,
- uint32_t curtail_min_size) {
+double *ET_forest_neighbors(ET_forest *forest, float *vector,
+ uint32_t curtail_min_size) {
uint_vec **neigh_detail;
- neighbour_weight_vec *nwvec;
size_t n_trees = kv_size(forest->trees);
+ double *nwa = NULL;
- nwvec = malloc(sizeof(neighbour_weight_vec));
- check_mem(nwvec);
- kv_init(*nwvec);
+ nwa = calloc(sizeof(double), forest->n_samples);
+ check_mem(nwa);
neigh_detail = ET_forest_neighbors_detail(forest, vector, curtail_min_size);
check_mem(neigh_detail);
@@ -207,16 +206,8 @@ neighbour_weight_vec *ET_forest_neighbors(ET_forest *forest, float *vector,
double incr = 1.0 / (double) (kv_size(*tree_neighs) * n_trees);
for(size_t j = 0; j < kv_size(*tree_neighs); j++) {
- neighbour_weight *nw = NULL;
uint32_t sample_idx = kv_A(*tree_neighs, j);
-
- kal_getp(*nwvec, sample_idx, nw);
- if (nw == NULL) {
- kv_push(neighbour_weight, *nwvec,
- ((neighbour_weight) { sample_idx, incr }));
- } else {
- nw->weight += incr;
- }
+ nwa[sample_idx] += incr;
}
kv_destroy(*tree_neighs);
free(tree_neighs);
@@ -224,7 +215,7 @@ neighbour_weight_vec *ET_forest_neighbors(ET_forest *forest, float *vector,
free(neigh_detail);
exit:
- return nwvec;
+ return nwa;
}
@@ -319,7 +310,6 @@ class_probability_vec *ET_forest_predict_probability(ET_forest *forest,
bool smooth) {
bool error = true;
class_probability_vec *prob_vec = NULL;
- neighbour_weight_vec *nwvec = NULL;
double n_trees = kv_size(forest->trees);
prob_vec = malloc(sizeof(class_probability_vec));
@@ -380,10 +370,6 @@ class_probability_vec *ET_forest_predict_probability(ET_forest *forest,
kv_destroy(*prob_vec);
free(prob_vec);
}
- if (nwvec != NULL) {
- kv_destroy(*nwvec);
- free(nwvec);
- }
return prob_vec;
}
View
55,742 tests/test_importance.out
27,871 additions, 27,871 deletions not shown
View
9 tests/test_predict.c
@@ -18,6 +18,7 @@ void test_predict() {
float vector2[3] = {2, 1, 1};
float vector3[3] = {2.1, 1, 1};
double prediction;
+ double *neighbor_weights;
class_probability_vec *cpv;
problem_init(&prob, vectors, labels);
@@ -64,8 +65,16 @@ void test_predict() {
prediction = ET_forest_predict_class_bayes(forest, vector3, 1, false);
fprintf(stderr, "class prediction vector3 (bayes): %g\n", prediction);
+ neighbor_weights = ET_forest_neighbors(forest, vector3, 1);
+ fprintf(stderr, "neighbor weights for vector3:\n");
+ for(size_t i = 0; i < forest->n_samples; i++) {
+ fprintf(stderr, " - sample_idx: %zd. weight: %g\n",
+ i, neighbor_weights[i]);
+ }
+
ET_forest_destroy(forest);
free(forest);
+ free(neighbor_weights);
}
View
16,811 tests/test_predict.out
8,512 additions, 8,299 deletions not shown
View
2,432 tests/test_serialization.out
1,311 additions, 1,121 deletions not shown
View
1,564 tests/test_train.out
@@ -3,9 +3,9 @@ problem: samples=3 features=5
sample 0. label=2 features=1 4 1 4 7
sample 1. label=2 features=3 1 1 6 8
sample 2. label=2 features=2 6 1 5 0
-[DEBUG] src/train.c:391 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:193 labels are constant. generating leaf node ...
+[DEBUG] src/train.c:375 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:180 labels are constant. generating leaf node ...
>>> test: test_split_classification
problem: samples=5 features=6
sample 0. label=2 features=1 4 1 4 8 2
@@ -13,179 +13,179 @@ sample 1. label=2 features=3 1 1 6 6 2
sample 2. label=1 features=2 6 1 5 3 2
sample 3. label=3 features=3 2 1 7 3 3
sample 4. label=1 features=0 1 1 5 1 2
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:2
-[DEBUG] src/train.c:121 > class: 1 count:2
-[DEBUG] src/train.c:121 > class: 3 count:1
-[DEBUG] src/train.c:125 gini index: 0.64
-[DEBUG] src/train.c:391 node diversity for next split: 3.2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 3
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 1
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 3
-[DEBUG] src/train.c:252 threshold: 2.54861
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:121 > class: 3 count:1
-[DEBUG] src/train.c:125 gini index: 0.5
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:121 > class: 1 count:2
-[DEBUG] src/train.c:125 gini index: 0.444444
-[DEBUG] src/train.c:263 class diversity: 2.33333
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 2
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 3
-[DEBUG] src/train.c:252 threshold: 2.68581
-[DEBUG] src/train.c:83 sample_idx: 0, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 2 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 3 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:2
-[DEBUG] src/train.c:121 > class: 1 count:2
-[DEBUG] src/train.c:125 gini index: 0.5
-[DEBUG] src/train.c:263 class diversity: 2
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 3
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 1.80751
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:2
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:121 > class: 3 count:1
-[DEBUG] src/train.c:125 gini index: 0.625
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:263 class diversity: 2.5
-[DEBUG] src/train.c:292 split found. feature_idx: 5, threshold: 2.68581
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 3
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 1
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 6
-[DEBUG] src/train.c:252 threshold: 5.29207
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:121 > class: 1 count:2
-[DEBUG] src/train.c:125 gini index: 0.444444
-[DEBUG] src/train.c:263 class diversity: 1.33333
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 2
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 4.751
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:2
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0.444444
-[DEBUG] src/train.c:263 class diversity: 1.33333
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 3
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 2.07702
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:2
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0.444444
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:263 class diversity: 1.33333
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 5.29207
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 1.33333
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 3
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 1
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 2
-[DEBUG] src/train.c:252 threshold: 1.66787
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:121 > class: 1 count:1
-[DEBUG] src/train.c:125 gini index: 0.5
-[DEBUG] src/train.c:263 class diversity: 1
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 2
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 5.80101
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 2 count:1
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:114 class counter:
-[DEBUG] src/train.c:121 > class: 1 count:2
-[DEBUG] src/train.c:125 gini index: 0
-[DEBUG] src/train.c:263 class diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 5.80101
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:193 labels are constant. generating leaf node ...
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:2
+[DEBUG] src/train.c:106 > class: 1 count:2
+[DEBUG] src/train.c:106 > class: 3 count:1
+[DEBUG] src/train.c:110 gini index: 0.64
+[DEBUG] src/train.c:375 node diversity for next split: 3.2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 3
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 1
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 3
+[DEBUG] src/train.c:235 threshold: 2.54861
+[DEBUG] src/train.c:76 sample_idx: 0, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:106 > class: 3 count:1
+[DEBUG] src/train.c:110 gini index: 0.5
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:106 > class: 1 count:2
+[DEBUG] src/train.c:110 gini index: 0.444444
+[DEBUG] src/train.c:246 class diversity: 2.33333
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 2
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 3
+[DEBUG] src/train.c:235 threshold: 2.68581
+[DEBUG] src/train.c:76 sample_idx: 0, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 2 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 3 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:2
+[DEBUG] src/train.c:106 > class: 1 count:2
+[DEBUG] src/train.c:110 gini index: 0.5
+[DEBUG] src/train.c:246 class diversity: 2
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 3
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 1.80751
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:79 sample_idx: 2, val: 3 -> higher
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:2
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:106 > class: 3 count:1
+[DEBUG] src/train.c:110 gini index: 0.625
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:246 class diversity: 2.5
+[DEBUG] src/train.c:275 split found. feature_idx: 5, threshold: 2.68581
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 3
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 1
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 6
+[DEBUG] src/train.c:235 threshold: 5.29207
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:106 > class: 1 count:2
+[DEBUG] src/train.c:110 gini index: 0.444444
+[DEBUG] src/train.c:246 class diversity: 1.33333
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 2
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 4.751
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:2
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0.444444
+[DEBUG] src/train.c:246 class diversity: 1.33333
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 3
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 2.07702
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:79 sample_idx: 2, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:2
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0.444444
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:246 class diversity: 1.33333
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 5.29207
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 1.33333
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 3
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 1
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 2
+[DEBUG] src/train.c:235 threshold: 1.66787
+[DEBUG] src/train.c:76 sample_idx: 0, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 2 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:106 > class: 1 count:1
+[DEBUG] src/train.c:110 gini index: 0.5
+[DEBUG] src/train.c:246 class diversity: 1
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 2
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 5.80101
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 3 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 2 count:1
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:99 class counter:
+[DEBUG] src/train.c:106 > class: 1 count:2
+[DEBUG] src/train.c:110 gini index: 0
+[DEBUG] src/train.c:246 class diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 5.80101
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:180 labels are constant. generating leaf node ...
>>> test: test_split_regression
problem: samples=5 features=6
sample 0. label=2 features=1 4 1 4 8 2
@@ -193,123 +193,123 @@ sample 1. label=2 features=3 1 1 6 6 2
sample 2. label=1 features=2 6 1 5 3 2
sample 3. label=3 features=3 2 1 7 3 3
sample 4. label=1 features=0 1 1 5 1 2
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 6
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 1
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 3
-[DEBUG] src/train.c:252 threshold: 2.54861
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1.16667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 2
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 3
-[DEBUG] src/train.c:252 threshold: 2.68581
-[DEBUG] src/train.c:83 sample_idx: 0, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 2 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 3
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 1.80751
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 4
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 7
-[DEBUG] src/train.c:252 threshold: 5.93811
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1.16667
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 5
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 6
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 2.15019
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2.5
-[DEBUG] src/train.c:292 split found. feature_idx: 5, threshold: 2.68581
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 1
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 6
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 1
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 3
-[DEBUG] src/train.c:252 threshold: 0.92787
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.666667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 2
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 2
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 3
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 6
-[DEBUG] src/train.c:252 threshold: 5.37172
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.666667
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:230 selected feature WITHOUT replacement: 4
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 5.39517
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 5.39517
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:193 labels are constant. generating leaf node ...
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:193 labels are constant. generating leaf node ...
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 6
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 1
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 3
+[DEBUG] src/train.c:235 threshold: 2.54861
+[DEBUG] src/train.c:76 sample_idx: 0, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1.16667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 2
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 3
+[DEBUG] src/train.c:235 threshold: 2.68581
+[DEBUG] src/train.c:76 sample_idx: 0, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 2 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 3
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 1.80751
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:79 sample_idx: 2, val: 3 -> higher
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 4
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 7
+[DEBUG] src/train.c:235 threshold: 5.93811
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1.16667
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 5
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 6
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 2.15019
+[DEBUG] src/train.c:79 sample_idx: 0, val: 4 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 3, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2.5
+[DEBUG] src/train.c:275 split found. feature_idx: 5, threshold: 2.68581
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 1
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 6
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 1
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 3
+[DEBUG] src/train.c:235 threshold: 0.92787
+[DEBUG] src/train.c:79 sample_idx: 0, val: 1 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 3 -> higher
+[DEBUG] src/train.c:79 sample_idx: 2, val: 2 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.666667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 2
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 2
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 3
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 6
+[DEBUG] src/train.c:235 threshold: 5.37172
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.666667
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:217 selected feature WITHOUT replacement: 4
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 5.39517
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 3 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 5.39517
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:180 labels are constant. generating leaf node ...
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:180 labels are constant. generating leaf node ...
>>> test: test_forest
problem: samples=5 features=6
sample 0. label=2 features=1 4 1 4 8 2
@@ -317,492 +317,492 @@ sample 1. label=2 features=3 1 1 6 6 2
sample 2. label=1 features=2 6 1 5 3 2
sample 3. label=3 features=3 2 1 7 3 3
sample 4. label=1 features=0 1 1 5 1 2
-[DEBUG] src/train.c:478 ***** building tree # 0 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:478 ***** building tree # 1 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 3
-[DEBUG] src/train.c:252 threshold: 2.21
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1.16667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 0, threshold: 2.21
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 3 max: 3
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:449 node diversity for next split: 0.666667
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:478 ***** building tree # 2 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 3.5026
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 3.5026
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 5
-[DEBUG] src/train.c:252 threshold: 4.47536
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> higher
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 4.47536
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 5 max: 7
-[DEBUG] src/train.c:252 threshold: 5.86769
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 5.86769
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 6 max: 7
-[DEBUG] src/train.c:252 threshold: 6.60805
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 6.60805
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:478 ***** building tree # 3 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 4.60494
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2.66667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 4.60494
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:193 labels are constant. generating leaf node ...
-[DEBUG] src/train.c:449 node diversity for next split: 2.66667
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 3
-[DEBUG] src/train.c:252 threshold: 2.56006
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 2.56006
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 2 max: 6
-[DEBUG] src/train.c:252 threshold: 5.47723
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 5.47723
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:478 ***** building tree # 4 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 2.3432
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 2.3432
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 3 max: 8
-[DEBUG] src/train.c:252 threshold: 6.68703
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 3 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 6.68703
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:478 ***** building tree # 5 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 3
-[DEBUG] src/train.c:252 threshold: 2.16587
-[DEBUG] src/train.c:83 sample_idx: 0, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 2 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 5, threshold: 2.16587
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 1
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:478 ***** building tree # 6 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 3.9782
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 3.9782
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 1 max: 2
-[DEBUG] src/train.c:252 threshold: 1.0494
-[DEBUG] src/train.c:83 sample_idx: 0, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 2 -> higher
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 0, threshold: 1.0494
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 5 max: 7
-[DEBUG] src/train.c:252 threshold: 6.30878
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 6.30878
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:478 ***** building tree # 7 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 7
-[DEBUG] src/train.c:252 threshold: 6.68865
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 6.68865
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 1
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 4.33909
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.666667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 4.33909
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0.666667
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 4
-[DEBUG] src/train.c:236 values - min: 1 max: 8
-[DEBUG] src/train.c:252 threshold: 6.87974
-[DEBUG] src/train.c:83 sample_idx: 0, val: 8 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 4, threshold: 6.87974
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 2
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:478 ***** building tree # 8 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 6
-[DEBUG] src/train.c:252 threshold: 3.88251
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> higher
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 2.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 3.88251
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 5
-[DEBUG] src/train.c:236 values - min: 2 max: 2
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
-[DEBUG] src/train.c:449 node diversity for next split: 2
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 1
-[DEBUG] src/train.c:236 values - min: 1 max: 2
-[DEBUG] src/train.c:252 threshold: 1.47082
-[DEBUG] src/train.c:83 sample_idx: 1, val: 1 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 2 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 1 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.5
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 1, threshold: 1.47082
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0.5
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 2
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 0
-[DEBUG] src/train.c:236 values - min: 0 max: 3
-[DEBUG] src/train.c:252 threshold: 1.18357
-[DEBUG] src/train.c:83 sample_idx: 1, val: 3 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 0 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:278 diversity == 0
-[DEBUG] src/train.c:292 split found. feature_idx: 0, threshold: 1.18357
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:478 ***** building tree # 9 *****
-[DEBUG] src/train.c:391 node diversity for next split: 2.8
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 5
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 7
-[DEBUG] src/train.c:252 threshold: 6.60125
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> lower
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 3, val: 7 -> higher
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 1
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 6.60125
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 1
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 4
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 3
-[DEBUG] src/train.c:236 values - min: 4 max: 6
-[DEBUG] src/train.c:252 threshold: 5.89901
-[DEBUG] src/train.c:83 sample_idx: 0, val: 4 -> lower
-[DEBUG] src/train.c:83 sample_idx: 1, val: 6 -> higher
-[DEBUG] src/train.c:83 sample_idx: 2, val: 5 -> lower
-[DEBUG] src/train.c:83 sample_idx: 4, val: 5 -> lower
-[DEBUG] src/train.c:263 regr diversity: 0.666667
-[DEBUG] src/train.c:267 diversity is new best
-[DEBUG] src/train.c:292 split found. feature_idx: 3, threshold: 5.89901
-[DEBUG] src/train.c:449 node diversity for next split: 0
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 1
-[DEBUG] src/train.c:172 min size (1) reached. current sample size: 1
-[DEBUG] src/train.c:449 node diversity for next split: 0.666667
-[DEBUG] src/train.c:165 >>>>> split_problem. n samples: 3
-[DEBUG] src/train.c:204 number of features to test: 1
-[DEBUG] src/train.c:212 --- new loop cycle ---
-[DEBUG] src/train.c:217 selected feature WITH replacement
-[DEBUG] src/train.c:232 feature index: 2
-[DEBUG] src/train.c:236 values - min: 1 max: 1
-[DEBUG] src/train.c:244 constant feature
-[DEBUG] src/train.c:304 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 0 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 1 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 3
+[DEBUG] src/train.c:235 threshold: 2.21
+[DEBUG] src/train.c:76 sample_idx: 0, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1.16667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 0, threshold: 2.21
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 3 max: 3
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:433 node diversity for next split: 0.666667
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 2 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 3.5026
+[DEBUG] src/train.c:79 sample_idx: 0, val: 4 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 3, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 3.5026
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 5
+[DEBUG] src/train.c:235 threshold: 4.47536
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 5 -> higher
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 4.47536
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 5 max: 7
+[DEBUG] src/train.c:235 threshold: 5.86769
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 5.86769
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 6 max: 7
+[DEBUG] src/train.c:235 threshold: 6.60805
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 6.60805
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:467 ***** building tree # 3 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 4.60494
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 3 -> lower
+[DEBUG] src/train.c:76 sample_idx: 3, val: 3 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2.66667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 4.60494
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:180 labels are constant. generating leaf node ...
+[DEBUG] src/train.c:433 node diversity for next split: 2.66667
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 3
+[DEBUG] src/train.c:235 threshold: 2.56006
+[DEBUG] src/train.c:79 sample_idx: 2, val: 3 -> higher
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 2.56006
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 2 max: 6
+[DEBUG] src/train.c:235 threshold: 5.47723
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 3, val: 2 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 5.47723
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:467 ***** building tree # 4 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 2.3432
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:79 sample_idx: 2, val: 3 -> higher
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 2.3432
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 3 max: 8
+[DEBUG] src/train.c:235 threshold: 6.68703
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 3 -> lower
+[DEBUG] src/train.c:76 sample_idx: 3, val: 3 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 6.68703
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:467 ***** building tree # 5 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 3
+[DEBUG] src/train.c:235 threshold: 2.16587
+[DEBUG] src/train.c:76 sample_idx: 0, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 2 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 2 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 5, threshold: 2.16587
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 1
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 6 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 3.9782
+[DEBUG] src/train.c:79 sample_idx: 0, val: 4 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 3, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 3.9782
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 1 max: 2
+[DEBUG] src/train.c:235 threshold: 1.0494
+[DEBUG] src/train.c:76 sample_idx: 0, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 2 -> higher
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 0, threshold: 1.0494
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 5 max: 7
+[DEBUG] src/train.c:235 threshold: 6.30878
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 6.30878
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 7 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 7
+[DEBUG] src/train.c:235 threshold: 6.68865
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 6.68865
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 1
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 4.33909
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.666667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 4.33909
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0.666667
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 4
+[DEBUG] src/train.c:223 values - min: 1 max: 8
+[DEBUG] src/train.c:235 threshold: 6.87974
+[DEBUG] src/train.c:79 sample_idx: 0, val: 8 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 4, threshold: 6.87974
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 2
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:467 ***** building tree # 8 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 6
+[DEBUG] src/train.c:235 threshold: 3.88251
+[DEBUG] src/train.c:79 sample_idx: 0, val: 4 -> higher
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 2, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 3, val: 2 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 2.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 3.88251
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 5
+[DEBUG] src/train.c:223 values - min: 2 max: 2
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
+[DEBUG] src/train.c:433 node diversity for next split: 2
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 1
+[DEBUG] src/train.c:223 values - min: 1 max: 2
+[DEBUG] src/train.c:235 threshold: 1.47082
+[DEBUG] src/train.c:76 sample_idx: 1, val: 1 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 2 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 1 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.5
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 1, threshold: 1.47082
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0.5
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 2
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 0
+[DEBUG] src/train.c:223 values - min: 0 max: 3
+[DEBUG] src/train.c:235 threshold: 1.18357
+[DEBUG] src/train.c:79 sample_idx: 1, val: 3 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 0 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:261 diversity == 0
+[DEBUG] src/train.c:275 split found. feature_idx: 0, threshold: 1.18357
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:467 ***** building tree # 9 *****
+[DEBUG] src/train.c:375 node diversity for next split: 2.8
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 5
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 7
+[DEBUG] src/train.c:235 threshold: 6.60125
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:76 sample_idx: 1, val: 6 -> lower
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:79 sample_idx: 3, val: 7 -> higher
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 1
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 6.60125
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 1
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 4
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 3
+[DEBUG] src/train.c:223 values - min: 4 max: 6
+[DEBUG] src/train.c:235 threshold: 5.89901
+[DEBUG] src/train.c:76 sample_idx: 0, val: 4 -> lower
+[DEBUG] src/train.c:79 sample_idx: 1, val: 6 -> higher
+[DEBUG] src/train.c:76 sample_idx: 2, val: 5 -> lower
+[DEBUG] src/train.c:76 sample_idx: 4, val: 5 -> lower
+[DEBUG] src/train.c:246 regr diversity: 0.666667
+[DEBUG] src/train.c:250 diversity is new best
+[DEBUG] src/train.c:275 split found. feature_idx: 3, threshold: 5.89901
+[DEBUG] src/train.c:433 node diversity for next split: 0
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 1
+[DEBUG] src/train.c:159 min_split_size (2) NOT reached. sample size: 1
+[DEBUG] src/train.c:433 node diversity for next split: 0.666667
+[DEBUG] src/train.c:152 >>>>> split_problem. n samples: 3
+[DEBUG] src/train.c:191 number of features to test: 1
+[DEBUG] src/train.c:199 --- new loop cycle ---
+[DEBUG] src/train.c:204 selected feature WITH replacement
+[DEBUG] src/train.c:219 feature index: 2
+[DEBUG] src/train.c:223 values - min: 1 max: 1
+[DEBUG] src/train.c:227 constant feature
+[DEBUG] src/train.c:288 split NOT found. building leaf node ...
Please sign in to comment.
Something went wrong with that request. Please try again.