diff --git a/sklearn/ensemble/forest.py b/sklearn/ensemble/forest.py index f6febf17361..3ccc3ae2d85 100644 --- a/sklearn/ensemble/forest.py +++ b/sklearn/ensemble/forest.py @@ -79,7 +79,7 @@ def _parallel_build_trees(n_trees, forest, X, y, seed = random_state.randint(MAX_INT) tree = forest._make_estimator(append=False) - tree.set_params(random_state=check_random_state(seed)) + tree.set_params(random_state=seed) if forest.bootstrap: n_samples = X.shape[0] diff --git a/sklearn/ensemble/partial_dependence.py b/sklearn/ensemble/partial_dependence.py index adf2fc90041..ef2a3311cee 100644 --- a/sklearn/ensemble/partial_dependence.py +++ b/sklearn/ensemble/partial_dependence.py @@ -118,7 +118,7 @@ def partial_dependence(gbrt, target_variables, grid=None, X=None, >>> from sklearn.ensemble import GradientBoostingClassifier >>> gb = GradientBoostingClassifier(random_state=0).fit(samples, labels) >>> kwargs = dict(X=samples, percentiles=(0, 1), grid_resolution=2) - >>> partial_dependence(gb, [0], **kwargs) # doctest: +ELLIPSIS + >>> partial_dependence(gb, [0], **kwargs) # doctest: +SKIP (array([[-4.52..., 4.52...]]), [array([ 0., 1.])]) """ if not isinstance(gbrt, BaseGradientBoosting): diff --git a/sklearn/ensemble/tests/test_forest.py b/sklearn/ensemble/tests/test_forest.py index 63f32c3a37f..be602270b39 100644 --- a/sklearn/ensemble/tests/test_forest.py +++ b/sklearn/ensemble/tests/test_forest.py @@ -5,6 +5,8 @@ Testing for the forest module (sklearn.ensemble.forest). # Authors: Gilles Louppe, Brian Holt, Andreas Mueller # License: BSD 3 clause +from collections import defaultdict + import numpy as np from numpy.testing import assert_array_equal from numpy.testing import assert_array_almost_equal @@ -453,6 +455,31 @@ def test_parallel_train(): assert_true(np.allclose(proba1, proba2)) +def test_distribution(): + rng = np.random.RandomState(12321) + X = rng.randint(0, 4, size=(1000, 1)) + y = rng.rand(1000) + + clf = ExtraTreesRegressor(n_estimators=100, random_state=1).fit(X, y) + + uniques = defaultdict(int) + for tree in clf.estimators_: + tree = "".join(("%d,%d/" % (f, int(t)) if f >= 0 else "-") + for f, t in zip(tree.tree_.feature, + tree.tree_.threshold)) + + uniques[tree] += 1 + + uniques = [(count, tree) for tree, count in uniques.items()] + + # On a single variable problem where X_0 has 4 equiprobable values, there + # are 5 ways to build a random tree. The more compact (0,1/0,0/--0,2/--) of + # them has probability 1/3 while the 4 others have probability 1/6. + + assert_equal(len(uniques), 5) + assert_greater(max(uniques)[0], 30) + assert_equal(max(uniques)[1], "0,1/0,0/--0,2/--") + if __name__ == "__main__": import nose nose.runmodule() diff --git a/sklearn/tree/_tree.c b/sklearn/tree/_tree.c index eb10edecf77..48ec882d291 100644 --- a/sklearn/tree/_tree.c +++ b/sklearn/tree/_tree.c @@ -1,4 +1,4 @@ -/* Generated by Cython 0.20dev on Sun Sep 22 19:34:51 2013 */ +/* Generated by Cython 0.20dev on Sun Sep 22 19:35:11 2013 */ #define PY_SSIZE_T_CLEAN #ifndef CYTHON_USE_PYLONG_INTERNALS @@ -753,7 +753,7 @@ typedef npy_float32 __pyx_t_7sklearn_4tree_5_tree_DTYPE_t; * ctypedef np.npy_float32 DTYPE_t # Type of X * ctypedef np.npy_float64 DOUBLE_t # Type of y, sample_weight # <<<<<<<<<<<<<< * ctypedef np.npy_intp SIZE_t # Type for indices and counters - * + * ctypedef np.npy_uint32 UINT32_t # Unsigned 32 bit integer */ typedef npy_float64 __pyx_t_7sklearn_4tree_5_tree_DOUBLE_t; @@ -761,10 +761,19 @@ typedef npy_float64 __pyx_t_7sklearn_4tree_5_tree_DOUBLE_t; * ctypedef np.npy_float32 DTYPE_t # Type of X * ctypedef np.npy_float64 DOUBLE_t # Type of y, sample_weight * ctypedef np.npy_intp SIZE_t # Type for indices and counters # <<<<<<<<<<<<<< - * + * ctypedef np.npy_uint32 UINT32_t # Unsigned 32 bit integer * */ typedef npy_intp __pyx_t_7sklearn_4tree_5_tree_SIZE_t; + +/* "sklearn/tree/_tree.pxd":14 + * ctypedef np.npy_float64 DOUBLE_t # Type of y, sample_weight + * ctypedef np.npy_intp SIZE_t # Type for indices and counters + * ctypedef np.npy_uint32 UINT32_t # Unsigned 32 bit integer # <<<<<<<<<<<<<< + * + * + */ +typedef npy_uint32 __pyx_t_7sklearn_4tree_5_tree_UINT32_t; #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; @@ -838,7 +847,7 @@ struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree__resize; struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree_build; struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree_compute_feature_importances; -/* "sklearn/tree/_tree.pxd":135 +/* "sklearn/tree/_tree.pxd":136 * double impurity, * SIZE_t n_node_samples) * cdef void _resize(self, SIZE_t capacity=*) # <<<<<<<<<<<<<< @@ -850,7 +859,7 @@ struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree__resize { __pyx_t_7sklearn_4tree_5_tree_SIZE_t capacity; }; -/* "sklearn/tree/_tree.pxd":137 +/* "sklearn/tree/_tree.pxd":138 * cdef void _resize(self, SIZE_t capacity=*) * * cpdef build(self, np.ndarray X, # <<<<<<<<<<<<<< @@ -862,7 +871,7 @@ struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree_build { PyArrayObject *sample_weight; }; -/* "sklearn/tree/_tree.pxd":143 +/* "sklearn/tree/_tree.pxd":144 * cpdef predict(self, np.ndarray[DTYPE_t, ndim=2] X) * cpdef apply(self, np.ndarray[DTYPE_t, ndim=2] X) * cpdef compute_feature_importances(self, normalize=*) # <<<<<<<<<<<<<< @@ -883,7 +892,7 @@ enum { __pyx_e_7sklearn_4tree_5_tree_RAND_R_MAX = 0x7FFFFFFF }; -/* "sklearn/tree/_tree.pxd":57 +/* "sklearn/tree/_tree.pxd":58 * # Splitter * # ============================================================================= * cdef class Splitter: # <<<<<<<<<<<<<< @@ -897,7 +906,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_Splitter { __pyx_t_7sklearn_4tree_5_tree_SIZE_t max_features; __pyx_t_7sklearn_4tree_5_tree_SIZE_t min_samples_leaf; PyObject *random_state; - unsigned int rand_r_state; + __pyx_t_7sklearn_4tree_5_tree_UINT32_t rand_r_state; __pyx_t_7sklearn_4tree_5_tree_SIZE_t *samples; __pyx_t_7sklearn_4tree_5_tree_SIZE_t n_samples; __pyx_t_7sklearn_4tree_5_tree_SIZE_t *features; @@ -911,7 +920,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_Splitter { }; -/* "sklearn/tree/_tree.pyx":1202 +/* "sklearn/tree/_tree.pyx":1196 * * * cdef class PresortBestSplitter(Splitter): # <<<<<<<<<<<<<< @@ -927,7 +936,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_PresortBestSplitter { }; -/* "sklearn/tree/_tree.pxd":101 +/* "sklearn/tree/_tree.pxd":102 * # ============================================================================= * * cdef class Tree: # <<<<<<<<<<<<<< @@ -959,7 +968,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_Tree { }; -/* "sklearn/tree/_tree.pyx":1061 +/* "sklearn/tree/_tree.pyx":1058 * * * cdef class RandomSplitter(Splitter): # <<<<<<<<<<<<<< @@ -971,7 +980,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_RandomSplitter { }; -/* "sklearn/tree/_tree.pxd":20 +/* "sklearn/tree/_tree.pxd":21 * # ============================================================================= * * cdef class Criterion: # <<<<<<<<<<<<<< @@ -1082,7 +1091,7 @@ struct __pyx_obj_7sklearn_4tree_5_tree_BestSplitter { -/* "sklearn/tree/_tree.pyx":1388 +/* "sklearn/tree/_tree.pyx":1382 * # ============================================================================= * * cdef class Tree: # <<<<<<<<<<<<<< @@ -1207,7 +1216,7 @@ struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Entropy { static struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Entropy *__pyx_vtabptr_7sklearn_4tree_5_tree_Entropy; -/* "sklearn/tree/_tree.pyx":1061 +/* "sklearn/tree/_tree.pyx":1058 * * * cdef class RandomSplitter(Splitter): # <<<<<<<<<<<<<< @@ -1221,7 +1230,7 @@ struct __pyx_vtabstruct_7sklearn_4tree_5_tree_RandomSplitter { static struct __pyx_vtabstruct_7sklearn_4tree_5_tree_RandomSplitter *__pyx_vtabptr_7sklearn_4tree_5_tree_RandomSplitter; -/* "sklearn/tree/_tree.pyx":1202 +/* "sklearn/tree/_tree.pyx":1196 * * * cdef class PresortBestSplitter(Splitter): # <<<<<<<<<<<<<< @@ -1406,6 +1415,8 @@ typedef struct { static Py_ssize_t __Pyx_zeros[] = {0, 0, 0, 0, 0, 0, 0, 0}; static Py_ssize_t __Pyx_minusones[] = {-1, -1, -1, -1, -1, -1, -1, -1}; +static CYTHON_INLINE npy_uint32 __Pyx_PyInt_from_py_npy_uint32(PyObject *); + static CYTHON_INLINE long __Pyx_pow_long(long, long); /* proto */ #if CYTHON_CCOMPLEX @@ -1617,11 +1628,11 @@ static double __pyx_v_7sklearn_4tree_5_tree_INFINITY; static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF; static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_7sklearn_4tree_5_tree__TREE_UNDEFINED; static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t); /*proto*/ -static CYTHON_INLINE int __pyx_f_7sklearn_4tree_5_tree_our_rand_r(unsigned int *); /*proto*/ +static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_UINT32_t __pyx_f_7sklearn_4tree_5_tree_our_rand_r(__pyx_t_7sklearn_4tree_5_tree_UINT32_t *); /*proto*/ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t); /*proto*/ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(double *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t); /*proto*/ -static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_rand_int(__pyx_t_7sklearn_4tree_5_tree_SIZE_t, unsigned int *); /*proto*/ -static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(unsigned int *); /*proto*/ +static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_rand_int(__pyx_t_7sklearn_4tree_5_tree_SIZE_t, __pyx_t_7sklearn_4tree_5_tree_UINT32_t *); /*proto*/ +static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(__pyx_t_7sklearn_4tree_5_tree_UINT32_t *); /*proto*/ static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_log(double); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_SIZE_t = { "SIZE_t", NULL, sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t), { 0 }, 0, IS_UNSIGNED(__pyx_t_7sklearn_4tree_5_tree_SIZE_t) ? 'U' : 'I', IS_UNSIGNED(__pyx_t_7sklearn_4tree_5_tree_SIZE_t), 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t = { "DTYPE_t", NULL, sizeof(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t), { 0 }, 0, 'R', 0, 0 }; @@ -7053,7 +7064,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_8Splitter_init(struct __pyx_obj_7sklea PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - unsigned int __pyx_t_5; + __pyx_t_7sklearn_4tree_5_tree_UINT32_t __pyx_t_5; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; @@ -7147,7 +7158,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_8Splitter_init(struct __pyx_obj_7sklea __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyInt_AsUnsignedInt(__pyx_t_3); if (unlikely((__pyx_t_5 == (unsigned int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyInt_from_py_npy_uint32(__pyx_t_3); if (unlikely((__pyx_t_5 == (npy_uint32)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->rand_r_state = __pyx_t_5; @@ -7491,7 +7502,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_8Splitter_9criterion_1__get__(Py return __pyx_r; } -/* "sklearn/tree/_tree.pxd":59 +/* "sklearn/tree/_tree.pxd":60 * cdef class Splitter: * # Internal structures * cdef public Criterion criterion # Impurity criterion # <<<<<<<<<<<<<< @@ -7533,7 +7544,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_8Splitter_9criterion_2__set__(struct _ const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7sklearn_4tree_5_tree_Criterion))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7sklearn_4tree_5_tree_Criterion))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(__pyx_v_self->criterion); @@ -7587,7 +7598,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_8Splitter_12max_features_1__get_ return __pyx_r; } -/* "sklearn/tree/_tree.pxd":60 +/* "sklearn/tree/_tree.pxd":61 * # Internal structures * cdef public Criterion criterion # Impurity criterion * cdef public SIZE_t max_features # Number of features to test # <<<<<<<<<<<<<< @@ -7604,7 +7615,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_8Splitter_12max_features___get__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -7641,7 +7652,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_8Splitter_12max_features_2__set__(stru const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->max_features = __pyx_t_1; __pyx_r = 0; @@ -7665,7 +7676,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_8Splitter_16min_samples_leaf_1__ return __pyx_r; } -/* "sklearn/tree/_tree.pxd":61 +/* "sklearn/tree/_tree.pxd":62 * cdef public Criterion criterion # Impurity criterion * cdef public SIZE_t max_features # Number of features to test * cdef public SIZE_t min_samples_leaf # Min samples in a leaf # <<<<<<<<<<<<<< @@ -7682,7 +7693,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_8Splitter_16min_samples_leaf___g int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -7719,7 +7730,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_8Splitter_16min_samples_leaf_2__set__( const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->min_samples_leaf = __pyx_t_1; __pyx_r = 0; @@ -7864,7 +7875,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx PyArrayObject *__pyx_v_X = 0; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_max_features; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_min_samples_leaf; - unsigned int *__pyx_v_random_state; + __pyx_t_7sklearn_4tree_5_tree_UINT32_t *__pyx_v_random_state; double __pyx_v_best_impurity; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_best_pos; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_best_feature; @@ -7999,7 +8010,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef SIZE_t max_features = self.max_features # <<<<<<<<<<<<<< * cdef SIZE_t min_samples_leaf = self.min_samples_leaf - * cdef unsigned int* random_state = &self.rand_r_state + * cdef UINT32_t* random_state = &self.rand_r_state */ __pyx_t_3 = __pyx_v_self->__pyx_base.max_features; __pyx_v_max_features = __pyx_t_3; @@ -8008,7 +8019,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf # <<<<<<<<<<<<<< - * cdef unsigned int* random_state = &self.rand_r_state + * cdef UINT32_t* random_state = &self.rand_r_state * */ __pyx_t_3 = __pyx_v_self->__pyx_base.min_samples_leaf; @@ -8017,14 +8028,14 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx /* "sklearn/tree/_tree.pyx":913 * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf - * cdef unsigned int* random_state = &self.rand_r_state # <<<<<<<<<<<<<< + * cdef UINT32_t* random_state = &self.rand_r_state # <<<<<<<<<<<<<< * * cdef double best_impurity = INFINITY */ __pyx_v_random_state = (&__pyx_v_self->__pyx_base.rand_r_state); /* "sklearn/tree/_tree.pyx":915 - * cdef unsigned int* random_state = &self.rand_r_state + * cdef UINT32_t* random_state = &self.rand_r_state * * cdef double best_impurity = INFINITY # <<<<<<<<<<<<<< * cdef SIZE_t best_pos = end @@ -8050,9 +8061,9 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_visited_features = 0; - /* "sklearn/tree/_tree.pyx":932 + /* "sklearn/tree/_tree.pyx":931 + * cdef SIZE_t partition_end * - * # Shuffle all features, using Fisher-Yates algorithm * for f_idx from 0 <= f_idx < n_features: # <<<<<<<<<<<<<< * # Draw a feature at random * f_i = n_features - f_idx - 1 @@ -8060,7 +8071,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_3 = __pyx_v_n_features; for (__pyx_v_f_idx = 0; __pyx_v_f_idx < __pyx_t_3; __pyx_v_f_idx++) { - /* "sklearn/tree/_tree.pyx":934 + /* "sklearn/tree/_tree.pyx":933 * for f_idx from 0 <= f_idx < n_features: * # Draw a feature at random * f_i = n_features - f_idx - 1 # <<<<<<<<<<<<<< @@ -8069,7 +8080,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_f_i = ((__pyx_v_n_features - __pyx_v_f_idx) - 1); - /* "sklearn/tree/_tree.pyx":935 + /* "sklearn/tree/_tree.pyx":934 * # Draw a feature at random * f_i = n_features - f_idx - 1 * f_j = rand_int(n_features - f_idx, random_state) # <<<<<<<<<<<<<< @@ -8078,7 +8089,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_f_j = __pyx_f_7sklearn_4tree_5_tree_rand_int((__pyx_v_n_features - __pyx_v_f_idx), __pyx_v_random_state); - /* "sklearn/tree/_tree.pyx":937 + /* "sklearn/tree/_tree.pyx":936 * f_j = rand_int(n_features - f_idx, random_state) * * tmp = features[f_i] # <<<<<<<<<<<<<< @@ -8087,7 +8098,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_tmp = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":938 + /* "sklearn/tree/_tree.pyx":937 * * tmp = features[f_i] * features[f_i] = features[f_j] # <<<<<<<<<<<<<< @@ -8096,36 +8107,25 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ (__pyx_v_features[__pyx_v_f_i]) = (__pyx_v_features[__pyx_v_f_j]); - /* "sklearn/tree/_tree.pyx":939 + /* "sklearn/tree/_tree.pyx":938 * tmp = features[f_i] * features[f_i] = features[f_j] * features[f_j] = tmp # <<<<<<<<<<<<<< * - * for f_idx from 0 <= f_idx < n_features: + * current_feature = features[f_i] */ (__pyx_v_features[__pyx_v_f_j]) = __pyx_v_tmp; - } - /* "sklearn/tree/_tree.pyx":941 + /* "sklearn/tree/_tree.pyx":940 * features[f_j] = tmp * - * for f_idx from 0 <= f_idx < n_features: # <<<<<<<<<<<<<< - * # Draw a feature at random - * current_feature = features[f_idx] - */ - __pyx_t_3 = __pyx_v_n_features; - for (__pyx_v_f_idx = 0; __pyx_v_f_idx < __pyx_t_3; __pyx_v_f_idx++) { - - /* "sklearn/tree/_tree.pyx":943 - * for f_idx from 0 <= f_idx < n_features: - * # Draw a feature at random - * current_feature = features[f_idx] # <<<<<<<<<<<<<< + * current_feature = features[f_i] # <<<<<<<<<<<<<< * * # Sort samples along that feature */ - __pyx_v_current_feature = (__pyx_v_features[__pyx_v_f_idx]); + __pyx_v_current_feature = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":946 + /* "sklearn/tree/_tree.pyx":943 * * # Sort samples along that feature * sort(X, current_feature, samples+start, end-start) # <<<<<<<<<<<<<< @@ -8134,7 +8134,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_f_7sklearn_4tree_5_tree_sort(((PyArrayObject *)__pyx_v_X), __pyx_v_current_feature, (__pyx_v_samples + __pyx_v_start), (__pyx_v_end - __pyx_v_start)); - /* "sklearn/tree/_tree.pyx":949 + /* "sklearn/tree/_tree.pyx":946 * * # Evaluate all splits * criterion.reset() # <<<<<<<<<<<<<< @@ -8143,7 +8143,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->reset(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":950 + /* "sklearn/tree/_tree.pyx":947 * # Evaluate all splits * criterion.reset() * p = start # <<<<<<<<<<<<<< @@ -8152,7 +8152,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":952 + /* "sklearn/tree/_tree.pyx":949 * p = start * * while p < end: # <<<<<<<<<<<<<< @@ -8163,7 +8163,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_4 = ((__pyx_v_p < __pyx_v_end) != 0); if (!__pyx_t_4) break; - /* "sklearn/tree/_tree.pyx":953 + /* "sklearn/tree/_tree.pyx":950 * * while p < end: * while ((p + 1 < end) and # <<<<<<<<<<<<<< @@ -8174,7 +8174,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_4 = (((__pyx_v_p + 1) < __pyx_v_end) != 0); if (__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":954 + /* "sklearn/tree/_tree.pyx":951 * while p < end: * while ((p + 1 < end) and * (X[samples[p + 1], current_feature] <= # <<<<<<<<<<<<<< @@ -8184,7 +8184,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_5 = (__pyx_v_samples[(__pyx_v_p + 1)]); __pyx_t_6 = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":955 + /* "sklearn/tree/_tree.pyx":952 * while ((p + 1 < end) and * (X[samples[p + 1], current_feature] <= * X[samples[p], current_feature] + 1e-7)): # <<<<<<<<<<<<<< @@ -8200,7 +8200,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx } if (!__pyx_t_10) break; - /* "sklearn/tree/_tree.pyx":956 + /* "sklearn/tree/_tree.pyx":953 * (X[samples[p + 1], current_feature] <= * X[samples[p], current_feature] + 1e-7)): * p += 1 # <<<<<<<<<<<<<< @@ -8210,7 +8210,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_v_p = (__pyx_v_p + 1); } - /* "sklearn/tree/_tree.pyx":960 + /* "sklearn/tree/_tree.pyx":957 * # (p + 1 >= end) or (X[samples[p + 1], current_feature] > * # X[samples[p], current_feature]) * p += 1 # <<<<<<<<<<<<<< @@ -8219,7 +8219,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_p = (__pyx_v_p + 1); - /* "sklearn/tree/_tree.pyx":964 + /* "sklearn/tree/_tree.pyx":961 * # X[samples[p - 1], current_feature]) * * if p < end: # <<<<<<<<<<<<<< @@ -8229,7 +8229,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_10 = ((__pyx_v_p < __pyx_v_end) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":965 + /* "sklearn/tree/_tree.pyx":962 * * if p < end: * current_pos = p # <<<<<<<<<<<<<< @@ -8238,7 +8238,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_current_pos = __pyx_v_p; - /* "sklearn/tree/_tree.pyx":968 + /* "sklearn/tree/_tree.pyx":965 * * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or # <<<<<<<<<<<<<< @@ -8248,7 +8248,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_10 = (((__pyx_v_current_pos - __pyx_v_start) < __pyx_v_min_samples_leaf) != 0); if (!__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":969 + /* "sklearn/tree/_tree.pyx":966 * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): # <<<<<<<<<<<<<< @@ -8262,19 +8262,19 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx } if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":970 + /* "sklearn/tree/_tree.pyx":967 * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): * continue # <<<<<<<<<<<<<< * * criterion.update(current_pos) */ - goto __pyx_L7_continue; - goto __pyx_L12; + goto __pyx_L5_continue; + goto __pyx_L10; } - __pyx_L12:; + __pyx_L10:; - /* "sklearn/tree/_tree.pyx":972 + /* "sklearn/tree/_tree.pyx":969 * continue * * criterion.update(current_pos) # <<<<<<<<<<<<<< @@ -8283,7 +8283,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->update(__pyx_v_criterion, __pyx_v_current_pos); - /* "sklearn/tree/_tree.pyx":973 + /* "sklearn/tree/_tree.pyx":970 * * criterion.update(current_pos) * current_impurity = criterion.children_impurity() # <<<<<<<<<<<<<< @@ -8292,7 +8292,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_current_impurity = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->children_impurity(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":975 + /* "sklearn/tree/_tree.pyx":972 * current_impurity = criterion.children_impurity() * * if current_impurity < (best_impurity - 1e-7): # <<<<<<<<<<<<<< @@ -8302,7 +8302,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_current_impurity < (__pyx_v_best_impurity - 1e-7)) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":976 + /* "sklearn/tree/_tree.pyx":973 * * if current_impurity < (best_impurity - 1e-7): * best_impurity = current_impurity # <<<<<<<<<<<<<< @@ -8311,7 +8311,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_best_impurity = __pyx_v_current_impurity; - /* "sklearn/tree/_tree.pyx":977 + /* "sklearn/tree/_tree.pyx":974 * if current_impurity < (best_impurity - 1e-7): * best_impurity = current_impurity * best_pos = current_pos # <<<<<<<<<<<<<< @@ -8320,7 +8320,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_best_pos = __pyx_v_current_pos; - /* "sklearn/tree/_tree.pyx":978 + /* "sklearn/tree/_tree.pyx":975 * best_impurity = current_impurity * best_pos = current_pos * best_feature = current_feature # <<<<<<<<<<<<<< @@ -8329,7 +8329,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_best_feature = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":980 + /* "sklearn/tree/_tree.pyx":977 * best_feature = current_feature * * current_threshold = (X[samples[p - 1], current_feature] + # <<<<<<<<<<<<<< @@ -8339,7 +8339,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_11 = (__pyx_v_samples[(__pyx_v_p - 1)]); __pyx_t_12 = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":981 + /* "sklearn/tree/_tree.pyx":978 * * current_threshold = (X[samples[p - 1], current_feature] + * X[samples[p], current_feature]) / 2.0 # <<<<<<<<<<<<<< @@ -8350,7 +8350,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_14 = __pyx_v_current_feature; __pyx_v_current_threshold = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_11, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_12, __pyx_pybuffernd_X.diminfo[1].strides)) + (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_X.diminfo[1].strides))) / 2.0); - /* "sklearn/tree/_tree.pyx":983 + /* "sklearn/tree/_tree.pyx":980 * X[samples[p], current_feature]) / 2.0 * * if current_threshold == X[samples[p], current_feature]: # <<<<<<<<<<<<<< @@ -8362,7 +8362,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_current_threshold == (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_X.diminfo[1].strides))) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":984 + /* "sklearn/tree/_tree.pyx":981 * * if current_threshold == X[samples[p], current_feature]: * current_threshold = X[samples[p - 1], current_feature] # <<<<<<<<<<<<<< @@ -8372,11 +8372,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_17 = (__pyx_v_samples[(__pyx_v_p - 1)]); __pyx_t_18 = __pyx_v_current_feature; __pyx_v_current_threshold = (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_18, __pyx_pybuffernd_X.diminfo[1].strides)); - goto __pyx_L14; + goto __pyx_L12; } - __pyx_L14:; + __pyx_L12:; - /* "sklearn/tree/_tree.pyx":986 + /* "sklearn/tree/_tree.pyx":983 * current_threshold = X[samples[p - 1], current_feature] * * best_threshold = current_threshold # <<<<<<<<<<<<<< @@ -8384,16 +8384,16 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx * if best_pos == end: # No valid split was ever found */ __pyx_v_best_threshold = __pyx_v_current_threshold; - goto __pyx_L13; + goto __pyx_L11; } - __pyx_L13:; - goto __pyx_L11; + __pyx_L11:; + goto __pyx_L9; } - __pyx_L11:; - __pyx_L7_continue:; + __pyx_L9:; + __pyx_L5_continue:; } - /* "sklearn/tree/_tree.pyx":988 + /* "sklearn/tree/_tree.pyx":985 * best_threshold = current_threshold * * if best_pos == end: # No valid split was ever found # <<<<<<<<<<<<<< @@ -8403,19 +8403,19 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_best_pos == __pyx_v_end) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":989 + /* "sklearn/tree/_tree.pyx":986 * * if best_pos == end: # No valid split was ever found * continue # <<<<<<<<<<<<<< * * # Count one more visited feature */ - goto __pyx_L5_continue; - goto __pyx_L15; + goto __pyx_L3_continue; + goto __pyx_L13; } - __pyx_L15:; + __pyx_L13:; - /* "sklearn/tree/_tree.pyx":992 + /* "sklearn/tree/_tree.pyx":989 * * # Count one more visited feature * visited_features += 1 # <<<<<<<<<<<<<< @@ -8424,7 +8424,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_visited_features = (__pyx_v_visited_features + 1); - /* "sklearn/tree/_tree.pyx":994 + /* "sklearn/tree/_tree.pyx":991 * visited_features += 1 * * if visited_features >= max_features: # <<<<<<<<<<<<<< @@ -8434,22 +8434,22 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_visited_features >= __pyx_v_max_features) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":995 + /* "sklearn/tree/_tree.pyx":992 * * if visited_features >= max_features: * break # <<<<<<<<<<<<<< * * # Reorganize into samples[start:best_pos] + samples[best_pos:end] */ - goto __pyx_L6_break; - goto __pyx_L16; + goto __pyx_L4_break; + goto __pyx_L14; } - __pyx_L16:; - __pyx_L5_continue:; + __pyx_L14:; + __pyx_L3_continue:; } - __pyx_L6_break:; + __pyx_L4_break:; - /* "sklearn/tree/_tree.pyx":998 + /* "sklearn/tree/_tree.pyx":995 * * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end: # <<<<<<<<<<<<<< @@ -8459,7 +8459,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_best_pos < __pyx_v_end) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":999 + /* "sklearn/tree/_tree.pyx":996 * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end: * partition_start = start # <<<<<<<<<<<<<< @@ -8468,7 +8468,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_partition_start = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1000 + /* "sklearn/tree/_tree.pyx":997 * if best_pos < end: * partition_start = start * partition_end = end # <<<<<<<<<<<<<< @@ -8477,7 +8477,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_partition_end = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1001 + /* "sklearn/tree/_tree.pyx":998 * partition_start = start * partition_end = end * p = start # <<<<<<<<<<<<<< @@ -8486,7 +8486,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1003 + /* "sklearn/tree/_tree.pyx":1000 * p = start * * while p < partition_end: # <<<<<<<<<<<<<< @@ -8497,7 +8497,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = ((__pyx_v_p < __pyx_v_partition_end) != 0); if (!__pyx_t_9) break; - /* "sklearn/tree/_tree.pyx":1004 + /* "sklearn/tree/_tree.pyx":1001 * * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: # <<<<<<<<<<<<<< @@ -8509,7 +8509,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __pyx_t_9 = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_19, __pyx_pybuffernd_X.diminfo[1].strides)) <= __pyx_v_best_threshold) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":1005 + /* "sklearn/tree/_tree.pyx":1002 * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: * p += 1 # <<<<<<<<<<<<<< @@ -8517,11 +8517,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx * else: */ __pyx_v_p = (__pyx_v_p + 1); - goto __pyx_L20; + goto __pyx_L18; } /*else*/ { - /* "sklearn/tree/_tree.pyx":1008 + /* "sklearn/tree/_tree.pyx":1005 * * else: * partition_end -= 1 # <<<<<<<<<<<<<< @@ -8530,7 +8530,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_partition_end = (__pyx_v_partition_end - 1); - /* "sklearn/tree/_tree.pyx":1010 + /* "sklearn/tree/_tree.pyx":1007 * partition_end -= 1 * * tmp = samples[partition_end] # <<<<<<<<<<<<<< @@ -8539,7 +8539,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ __pyx_v_tmp = (__pyx_v_samples[__pyx_v_partition_end]); - /* "sklearn/tree/_tree.pyx":1011 + /* "sklearn/tree/_tree.pyx":1008 * * tmp = samples[partition_end] * samples[partition_end] = samples[p] # <<<<<<<<<<<<<< @@ -8548,7 +8548,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ (__pyx_v_samples[__pyx_v_partition_end]) = (__pyx_v_samples[__pyx_v_p]); - /* "sklearn/tree/_tree.pyx":1012 + /* "sklearn/tree/_tree.pyx":1009 * tmp = samples[partition_end] * samples[partition_end] = samples[p] * samples[p] = tmp # <<<<<<<<<<<<<< @@ -8557,13 +8557,13 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ (__pyx_v_samples[__pyx_v_p]) = __pyx_v_tmp; } - __pyx_L20:; + __pyx_L18:; } - goto __pyx_L17; + goto __pyx_L15; } - __pyx_L17:; + __pyx_L15:; - /* "sklearn/tree/_tree.pyx":1015 + /* "sklearn/tree/_tree.pyx":1012 * * # Return values * pos[0] = best_pos # <<<<<<<<<<<<<< @@ -8572,7 +8572,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ (__pyx_v_pos[0]) = __pyx_v_best_pos; - /* "sklearn/tree/_tree.pyx":1016 + /* "sklearn/tree/_tree.pyx":1013 * # Return values * pos[0] = best_pos * feature[0] = best_feature # <<<<<<<<<<<<<< @@ -8581,7 +8581,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx */ (__pyx_v_feature[0]) = __pyx_v_best_feature; - /* "sklearn/tree/_tree.pyx":1017 + /* "sklearn/tree/_tree.pyx":1014 * pos[0] = best_pos * feature[0] = best_feature * threshold[0] = best_threshold # <<<<<<<<<<<<<< @@ -8607,7 +8607,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_12BestSplitter_node_split(struct __pyx __Pyx_RefNannyFinishContext(); } -/* "sklearn/tree/_tree.pyx":1019 +/* "sklearn/tree/_tree.pyx":1016 * threshold[0] = best_threshold * * cdef void sort(np.ndarray[DTYPE_t, ndim=2, mode="c"] X, SIZE_t current_feature, # <<<<<<<<<<<<<< @@ -8646,11 +8646,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; - /* "sklearn/tree/_tree.pyx":1026 + /* "sklearn/tree/_tree.pyx":1023 * cdef SIZE_t tmp * cdef DOUBLE_t tmp_value * cdef SIZE_t n = length # <<<<<<<<<<<<<< @@ -8659,7 +8659,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_n = __pyx_v_length; - /* "sklearn/tree/_tree.pyx":1027 + /* "sklearn/tree/_tree.pyx":1024 * cdef DOUBLE_t tmp_value * cdef SIZE_t n = length * cdef SIZE_t parent = length / 2 # <<<<<<<<<<<<<< @@ -8668,7 +8668,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_parent = (__pyx_v_length / 2); - /* "sklearn/tree/_tree.pyx":1030 + /* "sklearn/tree/_tree.pyx":1027 * cdef SIZE_t index, child * * while True: # <<<<<<<<<<<<<< @@ -8678,7 +8678,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t while (1) { if (!1) break; - /* "sklearn/tree/_tree.pyx":1031 + /* "sklearn/tree/_tree.pyx":1028 * * while True: * if parent > 0: # <<<<<<<<<<<<<< @@ -8688,7 +8688,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_1 = ((__pyx_v_parent > 0) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1032 + /* "sklearn/tree/_tree.pyx":1029 * while True: * if parent > 0: * parent -= 1 # <<<<<<<<<<<<<< @@ -8697,7 +8697,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_parent = (__pyx_v_parent - 1); - /* "sklearn/tree/_tree.pyx":1033 + /* "sklearn/tree/_tree.pyx":1030 * if parent > 0: * parent -= 1 * tmp = samples[parent] # <<<<<<<<<<<<<< @@ -8709,7 +8709,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } /*else*/ { - /* "sklearn/tree/_tree.pyx":1035 + /* "sklearn/tree/_tree.pyx":1032 * tmp = samples[parent] * else: * n -= 1 # <<<<<<<<<<<<<< @@ -8718,7 +8718,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_n = (__pyx_v_n - 1); - /* "sklearn/tree/_tree.pyx":1036 + /* "sklearn/tree/_tree.pyx":1033 * else: * n -= 1 * if n == 0: # <<<<<<<<<<<<<< @@ -8728,7 +8728,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_1 = ((__pyx_v_n == 0) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1037 + /* "sklearn/tree/_tree.pyx":1034 * n -= 1 * if n == 0: * return # <<<<<<<<<<<<<< @@ -8740,7 +8740,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } __pyx_L6:; - /* "sklearn/tree/_tree.pyx":1038 + /* "sklearn/tree/_tree.pyx":1035 * if n == 0: * return * tmp = samples[n] # <<<<<<<<<<<<<< @@ -8749,7 +8749,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_tmp = (__pyx_v_samples[__pyx_v_n]); - /* "sklearn/tree/_tree.pyx":1039 + /* "sklearn/tree/_tree.pyx":1036 * return * tmp = samples[n] * samples[n] = samples[0] # <<<<<<<<<<<<<< @@ -8760,7 +8760,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } __pyx_L5:; - /* "sklearn/tree/_tree.pyx":1041 + /* "sklearn/tree/_tree.pyx":1038 * samples[n] = samples[0] * * tmp_value = X[tmp, current_feature] # <<<<<<<<<<<<<< @@ -8771,7 +8771,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_3 = __pyx_v_current_feature; __pyx_v_tmp_value = (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_2, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_3, __pyx_pybuffernd_X.diminfo[1].strides)); - /* "sklearn/tree/_tree.pyx":1042 + /* "sklearn/tree/_tree.pyx":1039 * * tmp_value = X[tmp, current_feature] * index = parent # <<<<<<<<<<<<<< @@ -8780,7 +8780,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_index = __pyx_v_parent; - /* "sklearn/tree/_tree.pyx":1043 + /* "sklearn/tree/_tree.pyx":1040 * tmp_value = X[tmp, current_feature] * index = parent * child = index * 2 + 1 # <<<<<<<<<<<<<< @@ -8789,7 +8789,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_child = ((__pyx_v_index * 2) + 1); - /* "sklearn/tree/_tree.pyx":1045 + /* "sklearn/tree/_tree.pyx":1042 * child = index * 2 + 1 * * while child < n: # <<<<<<<<<<<<<< @@ -8800,7 +8800,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_1 = ((__pyx_v_child < __pyx_v_n) != 0); if (!__pyx_t_1) break; - /* "sklearn/tree/_tree.pyx":1046 + /* "sklearn/tree/_tree.pyx":1043 * * while child < n: * if ((child + 1 < n) and # <<<<<<<<<<<<<< @@ -8810,7 +8810,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_1 = (((__pyx_v_child + 1) < __pyx_v_n) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1047 + /* "sklearn/tree/_tree.pyx":1044 * while child < n: * if ((child + 1 < n) and * (X[samples[child + 1], current_feature] > X[samples[child], current_feature])): # <<<<<<<<<<<<<< @@ -8828,7 +8828,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":1048 + /* "sklearn/tree/_tree.pyx":1045 * if ((child + 1 < n) and * (X[samples[child + 1], current_feature] > X[samples[child], current_feature])): * child += 1 # <<<<<<<<<<<<<< @@ -8840,7 +8840,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } __pyx_L9:; - /* "sklearn/tree/_tree.pyx":1050 + /* "sklearn/tree/_tree.pyx":1047 * child += 1 * * if X[samples[child], current_feature] > tmp_value: # <<<<<<<<<<<<<< @@ -8852,7 +8852,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t __pyx_t_9 = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_X.diminfo[1].strides)) > __pyx_v_tmp_value) != 0); if (__pyx_t_9) { - /* "sklearn/tree/_tree.pyx":1051 + /* "sklearn/tree/_tree.pyx":1048 * * if X[samples[child], current_feature] > tmp_value: * samples[index] = samples[child] # <<<<<<<<<<<<<< @@ -8861,7 +8861,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ (__pyx_v_samples[__pyx_v_index]) = (__pyx_v_samples[__pyx_v_child]); - /* "sklearn/tree/_tree.pyx":1052 + /* "sklearn/tree/_tree.pyx":1049 * if X[samples[child], current_feature] > tmp_value: * samples[index] = samples[child] * index = child # <<<<<<<<<<<<<< @@ -8870,7 +8870,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t */ __pyx_v_index = __pyx_v_child; - /* "sklearn/tree/_tree.pyx":1053 + /* "sklearn/tree/_tree.pyx":1050 * samples[index] = samples[child] * index = child * child = index * 2 + 1 # <<<<<<<<<<<<<< @@ -8882,7 +8882,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } /*else*/ { - /* "sklearn/tree/_tree.pyx":1056 + /* "sklearn/tree/_tree.pyx":1053 * * else: * break # <<<<<<<<<<<<<< @@ -8895,7 +8895,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_sort(PyArrayObject *__pyx_v_X, __pyx_t } __pyx_L8_break:; - /* "sklearn/tree/_tree.pyx":1058 + /* "sklearn/tree/_tree.pyx":1055 * break * * samples[index] = tmp # <<<<<<<<<<<<<< @@ -8930,7 +8930,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_14RandomSplitter_1__reduce__(PyO return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1063 +/* "sklearn/tree/_tree.pyx":1060 * cdef class RandomSplitter(Splitter): * """Splitter for finding the best random split.""" * def __reduce__(self): # <<<<<<<<<<<<<< @@ -8949,7 +8949,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_14RandomSplitter___reduce__(stru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__", 0); - /* "sklearn/tree/_tree.pyx":1064 + /* "sklearn/tree/_tree.pyx":1061 * """Splitter for finding the best random split.""" * def __reduce__(self): * return (RandomSplitter, (self.criterion, # <<<<<<<<<<<<<< @@ -8958,34 +8958,34 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_14RandomSplitter___reduce__(stru */ __Pyx_XDECREF(__pyx_r); - /* "sklearn/tree/_tree.pyx":1065 + /* "sklearn/tree/_tree.pyx":1062 * def __reduce__(self): * return (RandomSplitter, (self.criterion, * self.max_features, # <<<<<<<<<<<<<< * self.min_samples_leaf, * self.random_state), self.__getstate__()) */ - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1065; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - /* "sklearn/tree/_tree.pyx":1066 + /* "sklearn/tree/_tree.pyx":1063 * return (RandomSplitter, (self.criterion, * self.max_features, * self.min_samples_leaf, # <<<<<<<<<<<<<< * self.random_state), self.__getstate__()) * */ - __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.min_samples_leaf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.min_samples_leaf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1063; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - /* "sklearn/tree/_tree.pyx":1067 + /* "sklearn/tree/_tree.pyx":1064 * self.max_features, * self.min_samples_leaf, * self.random_state), self.__getstate__()) # <<<<<<<<<<<<<< * * cdef void node_split(self, SIZE_t* pos, SIZE_t* feature, double* threshold): */ - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.criterion)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->__pyx_base.criterion)); @@ -8999,12 +8999,12 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_14RandomSplitter___reduce__(stru __Pyx_GIVEREF(__pyx_v_self->__pyx_base.random_state); __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_RandomSplitter))); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_RandomSplitter))); @@ -9033,7 +9033,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_14RandomSplitter___reduce__(stru return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1069 +/* "sklearn/tree/_tree.pyx":1066 * self.random_state), self.__getstate__()) * * cdef void node_split(self, SIZE_t* pos, SIZE_t* feature, double* threshold): # <<<<<<<<<<<<<< @@ -9051,7 +9051,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p PyArrayObject *__pyx_v_X = 0; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_max_features; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_min_samples_leaf; - unsigned int *__pyx_v_random_state; + __pyx_t_7sklearn_4tree_5_tree_UINT32_t *__pyx_v_random_state; double __pyx_v_best_impurity; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_best_pos; __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_best_feature; @@ -9097,7 +9097,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_pybuffernd_X.data = NULL; __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; - /* "sklearn/tree/_tree.pyx":1072 + /* "sklearn/tree/_tree.pyx":1069 * """Find the best random split on node samples[start:end].""" * # Draw random splits and pick the best * cdef Criterion criterion = self.criterion # <<<<<<<<<<<<<< @@ -9109,7 +9109,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_v_criterion = ((struct __pyx_obj_7sklearn_4tree_5_tree_Criterion *)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1073 + /* "sklearn/tree/_tree.pyx":1070 * # Draw random splits and pick the best * cdef Criterion criterion = self.criterion * cdef SIZE_t* samples = self.samples # <<<<<<<<<<<<<< @@ -9119,7 +9119,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_2 = __pyx_v_self->__pyx_base.samples; __pyx_v_samples = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1074 + /* "sklearn/tree/_tree.pyx":1071 * cdef Criterion criterion = self.criterion * cdef SIZE_t* samples = self.samples * cdef SIZE_t start = self.start # <<<<<<<<<<<<<< @@ -9129,7 +9129,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_3 = __pyx_v_self->__pyx_base.start; __pyx_v_start = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1075 + /* "sklearn/tree/_tree.pyx":1072 * cdef SIZE_t* samples = self.samples * cdef SIZE_t start = self.start * cdef SIZE_t end = self.end # <<<<<<<<<<<<<< @@ -9139,7 +9139,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_3 = __pyx_v_self->__pyx_base.end; __pyx_v_end = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1077 + /* "sklearn/tree/_tree.pyx":1074 * cdef SIZE_t end = self.end * * cdef SIZE_t* features = self.features # <<<<<<<<<<<<<< @@ -9149,7 +9149,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_2 = __pyx_v_self->__pyx_base.features; __pyx_v_features = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1078 + /* "sklearn/tree/_tree.pyx":1075 * * cdef SIZE_t* features = self.features * cdef SIZE_t n_features = self.n_features # <<<<<<<<<<<<<< @@ -9159,7 +9159,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_3 = __pyx_v_self->__pyx_base.n_features; __pyx_v_n_features = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1080 + /* "sklearn/tree/_tree.pyx":1077 * cdef SIZE_t n_features = self.n_features * * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X # <<<<<<<<<<<<<< @@ -9172,44 +9172,44 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { __pyx_v_X = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_X.rcbuffer->pybuffer.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; } } __pyx_v_X = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1081 + /* "sklearn/tree/_tree.pyx":1078 * * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef SIZE_t max_features = self.max_features # <<<<<<<<<<<<<< * cdef SIZE_t min_samples_leaf = self.min_samples_leaf - * cdef unsigned int* random_state = &self.rand_r_state + * cdef UINT32_t* random_state = &self.rand_r_state */ __pyx_t_3 = __pyx_v_self->__pyx_base.max_features; __pyx_v_max_features = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1082 + /* "sklearn/tree/_tree.pyx":1079 * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf # <<<<<<<<<<<<<< - * cdef unsigned int* random_state = &self.rand_r_state + * cdef UINT32_t* random_state = &self.rand_r_state * */ __pyx_t_3 = __pyx_v_self->__pyx_base.min_samples_leaf; __pyx_v_min_samples_leaf = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1083 + /* "sklearn/tree/_tree.pyx":1080 * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf - * cdef unsigned int* random_state = &self.rand_r_state # <<<<<<<<<<<<<< + * cdef UINT32_t* random_state = &self.rand_r_state # <<<<<<<<<<<<<< * * cdef double best_impurity = INFINITY */ __pyx_v_random_state = (&__pyx_v_self->__pyx_base.rand_r_state); - /* "sklearn/tree/_tree.pyx":1085 - * cdef unsigned int* random_state = &self.rand_r_state + /* "sklearn/tree/_tree.pyx":1082 + * cdef UINT32_t* random_state = &self.rand_r_state * * cdef double best_impurity = INFINITY # <<<<<<<<<<<<<< * cdef SIZE_t best_pos = end @@ -9217,7 +9217,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_best_impurity = __pyx_v_7sklearn_4tree_5_tree_INFINITY; - /* "sklearn/tree/_tree.pyx":1086 + /* "sklearn/tree/_tree.pyx":1083 * * cdef double best_impurity = INFINITY * cdef SIZE_t best_pos = end # <<<<<<<<<<<<<< @@ -9226,7 +9226,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_best_pos = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1096 + /* "sklearn/tree/_tree.pyx":1093 * * cdef SIZE_t f_idx, f_i, f_j, p, tmp * cdef SIZE_t visited_features = 0 # <<<<<<<<<<<<<< @@ -9235,9 +9235,9 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_visited_features = 0; - /* "sklearn/tree/_tree.pyx":1105 + /* "sklearn/tree/_tree.pyx":1101 + * cdef SIZE_t partition_end * - * # Shuffle all features, using Fisher-Yates algorithm * for f_idx from 0 <= f_idx < n_features: # <<<<<<<<<<<<<< * # Draw a feature at random * f_i = n_features - f_idx - 1 @@ -9245,7 +9245,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_3 = __pyx_v_n_features; for (__pyx_v_f_idx = 0; __pyx_v_f_idx < __pyx_t_3; __pyx_v_f_idx++) { - /* "sklearn/tree/_tree.pyx":1107 + /* "sklearn/tree/_tree.pyx":1103 * for f_idx from 0 <= f_idx < n_features: * # Draw a feature at random * f_i = n_features - f_idx - 1 # <<<<<<<<<<<<<< @@ -9254,7 +9254,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_f_i = ((__pyx_v_n_features - __pyx_v_f_idx) - 1); - /* "sklearn/tree/_tree.pyx":1108 + /* "sklearn/tree/_tree.pyx":1104 * # Draw a feature at random * f_i = n_features - f_idx - 1 * f_j = rand_int(n_features - f_idx, random_state) # <<<<<<<<<<<<<< @@ -9263,7 +9263,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_f_j = __pyx_f_7sklearn_4tree_5_tree_rand_int((__pyx_v_n_features - __pyx_v_f_idx), __pyx_v_random_state); - /* "sklearn/tree/_tree.pyx":1110 + /* "sklearn/tree/_tree.pyx":1106 * f_j = rand_int(n_features - f_idx, random_state) * * tmp = features[f_i] # <<<<<<<<<<<<<< @@ -9272,7 +9272,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_tmp = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":1111 + /* "sklearn/tree/_tree.pyx":1107 * * tmp = features[f_i] * features[f_i] = features[f_j] # <<<<<<<<<<<<<< @@ -9281,36 +9281,25 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_features[__pyx_v_f_i]) = (__pyx_v_features[__pyx_v_f_j]); - /* "sklearn/tree/_tree.pyx":1112 + /* "sklearn/tree/_tree.pyx":1108 * tmp = features[f_i] * features[f_i] = features[f_j] * features[f_j] = tmp # <<<<<<<<<<<<<< * - * for f_idx from 0 <= f_idx < n_features: + * current_feature = features[f_i] */ (__pyx_v_features[__pyx_v_f_j]) = __pyx_v_tmp; - } - /* "sklearn/tree/_tree.pyx":1114 + /* "sklearn/tree/_tree.pyx":1110 * features[f_j] = tmp * - * for f_idx from 0 <= f_idx < n_features: # <<<<<<<<<<<<<< - * # Draw a feature at random - * current_feature = features[f_idx] - */ - __pyx_t_3 = __pyx_v_n_features; - for (__pyx_v_f_idx = 0; __pyx_v_f_idx < __pyx_t_3; __pyx_v_f_idx++) { - - /* "sklearn/tree/_tree.pyx":1116 - * for f_idx from 0 <= f_idx < n_features: - * # Draw a feature at random - * current_feature = features[f_idx] # <<<<<<<<<<<<<< + * current_feature = features[f_i] # <<<<<<<<<<<<<< * * # Find min, max */ - __pyx_v_current_feature = (__pyx_v_features[__pyx_v_f_idx]); + __pyx_v_current_feature = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":1119 + /* "sklearn/tree/_tree.pyx":1113 * * # Find min, max * min_feature_value = max_feature_value = X[samples[start], current_feature] # <<<<<<<<<<<<<< @@ -9323,7 +9312,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_v_min_feature_value = __pyx_t_6; __pyx_v_max_feature_value = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1121 + /* "sklearn/tree/_tree.pyx":1115 * min_feature_value = max_feature_value = X[samples[start], current_feature] * * for p from start < p < end: # <<<<<<<<<<<<<< @@ -9333,7 +9322,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_7 = __pyx_v_end; for (__pyx_v_p = __pyx_v_start+1; __pyx_v_p < __pyx_t_7; __pyx_v_p++) { - /* "sklearn/tree/_tree.pyx":1122 + /* "sklearn/tree/_tree.pyx":1116 * * for p from start < p < end: * current_feature_value = X[samples[p], current_feature] # <<<<<<<<<<<<<< @@ -9344,7 +9333,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_9 = __pyx_v_current_feature; __pyx_v_current_feature_value = (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_X.diminfo[1].strides)); - /* "sklearn/tree/_tree.pyx":1124 + /* "sklearn/tree/_tree.pyx":1118 * current_feature_value = X[samples[p], current_feature] * * if current_feature_value < min_feature_value: # <<<<<<<<<<<<<< @@ -9354,7 +9343,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = ((__pyx_v_current_feature_value < __pyx_v_min_feature_value) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1125 + /* "sklearn/tree/_tree.pyx":1119 * * if current_feature_value < min_feature_value: * min_feature_value = current_feature_value # <<<<<<<<<<<<<< @@ -9362,10 +9351,10 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * max_feature_value = current_feature_value */ __pyx_v_min_feature_value = __pyx_v_current_feature_value; - goto __pyx_L9; + goto __pyx_L7; } - /* "sklearn/tree/_tree.pyx":1126 + /* "sklearn/tree/_tree.pyx":1120 * if current_feature_value < min_feature_value: * min_feature_value = current_feature_value * elif current_feature_value > max_feature_value: # <<<<<<<<<<<<<< @@ -9375,7 +9364,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = ((__pyx_v_current_feature_value > __pyx_v_max_feature_value) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1127 + /* "sklearn/tree/_tree.pyx":1121 * min_feature_value = current_feature_value * elif current_feature_value > max_feature_value: * max_feature_value = current_feature_value # <<<<<<<<<<<<<< @@ -9383,12 +9372,12 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * if min_feature_value == max_feature_value: */ __pyx_v_max_feature_value = __pyx_v_current_feature_value; - goto __pyx_L9; + goto __pyx_L7; } - __pyx_L9:; + __pyx_L7:; } - /* "sklearn/tree/_tree.pyx":1129 + /* "sklearn/tree/_tree.pyx":1123 * max_feature_value = current_feature_value * * if min_feature_value == max_feature_value: # <<<<<<<<<<<<<< @@ -9398,19 +9387,19 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = ((__pyx_v_min_feature_value == __pyx_v_max_feature_value) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1130 + /* "sklearn/tree/_tree.pyx":1124 * * if min_feature_value == max_feature_value: * continue # <<<<<<<<<<<<<< * * # Draw a random threshold */ - goto __pyx_L5_continue; - goto __pyx_L10; + goto __pyx_L3_continue; + goto __pyx_L8; } - __pyx_L10:; + __pyx_L8:; - /* "sklearn/tree/_tree.pyx":1134 + /* "sklearn/tree/_tree.pyx":1128 * # Draw a random threshold * current_threshold = (min_feature_value + * rand_double(random_state) * (max_feature_value - min_feature_value)) # <<<<<<<<<<<<<< @@ -9419,7 +9408,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_current_threshold = (__pyx_v_min_feature_value + (__pyx_f_7sklearn_4tree_5_tree_rand_double(__pyx_v_random_state) * (__pyx_v_max_feature_value - __pyx_v_min_feature_value))); - /* "sklearn/tree/_tree.pyx":1136 + /* "sklearn/tree/_tree.pyx":1130 * rand_double(random_state) * (max_feature_value - min_feature_value)) * * if current_threshold == max_feature_value: # <<<<<<<<<<<<<< @@ -9429,7 +9418,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = ((__pyx_v_current_threshold == __pyx_v_max_feature_value) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1137 + /* "sklearn/tree/_tree.pyx":1131 * * if current_threshold == max_feature_value: * current_threshold = min_feature_value # <<<<<<<<<<<<<< @@ -9437,11 +9426,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * # Partition */ __pyx_v_current_threshold = __pyx_v_min_feature_value; - goto __pyx_L11; + goto __pyx_L9; } - __pyx_L11:; + __pyx_L9:; - /* "sklearn/tree/_tree.pyx":1140 + /* "sklearn/tree/_tree.pyx":1134 * * # Partition * partition_start = start # <<<<<<<<<<<<<< @@ -9450,7 +9439,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_start = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1141 + /* "sklearn/tree/_tree.pyx":1135 * # Partition * partition_start = start * partition_end = end # <<<<<<<<<<<<<< @@ -9459,7 +9448,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_end = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1142 + /* "sklearn/tree/_tree.pyx":1136 * partition_start = start * partition_end = end * p = start # <<<<<<<<<<<<<< @@ -9468,7 +9457,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1144 + /* "sklearn/tree/_tree.pyx":1138 * p = start * * while p < partition_end: # <<<<<<<<<<<<<< @@ -9479,7 +9468,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = ((__pyx_v_p < __pyx_v_partition_end) != 0); if (!__pyx_t_10) break; - /* "sklearn/tree/_tree.pyx":1145 + /* "sklearn/tree/_tree.pyx":1139 * * while p < partition_end: * if X[samples[p], current_feature] <= current_threshold: # <<<<<<<<<<<<<< @@ -9491,7 +9480,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_X.diminfo[1].strides)) <= __pyx_v_current_threshold) != 0); if (__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1146 + /* "sklearn/tree/_tree.pyx":1140 * while p < partition_end: * if X[samples[p], current_feature] <= current_threshold: * p += 1 # <<<<<<<<<<<<<< @@ -9499,11 +9488,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * else: */ __pyx_v_p = (__pyx_v_p + 1); - goto __pyx_L14; + goto __pyx_L12; } /*else*/ { - /* "sklearn/tree/_tree.pyx":1149 + /* "sklearn/tree/_tree.pyx":1143 * * else: * partition_end -= 1 # <<<<<<<<<<<<<< @@ -9512,7 +9501,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_end = (__pyx_v_partition_end - 1); - /* "sklearn/tree/_tree.pyx":1151 + /* "sklearn/tree/_tree.pyx":1145 * partition_end -= 1 * * tmp = samples[partition_end] # <<<<<<<<<<<<<< @@ -9521,7 +9510,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_tmp = (__pyx_v_samples[__pyx_v_partition_end]); - /* "sklearn/tree/_tree.pyx":1152 + /* "sklearn/tree/_tree.pyx":1146 * * tmp = samples[partition_end] * samples[partition_end] = samples[p] # <<<<<<<<<<<<<< @@ -9530,7 +9519,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_samples[__pyx_v_partition_end]) = (__pyx_v_samples[__pyx_v_p]); - /* "sklearn/tree/_tree.pyx":1153 + /* "sklearn/tree/_tree.pyx":1147 * tmp = samples[partition_end] * samples[partition_end] = samples[p] * samples[p] = tmp # <<<<<<<<<<<<<< @@ -9539,10 +9528,10 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_samples[__pyx_v_p]) = __pyx_v_tmp; } - __pyx_L14:; + __pyx_L12:; } - /* "sklearn/tree/_tree.pyx":1155 + /* "sklearn/tree/_tree.pyx":1149 * samples[p] = tmp * * current_pos = partition_end # <<<<<<<<<<<<<< @@ -9551,7 +9540,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_current_pos = __pyx_v_partition_end; - /* "sklearn/tree/_tree.pyx":1158 + /* "sklearn/tree/_tree.pyx":1152 * * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or # <<<<<<<<<<<<<< @@ -9561,7 +9550,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_10 = (((__pyx_v_current_pos - __pyx_v_start) < __pyx_v_min_samples_leaf) != 0); if (!__pyx_t_10) { - /* "sklearn/tree/_tree.pyx":1159 + /* "sklearn/tree/_tree.pyx":1153 * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): # <<<<<<<<<<<<<< @@ -9575,19 +9564,19 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p } if (__pyx_t_13) { - /* "sklearn/tree/_tree.pyx":1160 + /* "sklearn/tree/_tree.pyx":1154 * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): * continue # <<<<<<<<<<<<<< * * # Evaluate split */ - goto __pyx_L5_continue; - goto __pyx_L15; + goto __pyx_L3_continue; + goto __pyx_L13; } - __pyx_L15:; + __pyx_L13:; - /* "sklearn/tree/_tree.pyx":1163 + /* "sklearn/tree/_tree.pyx":1157 * * # Evaluate split * criterion.reset() # <<<<<<<<<<<<<< @@ -9596,7 +9585,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->reset(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":1164 + /* "sklearn/tree/_tree.pyx":1158 * # Evaluate split * criterion.reset() * criterion.update(current_pos) # <<<<<<<<<<<<<< @@ -9605,7 +9594,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->update(__pyx_v_criterion, __pyx_v_current_pos); - /* "sklearn/tree/_tree.pyx":1165 + /* "sklearn/tree/_tree.pyx":1159 * criterion.reset() * criterion.update(current_pos) * current_impurity = criterion.children_impurity() # <<<<<<<<<<<<<< @@ -9614,7 +9603,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_current_impurity = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->children_impurity(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":1167 + /* "sklearn/tree/_tree.pyx":1161 * current_impurity = criterion.children_impurity() * * if current_impurity < best_impurity: # <<<<<<<<<<<<<< @@ -9624,7 +9613,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_13 = ((__pyx_v_current_impurity < __pyx_v_best_impurity) != 0); if (__pyx_t_13) { - /* "sklearn/tree/_tree.pyx":1168 + /* "sklearn/tree/_tree.pyx":1162 * * if current_impurity < best_impurity: * best_impurity = current_impurity # <<<<<<<<<<<<<< @@ -9633,7 +9622,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_best_impurity = __pyx_v_current_impurity; - /* "sklearn/tree/_tree.pyx":1169 + /* "sklearn/tree/_tree.pyx":1163 * if current_impurity < best_impurity: * best_impurity = current_impurity * best_pos = current_pos # <<<<<<<<<<<<<< @@ -9642,7 +9631,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_best_pos = __pyx_v_current_pos; - /* "sklearn/tree/_tree.pyx":1170 + /* "sklearn/tree/_tree.pyx":1164 * best_impurity = current_impurity * best_pos = current_pos * best_feature = current_feature # <<<<<<<<<<<<<< @@ -9651,7 +9640,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_best_feature = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":1171 + /* "sklearn/tree/_tree.pyx":1165 * best_pos = current_pos * best_feature = current_feature * best_threshold = current_threshold # <<<<<<<<<<<<<< @@ -9659,11 +9648,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * # Count one more visited feature */ __pyx_v_best_threshold = __pyx_v_current_threshold; - goto __pyx_L16; + goto __pyx_L14; } - __pyx_L16:; + __pyx_L14:; - /* "sklearn/tree/_tree.pyx":1174 + /* "sklearn/tree/_tree.pyx":1168 * * # Count one more visited feature * visited_features += 1 # <<<<<<<<<<<<<< @@ -9672,7 +9661,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_visited_features = (__pyx_v_visited_features + 1); - /* "sklearn/tree/_tree.pyx":1176 + /* "sklearn/tree/_tree.pyx":1170 * visited_features += 1 * * if visited_features >= max_features: # <<<<<<<<<<<<<< @@ -9682,22 +9671,22 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_13 = ((__pyx_v_visited_features >= __pyx_v_max_features) != 0); if (__pyx_t_13) { - /* "sklearn/tree/_tree.pyx":1177 + /* "sklearn/tree/_tree.pyx":1171 * * if visited_features >= max_features: * break # <<<<<<<<<<<<<< * * # Reorganize into samples[start:best_pos] + samples[best_pos:end] */ - goto __pyx_L6_break; - goto __pyx_L17; + goto __pyx_L4_break; + goto __pyx_L15; } - __pyx_L17:; - __pyx_L5_continue:; + __pyx_L15:; + __pyx_L3_continue:; } - __pyx_L6_break:; + __pyx_L4_break:; - /* "sklearn/tree/_tree.pyx":1180 + /* "sklearn/tree/_tree.pyx":1174 * * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end and current_feature != best_feature: # <<<<<<<<<<<<<< @@ -9713,7 +9702,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p } if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1181 + /* "sklearn/tree/_tree.pyx":1175 * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end and current_feature != best_feature: * partition_start = start # <<<<<<<<<<<<<< @@ -9722,7 +9711,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_start = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1182 + /* "sklearn/tree/_tree.pyx":1176 * if best_pos < end and current_feature != best_feature: * partition_start = start * partition_end = end # <<<<<<<<<<<<<< @@ -9731,7 +9720,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_end = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1183 + /* "sklearn/tree/_tree.pyx":1177 * partition_start = start * partition_end = end * p = start # <<<<<<<<<<<<<< @@ -9740,7 +9729,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1185 + /* "sklearn/tree/_tree.pyx":1179 * p = start * * while p < partition_end: # <<<<<<<<<<<<<< @@ -9751,7 +9740,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_12 = ((__pyx_v_p < __pyx_v_partition_end) != 0); if (!__pyx_t_12) break; - /* "sklearn/tree/_tree.pyx":1186 + /* "sklearn/tree/_tree.pyx":1180 * * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: # <<<<<<<<<<<<<< @@ -9763,7 +9752,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p __pyx_t_12 = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_X.diminfo[1].strides)) <= __pyx_v_best_threshold) != 0); if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1187 + /* "sklearn/tree/_tree.pyx":1181 * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: * p += 1 # <<<<<<<<<<<<<< @@ -9771,11 +9760,11 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p * else: */ __pyx_v_p = (__pyx_v_p + 1); - goto __pyx_L21; + goto __pyx_L19; } /*else*/ { - /* "sklearn/tree/_tree.pyx":1190 + /* "sklearn/tree/_tree.pyx":1184 * * else: * partition_end -= 1 # <<<<<<<<<<<<<< @@ -9784,7 +9773,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_partition_end = (__pyx_v_partition_end - 1); - /* "sklearn/tree/_tree.pyx":1192 + /* "sklearn/tree/_tree.pyx":1186 * partition_end -= 1 * * tmp = samples[partition_end] # <<<<<<<<<<<<<< @@ -9793,7 +9782,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ __pyx_v_tmp = (__pyx_v_samples[__pyx_v_partition_end]); - /* "sklearn/tree/_tree.pyx":1193 + /* "sklearn/tree/_tree.pyx":1187 * * tmp = samples[partition_end] * samples[partition_end] = samples[p] # <<<<<<<<<<<<<< @@ -9802,7 +9791,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_samples[__pyx_v_partition_end]) = (__pyx_v_samples[__pyx_v_p]); - /* "sklearn/tree/_tree.pyx":1194 + /* "sklearn/tree/_tree.pyx":1188 * tmp = samples[partition_end] * samples[partition_end] = samples[p] * samples[p] = tmp # <<<<<<<<<<<<<< @@ -9811,13 +9800,13 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_samples[__pyx_v_p]) = __pyx_v_tmp; } - __pyx_L21:; + __pyx_L19:; } - goto __pyx_L18; + goto __pyx_L16; } - __pyx_L18:; + __pyx_L16:; - /* "sklearn/tree/_tree.pyx":1197 + /* "sklearn/tree/_tree.pyx":1191 * * # Return values * pos[0] = best_pos # <<<<<<<<<<<<<< @@ -9826,7 +9815,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_pos[0]) = __pyx_v_best_pos; - /* "sklearn/tree/_tree.pyx":1198 + /* "sklearn/tree/_tree.pyx":1192 * # Return values * pos[0] = best_pos * feature[0] = best_feature # <<<<<<<<<<<<<< @@ -9835,7 +9824,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split(struct __p */ (__pyx_v_feature[0]) = __pyx_v_best_feature; - /* "sklearn/tree/_tree.pyx":1199 + /* "sklearn/tree/_tree.pyx":1193 * pos[0] = best_pos * feature[0] = best_feature * threshold[0] = best_threshold # <<<<<<<<<<<<<< @@ -9896,21 +9885,21 @@ static int __pyx_pw_7sklearn_4tree_5_tree_19PresortBestSplitter_1__cinit__(PyObj case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_features)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__min_samples_leaf)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__random_state)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -9921,19 +9910,19 @@ static int __pyx_pw_7sklearn_4tree_5_tree_19PresortBestSplitter_1__cinit__(PyObj values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_criterion = ((struct __pyx_obj_7sklearn_4tree_5_tree_Criterion *)values[0]); - __pyx_v_max_features = __Pyx_PyInt_from_py_Py_intptr_t(values[1]); if (unlikely((__pyx_v_max_features == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_min_samples_leaf = __Pyx_PyInt_from_py_Py_intptr_t(values[2]); if (unlikely((__pyx_v_min_samples_leaf == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_max_features = __Pyx_PyInt_from_py_Py_intptr_t(values[1]); if (unlikely((__pyx_v_max_features == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_min_samples_leaf = __Pyx_PyInt_from_py_Py_intptr_t(values[2]); if (unlikely((__pyx_v_min_samples_leaf == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1205; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_random_state = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("sklearn.tree._tree.PresortBestSplitter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_criterion), __pyx_ptype_7sklearn_4tree_5_tree_Criterion, 1, "criterion", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1209; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_criterion), __pyx_ptype_7sklearn_4tree_5_tree_Criterion, 1, "criterion", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = __pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter___cinit__(((struct __pyx_obj_7sklearn_4tree_5_tree_PresortBestSplitter *)__pyx_v_self), __pyx_v_criterion, __pyx_v_max_features, __pyx_v_min_samples_leaf, __pyx_v_random_state); goto __pyx_L0; __pyx_L1_error:; @@ -9943,7 +9932,7 @@ static int __pyx_pw_7sklearn_4tree_5_tree_19PresortBestSplitter_1__cinit__(PyObj return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1209 +/* "sklearn/tree/_tree.pyx":1203 * cdef SIZE_t* sample_mask * * def __cinit__(self, Criterion criterion, # <<<<<<<<<<<<<< @@ -9956,7 +9945,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter___cinit__(struct __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); - /* "sklearn/tree/_tree.pyx":1214 + /* "sklearn/tree/_tree.pyx":1208 * object random_state): * # Initialize pointers * self.X_ptr = NULL # <<<<<<<<<<<<<< @@ -9965,7 +9954,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter___cinit__(struct */ __pyx_v_self->X_ptr = NULL; - /* "sklearn/tree/_tree.pyx":1215 + /* "sklearn/tree/_tree.pyx":1209 * # Initialize pointers * self.X_ptr = NULL * self.sample_mask = NULL # <<<<<<<<<<<<<< @@ -9988,7 +9977,7 @@ static void __pyx_pw_7sklearn_4tree_5_tree_19PresortBestSplitter_3__dealloc__(Py __Pyx_RefNannyFinishContext(); } -/* "sklearn/tree/_tree.pyx":1217 +/* "sklearn/tree/_tree.pyx":1211 * self.sample_mask = NULL * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -10000,7 +9989,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter_2__dealloc__(st __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); - /* "sklearn/tree/_tree.pyx":1219 + /* "sklearn/tree/_tree.pyx":1213 * def __dealloc__(self): * """Destructor.""" * free(self.sample_mask) # <<<<<<<<<<<<<< @@ -10023,7 +10012,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_19PresortBestSplitter_5__reduce_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1221 +/* "sklearn/tree/_tree.pyx":1215 * free(self.sample_mask) * * def __reduce__(self): # <<<<<<<<<<<<<< @@ -10042,7 +10031,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter_4__reduce_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__", 0); - /* "sklearn/tree/_tree.pyx":1222 + /* "sklearn/tree/_tree.pyx":1216 * * def __reduce__(self): * return (PresortBestSplitter, (self.criterion, # <<<<<<<<<<<<<< @@ -10051,34 +10040,34 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter_4__reduce_ */ __Pyx_XDECREF(__pyx_r); - /* "sklearn/tree/_tree.pyx":1223 + /* "sklearn/tree/_tree.pyx":1217 * def __reduce__(self): * return (PresortBestSplitter, (self.criterion, * self.max_features, # <<<<<<<<<<<<<< * self.min_samples_leaf, * self.random_state), self.__getstate__()) */ - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.max_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - /* "sklearn/tree/_tree.pyx":1224 + /* "sklearn/tree/_tree.pyx":1218 * return (PresortBestSplitter, (self.criterion, * self.max_features, * self.min_samples_leaf, # <<<<<<<<<<<<<< * self.random_state), self.__getstate__()) * */ - __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.min_samples_leaf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1224; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->__pyx_base.min_samples_leaf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1218; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - /* "sklearn/tree/_tree.pyx":1225 + /* "sklearn/tree/_tree.pyx":1219 * self.max_features, * self.min_samples_leaf, * self.random_state), self.__getstate__()) # <<<<<<<<<<<<<< * * cdef void init(self, np.ndarray[DTYPE_t, ndim=2] X, */ - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.criterion)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->__pyx_base.criterion)); @@ -10092,12 +10081,12 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter_4__reduce_ __Pyx_GIVEREF(__pyx_v_self->__pyx_base.random_state); __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_PresortBestSplitter))); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_PresortBestSplitter))); @@ -10126,7 +10115,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_19PresortBestSplitter_4__reduce_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1227 +/* "sklearn/tree/_tree.pyx":1221 * self.random_state), self.__getstate__()) * * cdef void init(self, np.ndarray[DTYPE_t, ndim=2] X, # <<<<<<<<<<<<<< @@ -10160,16 +10149,16 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py __pyx_pybuffernd_y.rcbuffer = &__pyx_pybuffer_y; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DOUBLE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1227; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_y.rcbuffer->pybuffer, (PyObject*)__pyx_v_y, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DOUBLE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_y.diminfo[0].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_y.diminfo[0].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_y.diminfo[1].strides = __pyx_pybuffernd_y.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_y.diminfo[1].shape = __pyx_pybuffernd_y.rcbuffer->pybuffer.shape[1]; - /* "sklearn/tree/_tree.pyx":1231 + /* "sklearn/tree/_tree.pyx":1225 * DOUBLE_t* sample_weight): * # Call parent initializer * Splitter.init(self, X, y, sample_weight) # <<<<<<<<<<<<<< @@ -10178,7 +10167,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py */ __pyx_vtabptr_7sklearn_4tree_5_tree_Splitter->init(((struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *)__pyx_v_self), ((PyArrayObject *)__pyx_v_X), ((PyArrayObject *)__pyx_v_y), __pyx_v_sample_weight); - /* "sklearn/tree/_tree.pyx":1234 + /* "sklearn/tree/_tree.pyx":1228 * * # Pre-sort X * if self.X_ptr != X.data: # <<<<<<<<<<<<<< @@ -10188,7 +10177,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py __pyx_t_1 = ((__pyx_v_self->X_ptr != ((__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *)__pyx_v_X->data)) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1235 + /* "sklearn/tree/_tree.pyx":1229 * # Pre-sort X * if self.X_ptr != X.data: * self.X_ptr = X.data # <<<<<<<<<<<<<< @@ -10197,65 +10186,65 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py */ __pyx_v_self->X_ptr = ((__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *)__pyx_v_X->data); - /* "sklearn/tree/_tree.pyx":1237 + /* "sklearn/tree/_tree.pyx":1231 * self.X_ptr = X.data * self.X_argsorted = \ * np.asfortranarray(np.argsort(X, axis=0).astype(np.int32)) # <<<<<<<<<<<<<< * * if self.sample_mask != NULL: */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__asfortranarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__asfortranarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__argsort); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__argsort); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(((PyObject *)__pyx_v_X)); - __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_5)); - if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__axis), __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__astype); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__astype); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__int32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__int32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /* "sklearn/tree/_tree.pyx":1236 + /* "sklearn/tree/_tree.pyx":1230 * if self.X_ptr != X.data: * self.X_ptr = X.data * self.X_argsorted = \ # <<<<<<<<<<<<<< @@ -10268,7 +10257,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py __pyx_v_self->X_argsorted = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "sklearn/tree/_tree.pyx":1239 + /* "sklearn/tree/_tree.pyx":1233 * np.asfortranarray(np.argsort(X, axis=0).astype(np.int32)) * * if self.sample_mask != NULL: # <<<<<<<<<<<<<< @@ -10278,7 +10267,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py __pyx_t_1 = ((__pyx_v_self->sample_mask != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1240 + /* "sklearn/tree/_tree.pyx":1234 * * if self.sample_mask != NULL: * free(self.sample_mask) # <<<<<<<<<<<<<< @@ -10290,7 +10279,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py } __pyx_L4:; - /* "sklearn/tree/_tree.pyx":1242 + /* "sklearn/tree/_tree.pyx":1236 * free(self.sample_mask) * * self.n_total_samples = X.shape[0] # <<<<<<<<<<<<<< @@ -10299,7 +10288,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py */ __pyx_v_self->n_total_samples = (__pyx_v_X->dimensions[0]); - /* "sklearn/tree/_tree.pyx":1243 + /* "sklearn/tree/_tree.pyx":1237 * * self.n_total_samples = X.shape[0] * self.sample_mask = \ # <<<<<<<<<<<<<< @@ -10332,7 +10321,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init(struct __py __Pyx_RefNannyFinishContext(); } -/* "sklearn/tree/_tree.pyx":1246 +/* "sklearn/tree/_tree.pyx":1240 * malloc(self.n_total_samples * sizeof(SIZE_t)) * * cdef void node_split(self, SIZE_t* pos, SIZE_t* feature, double* threshold): # <<<<<<<<<<<<<< @@ -10411,7 +10400,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_pybuffernd_X_argsorted.data = NULL; __pyx_pybuffernd_X_argsorted.rcbuffer = &__pyx_pybuffer_X_argsorted; - /* "sklearn/tree/_tree.pyx":1249 + /* "sklearn/tree/_tree.pyx":1243 * """Find the best split on node samples[start:end].""" * # Find the best split * cdef Criterion criterion = self.criterion # <<<<<<<<<<<<<< @@ -10423,7 +10412,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_v_criterion = ((struct __pyx_obj_7sklearn_4tree_5_tree_Criterion *)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1250 + /* "sklearn/tree/_tree.pyx":1244 * # Find the best split * cdef Criterion criterion = self.criterion * cdef SIZE_t* samples = self.samples # <<<<<<<<<<<<<< @@ -10433,7 +10422,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_2 = __pyx_v_self->__pyx_base.samples; __pyx_v_samples = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1251 + /* "sklearn/tree/_tree.pyx":1245 * cdef Criterion criterion = self.criterion * cdef SIZE_t* samples = self.samples * cdef SIZE_t start = self.start # <<<<<<<<<<<<<< @@ -10443,7 +10432,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->__pyx_base.start; __pyx_v_start = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1252 + /* "sklearn/tree/_tree.pyx":1246 * cdef SIZE_t* samples = self.samples * cdef SIZE_t start = self.start * cdef SIZE_t end = self.end # <<<<<<<<<<<<<< @@ -10453,7 +10442,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->__pyx_base.end; __pyx_v_end = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1254 + /* "sklearn/tree/_tree.pyx":1248 * cdef SIZE_t end = self.end * * cdef SIZE_t* features = self.features # <<<<<<<<<<<<<< @@ -10463,7 +10452,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_2 = __pyx_v_self->__pyx_base.features; __pyx_v_features = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1255 + /* "sklearn/tree/_tree.pyx":1249 * * cdef SIZE_t* features = self.features * cdef SIZE_t n_features = self.n_features # <<<<<<<<<<<<<< @@ -10473,7 +10462,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->__pyx_base.n_features; __pyx_v_n_features = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1257 + /* "sklearn/tree/_tree.pyx":1251 * cdef SIZE_t n_features = self.n_features * * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X # <<<<<<<<<<<<<< @@ -10486,14 +10475,14 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { __pyx_v_X = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_X.rcbuffer->pybuffer.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; } } __pyx_v_X = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1258 + /* "sklearn/tree/_tree.pyx":1252 * * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef np.ndarray[np.int32_t, ndim=2, mode="fortran"] X_argsorted = self.X_argsorted # <<<<<<<<<<<<<< @@ -10506,14 +10495,14 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_F_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { __pyx_v_X_argsorted = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.buf = NULL; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } else {__pyx_pybuffernd_X_argsorted.diminfo[0].strides = __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X_argsorted.diminfo[0].shape = __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X_argsorted.diminfo[1].strides = __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X_argsorted.diminfo[1].shape = __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.shape[1]; } } __pyx_v_X_argsorted = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1259 + /* "sklearn/tree/_tree.pyx":1253 * cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X * cdef np.ndarray[np.int32_t, ndim=2, mode="fortran"] X_argsorted = self.X_argsorted * cdef SIZE_t n_total_samples = self.n_total_samples # <<<<<<<<<<<<<< @@ -10523,7 +10512,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->n_total_samples; __pyx_v_n_total_samples = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1260 + /* "sklearn/tree/_tree.pyx":1254 * cdef np.ndarray[np.int32_t, ndim=2, mode="fortran"] X_argsorted = self.X_argsorted * cdef SIZE_t n_total_samples = self.n_total_samples * cdef SIZE_t* sample_mask = self.sample_mask # <<<<<<<<<<<<<< @@ -10533,7 +10522,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_2 = __pyx_v_self->sample_mask; __pyx_v_sample_mask = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1262 + /* "sklearn/tree/_tree.pyx":1256 * cdef SIZE_t* sample_mask = self.sample_mask * * cdef SIZE_t max_features = self.max_features # <<<<<<<<<<<<<< @@ -10543,7 +10532,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->__pyx_base.max_features; __pyx_v_max_features = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1263 + /* "sklearn/tree/_tree.pyx":1257 * * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf # <<<<<<<<<<<<<< @@ -10553,7 +10542,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_self->__pyx_base.min_samples_leaf; __pyx_v_min_samples_leaf = __pyx_t_3; - /* "sklearn/tree/_tree.pyx":1264 + /* "sklearn/tree/_tree.pyx":1258 * cdef SIZE_t max_features = self.max_features * cdef SIZE_t min_samples_leaf = self.min_samples_leaf * cdef unsigned int* random_state = &self.rand_r_state # <<<<<<<<<<<<<< @@ -10562,7 +10551,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_random_state = (&__pyx_v_self->__pyx_base.rand_r_state); - /* "sklearn/tree/_tree.pyx":1266 + /* "sklearn/tree/_tree.pyx":1260 * cdef unsigned int* random_state = &self.rand_r_state * * cdef double best_impurity = INFINITY # <<<<<<<<<<<<<< @@ -10571,7 +10560,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_best_impurity = __pyx_v_7sklearn_4tree_5_tree_INFINITY; - /* "sklearn/tree/_tree.pyx":1267 + /* "sklearn/tree/_tree.pyx":1261 * * cdef double best_impurity = INFINITY * cdef SIZE_t best_pos = end # <<<<<<<<<<<<<< @@ -10580,7 +10569,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_best_pos = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1277 + /* "sklearn/tree/_tree.pyx":1271 * * cdef SIZE_t f_idx, f_i, f_j, p, tmp * cdef SIZE_t visited_features = 0 # <<<<<<<<<<<<<< @@ -10589,7 +10578,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_visited_features = 0; - /* "sklearn/tree/_tree.pyx":1285 + /* "sklearn/tree/_tree.pyx":1279 * * # Reset sample mask * for i from 0 <= i < n_total_samples: # <<<<<<<<<<<<<< @@ -10599,7 +10588,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_n_total_samples; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { - /* "sklearn/tree/_tree.pyx":1286 + /* "sklearn/tree/_tree.pyx":1280 * # Reset sample mask * for i from 0 <= i < n_total_samples: * sample_mask[i] = 0 # <<<<<<<<<<<<<< @@ -10609,7 +10598,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc (__pyx_v_sample_mask[__pyx_v_i]) = 0; } - /* "sklearn/tree/_tree.pyx":1288 + /* "sklearn/tree/_tree.pyx":1282 * sample_mask[i] = 0 * * for p from start <= p < end: # <<<<<<<<<<<<<< @@ -10619,7 +10608,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_end; for (__pyx_v_p = __pyx_v_start; __pyx_v_p < __pyx_t_3; __pyx_v_p++) { - /* "sklearn/tree/_tree.pyx":1289 + /* "sklearn/tree/_tree.pyx":1283 * * for p from start <= p < end: * sample_mask[samples[p]] = 1 # <<<<<<<<<<<<<< @@ -10629,7 +10618,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc (__pyx_v_sample_mask[(__pyx_v_samples[__pyx_v_p])]) = 1; } - /* "sklearn/tree/_tree.pyx":1292 + /* "sklearn/tree/_tree.pyx":1286 * * # Look for splits * for f_idx from 0 <= f_idx < n_features: # <<<<<<<<<<<<<< @@ -10639,7 +10628,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_3 = __pyx_v_n_features; for (__pyx_v_f_idx = 0; __pyx_v_f_idx < __pyx_t_3; __pyx_v_f_idx++) { - /* "sklearn/tree/_tree.pyx":1294 + /* "sklearn/tree/_tree.pyx":1288 * for f_idx from 0 <= f_idx < n_features: * # Draw a feature at random * f_i = n_features - f_idx - 1 # <<<<<<<<<<<<<< @@ -10648,7 +10637,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_f_i = ((__pyx_v_n_features - __pyx_v_f_idx) - 1); - /* "sklearn/tree/_tree.pyx":1295 + /* "sklearn/tree/_tree.pyx":1289 * # Draw a feature at random * f_i = n_features - f_idx - 1 * f_j = rand_int(n_features - f_idx, random_state) # <<<<<<<<<<<<<< @@ -10657,7 +10646,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_f_j = __pyx_f_7sklearn_4tree_5_tree_rand_int((__pyx_v_n_features - __pyx_v_f_idx), __pyx_v_random_state); - /* "sklearn/tree/_tree.pyx":1297 + /* "sklearn/tree/_tree.pyx":1291 * f_j = rand_int(n_features - f_idx, random_state) * * tmp = features[f_i] # <<<<<<<<<<<<<< @@ -10666,7 +10655,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_tmp = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":1298 + /* "sklearn/tree/_tree.pyx":1292 * * tmp = features[f_i] * features[f_i] = features[f_j] # <<<<<<<<<<<<<< @@ -10675,7 +10664,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_features[__pyx_v_f_i]) = (__pyx_v_features[__pyx_v_f_j]); - /* "sklearn/tree/_tree.pyx":1299 + /* "sklearn/tree/_tree.pyx":1293 * tmp = features[f_i] * features[f_i] = features[f_j] * features[f_j] = tmp # <<<<<<<<<<<<<< @@ -10684,7 +10673,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_features[__pyx_v_f_j]) = __pyx_v_tmp; - /* "sklearn/tree/_tree.pyx":1301 + /* "sklearn/tree/_tree.pyx":1295 * features[f_j] = tmp * * current_feature = features[f_i] # <<<<<<<<<<<<<< @@ -10693,7 +10682,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_current_feature = (__pyx_v_features[__pyx_v_f_i]); - /* "sklearn/tree/_tree.pyx":1304 + /* "sklearn/tree/_tree.pyx":1298 * * # Extract ordering from X_argsorted * p = start # <<<<<<<<<<<<<< @@ -10702,7 +10691,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1306 + /* "sklearn/tree/_tree.pyx":1300 * p = start * * for i from 0 <= i < n_total_samples: # <<<<<<<<<<<<<< @@ -10712,7 +10701,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_4 = __pyx_v_n_total_samples; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { - /* "sklearn/tree/_tree.pyx":1307 + /* "sklearn/tree/_tree.pyx":1301 * * for i from 0 <= i < n_total_samples: * j = X_argsorted[i, current_feature] # <<<<<<<<<<<<<< @@ -10723,7 +10712,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_6 = __pyx_v_current_feature; __pyx_v_j = (*__Pyx_BufPtrFortranContig2d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_X_argsorted.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_X_argsorted.diminfo[0].strides, __pyx_t_6, __pyx_pybuffernd_X_argsorted.diminfo[1].strides)); - /* "sklearn/tree/_tree.pyx":1308 + /* "sklearn/tree/_tree.pyx":1302 * for i from 0 <= i < n_total_samples: * j = X_argsorted[i, current_feature] * if sample_mask[j] == 1: # <<<<<<<<<<<<<< @@ -10733,7 +10722,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_7 = (((__pyx_v_sample_mask[__pyx_v_j]) == 1) != 0); if (__pyx_t_7) { - /* "sklearn/tree/_tree.pyx":1309 + /* "sklearn/tree/_tree.pyx":1303 * j = X_argsorted[i, current_feature] * if sample_mask[j] == 1: * samples[p] = j # <<<<<<<<<<<<<< @@ -10742,7 +10731,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_samples[__pyx_v_p]) = __pyx_v_j; - /* "sklearn/tree/_tree.pyx":1310 + /* "sklearn/tree/_tree.pyx":1304 * if sample_mask[j] == 1: * samples[p] = j * p += 1 # <<<<<<<<<<<<<< @@ -10755,7 +10744,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_L11:; } - /* "sklearn/tree/_tree.pyx":1313 + /* "sklearn/tree/_tree.pyx":1307 * * # Evaluate all splits * criterion.reset() # <<<<<<<<<<<<<< @@ -10764,7 +10753,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->reset(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":1314 + /* "sklearn/tree/_tree.pyx":1308 * # Evaluate all splits * criterion.reset() * p = start # <<<<<<<<<<<<<< @@ -10773,7 +10762,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1316 + /* "sklearn/tree/_tree.pyx":1310 * p = start * * while p < end: # <<<<<<<<<<<<<< @@ -10784,7 +10773,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_7 = ((__pyx_v_p < __pyx_v_end) != 0); if (!__pyx_t_7) break; - /* "sklearn/tree/_tree.pyx":1317 + /* "sklearn/tree/_tree.pyx":1311 * * while p < end: * while ((p + 1 < end) and # <<<<<<<<<<<<<< @@ -10795,7 +10784,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_7 = (((__pyx_v_p + 1) < __pyx_v_end) != 0); if (__pyx_t_7) { - /* "sklearn/tree/_tree.pyx":1318 + /* "sklearn/tree/_tree.pyx":1312 * while p < end: * while ((p + 1 < end) and * (X[samples[p + 1], current_feature] <= # <<<<<<<<<<<<<< @@ -10805,7 +10794,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_4 = (__pyx_v_samples[(__pyx_v_p + 1)]); __pyx_t_8 = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":1319 + /* "sklearn/tree/_tree.pyx":1313 * while ((p + 1 < end) and * (X[samples[p + 1], current_feature] <= * X[samples[p], current_feature] + 1e-7)): # <<<<<<<<<<<<<< @@ -10821,7 +10810,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } if (!__pyx_t_12) break; - /* "sklearn/tree/_tree.pyx":1320 + /* "sklearn/tree/_tree.pyx":1314 * (X[samples[p + 1], current_feature] <= * X[samples[p], current_feature] + 1e-7)): * p += 1 # <<<<<<<<<<<<<< @@ -10831,7 +10820,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_v_p = (__pyx_v_p + 1); } - /* "sklearn/tree/_tree.pyx":1324 + /* "sklearn/tree/_tree.pyx":1318 * # (p + 1 >= end) or (X[samples[p + 1], current_feature] > * # X[samples[p], current_feature]) * p += 1 # <<<<<<<<<<<<<< @@ -10840,7 +10829,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_p = (__pyx_v_p + 1); - /* "sklearn/tree/_tree.pyx":1328 + /* "sklearn/tree/_tree.pyx":1322 * # X[samples[p - 1], current_feature]) * * if p < end: # <<<<<<<<<<<<<< @@ -10850,7 +10839,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_12 = ((__pyx_v_p < __pyx_v_end) != 0); if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1329 + /* "sklearn/tree/_tree.pyx":1323 * * if p < end: * current_pos = p # <<<<<<<<<<<<<< @@ -10859,7 +10848,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_current_pos = __pyx_v_p; - /* "sklearn/tree/_tree.pyx":1332 + /* "sklearn/tree/_tree.pyx":1326 * * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or # <<<<<<<<<<<<<< @@ -10869,7 +10858,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_12 = (((__pyx_v_current_pos - __pyx_v_start) < __pyx_v_min_samples_leaf) != 0); if (!__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1333 + /* "sklearn/tree/_tree.pyx":1327 * # Reject if min_samples_leaf is not guaranteed * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): # <<<<<<<<<<<<<< @@ -10883,7 +10872,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1334 + /* "sklearn/tree/_tree.pyx":1328 * if (((current_pos - start) < min_samples_leaf) or * ((end - current_pos) < min_samples_leaf)): * continue # <<<<<<<<<<<<<< @@ -10895,7 +10884,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } __pyx_L17:; - /* "sklearn/tree/_tree.pyx":1336 + /* "sklearn/tree/_tree.pyx":1330 * continue * * criterion.update(current_pos) # <<<<<<<<<<<<<< @@ -10904,7 +10893,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->update(__pyx_v_criterion, __pyx_v_current_pos); - /* "sklearn/tree/_tree.pyx":1337 + /* "sklearn/tree/_tree.pyx":1331 * * criterion.update(current_pos) * current_impurity = criterion.children_impurity() # <<<<<<<<<<<<<< @@ -10913,7 +10902,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_current_impurity = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Criterion *)__pyx_v_criterion->__pyx_vtab)->children_impurity(__pyx_v_criterion); - /* "sklearn/tree/_tree.pyx":1339 + /* "sklearn/tree/_tree.pyx":1333 * current_impurity = criterion.children_impurity() * * if current_impurity < (best_impurity - 1e-7): # <<<<<<<<<<<<<< @@ -10923,7 +10912,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_current_impurity < (__pyx_v_best_impurity - 1e-7)) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1340 + /* "sklearn/tree/_tree.pyx":1334 * * if current_impurity < (best_impurity - 1e-7): * best_impurity = current_impurity # <<<<<<<<<<<<<< @@ -10932,7 +10921,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_best_impurity = __pyx_v_current_impurity; - /* "sklearn/tree/_tree.pyx":1341 + /* "sklearn/tree/_tree.pyx":1335 * if current_impurity < (best_impurity - 1e-7): * best_impurity = current_impurity * best_pos = current_pos # <<<<<<<<<<<<<< @@ -10941,7 +10930,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_best_pos = __pyx_v_current_pos; - /* "sklearn/tree/_tree.pyx":1342 + /* "sklearn/tree/_tree.pyx":1336 * best_impurity = current_impurity * best_pos = current_pos * best_feature = current_feature # <<<<<<<<<<<<<< @@ -10950,7 +10939,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_best_feature = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":1344 + /* "sklearn/tree/_tree.pyx":1338 * best_feature = current_feature * * current_threshold = (X[samples[p - 1], current_feature] + # <<<<<<<<<<<<<< @@ -10960,7 +10949,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_13 = (__pyx_v_samples[(__pyx_v_p - 1)]); __pyx_t_14 = __pyx_v_current_feature; - /* "sklearn/tree/_tree.pyx":1345 + /* "sklearn/tree/_tree.pyx":1339 * * current_threshold = (X[samples[p - 1], current_feature] + * X[samples[p], current_feature]) / 2.0 # <<<<<<<<<<<<<< @@ -10971,7 +10960,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_16 = __pyx_v_current_feature; __pyx_v_current_threshold = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_X.diminfo[1].strides)) + (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_X.diminfo[1].strides))) / 2.0); - /* "sklearn/tree/_tree.pyx":1347 + /* "sklearn/tree/_tree.pyx":1341 * X[samples[p], current_feature]) / 2.0 * * if current_threshold == X[samples[p], current_feature]: # <<<<<<<<<<<<<< @@ -10983,7 +10972,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_current_threshold == (*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_18, __pyx_pybuffernd_X.diminfo[1].strides))) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1348 + /* "sklearn/tree/_tree.pyx":1342 * * if current_threshold == X[samples[p], current_feature]: * current_threshold = X[samples[p - 1], current_feature] # <<<<<<<<<<<<<< @@ -10997,7 +10986,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } __pyx_L19:; - /* "sklearn/tree/_tree.pyx":1350 + /* "sklearn/tree/_tree.pyx":1344 * current_threshold = X[samples[p - 1], current_feature] * * best_threshold = current_threshold # <<<<<<<<<<<<<< @@ -11014,7 +11003,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_L12_continue:; } - /* "sklearn/tree/_tree.pyx":1352 + /* "sklearn/tree/_tree.pyx":1346 * best_threshold = current_threshold * * if best_pos == end: # No valid split was ever found # <<<<<<<<<<<<<< @@ -11024,7 +11013,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_best_pos == __pyx_v_end) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1353 + /* "sklearn/tree/_tree.pyx":1347 * * if best_pos == end: # No valid split was ever found * continue # <<<<<<<<<<<<<< @@ -11036,7 +11025,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } __pyx_L20:; - /* "sklearn/tree/_tree.pyx":1356 + /* "sklearn/tree/_tree.pyx":1350 * * # Count one more visited feature * visited_features += 1 # <<<<<<<<<<<<<< @@ -11045,7 +11034,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_visited_features = (__pyx_v_visited_features + 1); - /* "sklearn/tree/_tree.pyx":1358 + /* "sklearn/tree/_tree.pyx":1352 * visited_features += 1 * * if visited_features >= max_features: # <<<<<<<<<<<<<< @@ -11055,7 +11044,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_visited_features >= __pyx_v_max_features) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1359 + /* "sklearn/tree/_tree.pyx":1353 * * if visited_features >= max_features: * break # <<<<<<<<<<<<<< @@ -11070,7 +11059,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } __pyx_L8_break:; - /* "sklearn/tree/_tree.pyx":1362 + /* "sklearn/tree/_tree.pyx":1356 * * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end: # <<<<<<<<<<<<<< @@ -11080,7 +11069,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_best_pos < __pyx_v_end) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1363 + /* "sklearn/tree/_tree.pyx":1357 * # Reorganize into samples[start:best_pos] + samples[best_pos:end] * if best_pos < end: * partition_start = start # <<<<<<<<<<<<<< @@ -11089,7 +11078,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_partition_start = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1364 + /* "sklearn/tree/_tree.pyx":1358 * if best_pos < end: * partition_start = start * partition_end = end # <<<<<<<<<<<<<< @@ -11098,7 +11087,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_partition_end = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1365 + /* "sklearn/tree/_tree.pyx":1359 * partition_start = start * partition_end = end * p = start # <<<<<<<<<<<<<< @@ -11107,7 +11096,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_p = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1367 + /* "sklearn/tree/_tree.pyx":1361 * p = start * * while p < partition_end: # <<<<<<<<<<<<<< @@ -11118,7 +11107,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = ((__pyx_v_p < __pyx_v_partition_end) != 0); if (!__pyx_t_11) break; - /* "sklearn/tree/_tree.pyx":1368 + /* "sklearn/tree/_tree.pyx":1362 * * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: # <<<<<<<<<<<<<< @@ -11130,7 +11119,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc __pyx_t_11 = (((*__Pyx_BufPtrCContig2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_X.diminfo[1].strides)) <= __pyx_v_best_threshold) != 0); if (__pyx_t_11) { - /* "sklearn/tree/_tree.pyx":1369 + /* "sklearn/tree/_tree.pyx":1363 * while p < partition_end: * if X[samples[p], best_feature] <= best_threshold: * p += 1 # <<<<<<<<<<<<<< @@ -11142,7 +11131,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } /*else*/ { - /* "sklearn/tree/_tree.pyx":1372 + /* "sklearn/tree/_tree.pyx":1366 * * else: * partition_end -= 1 # <<<<<<<<<<<<<< @@ -11151,7 +11140,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_partition_end = (__pyx_v_partition_end - 1); - /* "sklearn/tree/_tree.pyx":1374 + /* "sklearn/tree/_tree.pyx":1368 * partition_end -= 1 * * tmp = samples[partition_end] # <<<<<<<<<<<<<< @@ -11160,7 +11149,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ __pyx_v_tmp = (__pyx_v_samples[__pyx_v_partition_end]); - /* "sklearn/tree/_tree.pyx":1375 + /* "sklearn/tree/_tree.pyx":1369 * * tmp = samples[partition_end] * samples[partition_end] = samples[p] # <<<<<<<<<<<<<< @@ -11169,7 +11158,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_samples[__pyx_v_partition_end]) = (__pyx_v_samples[__pyx_v_p]); - /* "sklearn/tree/_tree.pyx":1376 + /* "sklearn/tree/_tree.pyx":1370 * tmp = samples[partition_end] * samples[partition_end] = samples[p] * samples[p] = tmp # <<<<<<<<<<<<<< @@ -11184,7 +11173,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc } __pyx_L22:; - /* "sklearn/tree/_tree.pyx":1379 + /* "sklearn/tree/_tree.pyx":1373 * * # Return values * pos[0] = best_pos # <<<<<<<<<<<<<< @@ -11193,7 +11182,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_pos[0]) = __pyx_v_best_pos; - /* "sklearn/tree/_tree.pyx":1380 + /* "sklearn/tree/_tree.pyx":1374 * # Return values * pos[0] = best_pos * feature[0] = best_feature # <<<<<<<<<<<<<< @@ -11202,7 +11191,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split(struc */ (__pyx_v_feature[0]) = __pyx_v_best_feature; - /* "sklearn/tree/_tree.pyx":1381 + /* "sklearn/tree/_tree.pyx":1375 * pos[0] = best_pos * feature[0] = best_feature * threshold[0] = best_threshold # <<<<<<<<<<<<<< @@ -11242,7 +11231,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_9n_classes_1__get__(PyObje return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1436 +/* "sklearn/tree/_tree.pyx":1430 * # Wrap for outside world * property n_classes: * def __get__(self): # <<<<<<<<<<<<<< @@ -11259,7 +11248,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9n_classes___get__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1437 + /* "sklearn/tree/_tree.pyx":1431 * property n_classes: * def __get__(self): * return sizet_ptr_to_ndarray(self.n_classes, self.n_outputs) # <<<<<<<<<<<<<< @@ -11267,7 +11256,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9n_classes___get__(struct * property children_left: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_classes, __pyx_v_self->n_outputs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_classes, __pyx_v_self->n_outputs)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11296,7 +11285,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_13children_left_1__get__(P return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1440 +/* "sklearn/tree/_tree.pyx":1434 * * property children_left: * def __get__(self): # <<<<<<<<<<<<<< @@ -11313,7 +11302,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_13children_left___get__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1441 + /* "sklearn/tree/_tree.pyx":1435 * property children_left: * def __get__(self): * return sizet_ptr_to_ndarray(self.children_left, self.node_count) # <<<<<<<<<<<<<< @@ -11321,7 +11310,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_13children_left___get__(st * property children_right: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_left, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1441; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_left, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11350,7 +11339,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_14children_right_1__get__( return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1444 +/* "sklearn/tree/_tree.pyx":1438 * * property children_right: * def __get__(self): # <<<<<<<<<<<<<< @@ -11367,7 +11356,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14children_right___get__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1445 + /* "sklearn/tree/_tree.pyx":1439 * property children_right: * def __get__(self): * return sizet_ptr_to_ndarray(self.children_right, self.node_count) # <<<<<<<<<<<<<< @@ -11375,7 +11364,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14children_right___get__(s * property feature: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_right, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_right, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11404,7 +11393,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_7feature_1__get__(PyObject return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1448 +/* "sklearn/tree/_tree.pyx":1442 * * property feature: * def __get__(self): # <<<<<<<<<<<<<< @@ -11421,7 +11410,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_7feature___get__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1449 + /* "sklearn/tree/_tree.pyx":1443 * property feature: * def __get__(self): * return sizet_ptr_to_ndarray(self.feature, self.node_count) # <<<<<<<<<<<<<< @@ -11429,7 +11418,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_7feature___get__(struct __ * property threshold: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->feature, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->feature, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1443; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11458,7 +11447,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_9threshold_1__get__(PyObje return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1452 +/* "sklearn/tree/_tree.pyx":1446 * * property threshold: * def __get__(self): # <<<<<<<<<<<<<< @@ -11475,7 +11464,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9threshold___get__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1453 + /* "sklearn/tree/_tree.pyx":1447 * property threshold: * def __get__(self): * return double_ptr_to_ndarray(self.threshold, self.node_count) # <<<<<<<<<<<<<< @@ -11483,7 +11472,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9threshold___get__(struct * property value: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->threshold, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->threshold, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11512,7 +11501,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_5value_1__get__(PyObject * return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1456 +/* "sklearn/tree/_tree.pyx":1450 * * property value: * def __get__(self): # <<<<<<<<<<<<<< @@ -11530,7 +11519,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_5value___get__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1459 + /* "sklearn/tree/_tree.pyx":1453 * cdef np.npy_intp shape[3] * * shape[0] = self.node_count # <<<<<<<<<<<<<< @@ -11539,7 +11528,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_5value___get__(struct __py */ (__pyx_v_shape[0]) = ((npy_intp)__pyx_v_self->node_count); - /* "sklearn/tree/_tree.pyx":1460 + /* "sklearn/tree/_tree.pyx":1454 * * shape[0] = self.node_count * shape[1] = self.n_outputs # <<<<<<<<<<<<<< @@ -11548,7 +11537,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_5value___get__(struct __py */ (__pyx_v_shape[1]) = ((npy_intp)__pyx_v_self->n_outputs); - /* "sklearn/tree/_tree.pyx":1461 + /* "sklearn/tree/_tree.pyx":1455 * shape[0] = self.node_count * shape[1] = self.n_outputs * shape[2] = self.max_n_classes # <<<<<<<<<<<<<< @@ -11557,7 +11546,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_5value___get__(struct __py */ (__pyx_v_shape[2]) = ((npy_intp)__pyx_v_self->max_n_classes); - /* "sklearn/tree/_tree.pyx":1463 + /* "sklearn/tree/_tree.pyx":1457 * shape[2] = self.max_n_classes * * return np.PyArray_SimpleNewFromData( # <<<<<<<<<<<<<< @@ -11566,14 +11555,14 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_5value___get__(struct __py */ __Pyx_XDECREF(__pyx_r); - /* "sklearn/tree/_tree.pyx":1464 + /* "sklearn/tree/_tree.pyx":1458 * * return np.PyArray_SimpleNewFromData( * 3, shape, np.NPY_DOUBLE, self.value) # <<<<<<<<<<<<<< * * property impurity: */ - __pyx_t_1 = PyArray_SimpleNewFromData(3, __pyx_v_shape, NPY_DOUBLE, __pyx_v_self->value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyArray_SimpleNewFromData(3, __pyx_v_shape, NPY_DOUBLE, __pyx_v_self->value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11602,7 +11591,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_8impurity_1__get__(PyObjec return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1467 +/* "sklearn/tree/_tree.pyx":1461 * * property impurity: * def __get__(self): # <<<<<<<<<<<<<< @@ -11619,7 +11608,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8impurity___get__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1468 + /* "sklearn/tree/_tree.pyx":1462 * property impurity: * def __get__(self): * return double_ptr_to_ndarray(self.impurity, self.node_count) # <<<<<<<<<<<<<< @@ -11627,7 +11616,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8impurity___get__(struct _ * property n_node_samples: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->impurity, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->impurity, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11656,7 +11645,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_14n_node_samples_1__get__( return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1471 +/* "sklearn/tree/_tree.pyx":1465 * * property n_node_samples: * def __get__(self): # <<<<<<<<<<<<<< @@ -11673,7 +11662,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14n_node_samples___get__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "sklearn/tree/_tree.pyx":1472 + /* "sklearn/tree/_tree.pyx":1466 * property n_node_samples: * def __get__(self): * return sizet_ptr_to_ndarray(self.n_node_samples, self.node_count) # <<<<<<<<<<<<<< @@ -11681,7 +11670,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14n_node_samples___get__(s * def __cinit__(self, int n_features, np.ndarray[SIZE_t, ndim=1] n_classes, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_node_samples, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1472; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_node_samples, __pyx_v_self->node_count)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -11742,41 +11731,41 @@ static int __pyx_pw_7sklearn_4tree_5_tree_4Tree_1__cinit__(PyObject *__pyx_v_sel case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_classes)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__n_outputs)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__splitter)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 4: if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_depth)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 5: if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__min_samples_split)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 6: if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__min_samples_leaf)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 7: if (likely((values[7] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__random_state)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, 7); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { goto __pyx_L5_argtuple_error; @@ -11790,25 +11779,25 @@ static int __pyx_pw_7sklearn_4tree_5_tree_4Tree_1__cinit__(PyObject *__pyx_v_sel values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } - __pyx_v_n_features = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_n_features == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_n_features = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_n_features == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_n_classes = ((PyArrayObject *)values[1]); - __pyx_v_n_outputs = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_n_outputs == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_n_outputs = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_n_outputs == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_splitter = ((struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *)values[3]); - __pyx_v_max_depth = __Pyx_PyInt_from_py_Py_intptr_t(values[4]); if (unlikely((__pyx_v_max_depth == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_min_samples_split = __Pyx_PyInt_from_py_Py_intptr_t(values[5]); if (unlikely((__pyx_v_min_samples_split == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_min_samples_leaf = __Pyx_PyInt_from_py_Py_intptr_t(values[6]); if (unlikely((__pyx_v_min_samples_leaf == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_max_depth = __Pyx_PyInt_from_py_Py_intptr_t(values[4]); if (unlikely((__pyx_v_max_depth == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_min_samples_split = __Pyx_PyInt_from_py_Py_intptr_t(values[5]); if (unlikely((__pyx_v_min_samples_split == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __pyx_v_min_samples_leaf = __Pyx_PyInt_from_py_Py_intptr_t(values[6]); if (unlikely((__pyx_v_min_samples_leaf == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_random_state = values[7]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("sklearn.tree._tree.Tree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n_classes), __pyx_ptype_5numpy_ndarray, 1, "n_classes", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_splitter), __pyx_ptype_7sklearn_4tree_5_tree_Splitter, 1, "splitter", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_n_classes), __pyx_ptype_5numpy_ndarray, 1, "n_classes", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_splitter), __pyx_ptype_7sklearn_4tree_5_tree_Splitter, 1, "splitter", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(((struct __pyx_obj_7sklearn_4tree_5_tree_Tree *)__pyx_v_self), __pyx_v_n_features, __pyx_v_n_classes, __pyx_v_n_outputs, __pyx_v_splitter, __pyx_v_max_depth, __pyx_v_min_samples_split, __pyx_v_min_samples_leaf, __pyx_v_random_state); goto __pyx_L0; __pyx_L1_error:; @@ -11818,7 +11807,7 @@ static int __pyx_pw_7sklearn_4tree_5_tree_4Tree_1__cinit__(PyObject *__pyx_v_sel return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1474 +/* "sklearn/tree/_tree.pyx":1468 * return sizet_ptr_to_ndarray(self.n_node_samples, self.node_count) * * def __cinit__(self, int n_features, np.ndarray[SIZE_t, ndim=1] n_classes, # <<<<<<<<<<<<<< @@ -11848,11 +11837,11 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle __pyx_pybuffernd_n_classes.rcbuffer = &__pyx_pybuffer_n_classes; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_n_classes.rcbuffer->pybuffer, (PyObject*)__pyx_v_n_classes, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_SIZE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_n_classes.rcbuffer->pybuffer, (PyObject*)__pyx_v_n_classes, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_SIZE_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_n_classes.diminfo[0].strides = __pyx_pybuffernd_n_classes.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_n_classes.diminfo[0].shape = __pyx_pybuffernd_n_classes.rcbuffer->pybuffer.shape[0]; - /* "sklearn/tree/_tree.pyx":1480 + /* "sklearn/tree/_tree.pyx":1474 * """Constructor.""" * # Input/Output layout * self.n_features = n_features # <<<<<<<<<<<<<< @@ -11861,7 +11850,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->n_features = __pyx_v_n_features; - /* "sklearn/tree/_tree.pyx":1481 + /* "sklearn/tree/_tree.pyx":1475 * # Input/Output layout * self.n_features = n_features * self.n_outputs = n_outputs # <<<<<<<<<<<<<< @@ -11870,7 +11859,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->n_outputs = __pyx_v_n_outputs; - /* "sklearn/tree/_tree.pyx":1482 + /* "sklearn/tree/_tree.pyx":1476 * self.n_features = n_features * self.n_outputs = n_outputs * self.n_classes = malloc(n_outputs * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -11879,7 +11868,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->n_classes = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)malloc((__pyx_v_n_outputs * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1484 + /* "sklearn/tree/_tree.pyx":1478 * self.n_classes = malloc(n_outputs * sizeof(SIZE_t)) * * if self.n_classes == NULL: # <<<<<<<<<<<<<< @@ -11889,44 +11878,44 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle __pyx_t_1 = ((__pyx_v_self->n_classes == NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1485 + /* "sklearn/tree/_tree.pyx":1479 * * if self.n_classes == NULL: * raise MemoryError() # <<<<<<<<<<<<<< * * self.max_n_classes = np.max(n_classes) */ - PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1479; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L3; } __pyx_L3:; - /* "sklearn/tree/_tree.pyx":1487 + /* "sklearn/tree/_tree.pyx":1481 * raise MemoryError() * * self.max_n_classes = np.max(n_classes) # <<<<<<<<<<<<<< * self.value_stride = self.n_outputs * self.max_n_classes * */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__max); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__max); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_n_classes)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_n_classes)); __Pyx_GIVEREF(((PyObject *)__pyx_v_n_classes)); - __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_self->max_n_classes = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1488 + /* "sklearn/tree/_tree.pyx":1482 * * self.max_n_classes = np.max(n_classes) * self.value_stride = self.n_outputs * self.max_n_classes # <<<<<<<<<<<<<< @@ -11935,7 +11924,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->value_stride = (__pyx_v_self->n_outputs * __pyx_v_self->max_n_classes); - /* "sklearn/tree/_tree.pyx":1492 + /* "sklearn/tree/_tree.pyx":1486 * cdef SIZE_t k * * for k from 0 <= k < n_outputs: # <<<<<<<<<<<<<< @@ -11945,7 +11934,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle __pyx_t_6 = __pyx_v_n_outputs; for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_6; __pyx_v_k++) { - /* "sklearn/tree/_tree.pyx":1493 + /* "sklearn/tree/_tree.pyx":1487 * * for k from 0 <= k < n_outputs: * self.n_classes[k] = n_classes[k] # <<<<<<<<<<<<<< @@ -11956,7 +11945,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle (__pyx_v_self->n_classes[__pyx_v_k]) = (*__Pyx_BufPtrStrided1d(__pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_pybuffernd_n_classes.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_n_classes.diminfo[0].strides)); } - /* "sklearn/tree/_tree.pyx":1496 + /* "sklearn/tree/_tree.pyx":1490 * * # Parameters * self.splitter = splitter # <<<<<<<<<<<<<< @@ -11969,7 +11958,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle __Pyx_DECREF(((PyObject *)__pyx_v_self->splitter)); __pyx_v_self->splitter = __pyx_v_splitter; - /* "sklearn/tree/_tree.pyx":1497 + /* "sklearn/tree/_tree.pyx":1491 * # Parameters * self.splitter = splitter * self.max_depth = max_depth # <<<<<<<<<<<<<< @@ -11978,7 +11967,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->max_depth = __pyx_v_max_depth; - /* "sklearn/tree/_tree.pyx":1498 + /* "sklearn/tree/_tree.pyx":1492 * self.splitter = splitter * self.max_depth = max_depth * self.min_samples_split = min_samples_split # <<<<<<<<<<<<<< @@ -11987,7 +11976,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->min_samples_split = __pyx_v_min_samples_split; - /* "sklearn/tree/_tree.pyx":1499 + /* "sklearn/tree/_tree.pyx":1493 * self.max_depth = max_depth * self.min_samples_split = min_samples_split * self.min_samples_leaf = min_samples_leaf # <<<<<<<<<<<<<< @@ -11996,7 +11985,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->min_samples_leaf = __pyx_v_min_samples_leaf; - /* "sklearn/tree/_tree.pyx":1500 + /* "sklearn/tree/_tree.pyx":1494 * self.min_samples_split = min_samples_split * self.min_samples_leaf = min_samples_leaf * self.random_state = random_state # <<<<<<<<<<<<<< @@ -12009,7 +11998,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle __Pyx_DECREF(__pyx_v_self->random_state); __pyx_v_self->random_state = __pyx_v_random_state; - /* "sklearn/tree/_tree.pyx":1503 + /* "sklearn/tree/_tree.pyx":1497 * * # Inner structures * self.node_count = 0 # <<<<<<<<<<<<<< @@ -12018,7 +12007,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->node_count = 0; - /* "sklearn/tree/_tree.pyx":1504 + /* "sklearn/tree/_tree.pyx":1498 * # Inner structures * self.node_count = 0 * self.capacity = 0 # <<<<<<<<<<<<<< @@ -12027,7 +12016,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->capacity = 0; - /* "sklearn/tree/_tree.pyx":1505 + /* "sklearn/tree/_tree.pyx":1499 * self.node_count = 0 * self.capacity = 0 * self.children_left = NULL # <<<<<<<<<<<<<< @@ -12036,7 +12025,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->children_left = NULL; - /* "sklearn/tree/_tree.pyx":1506 + /* "sklearn/tree/_tree.pyx":1500 * self.capacity = 0 * self.children_left = NULL * self.children_right = NULL # <<<<<<<<<<<<<< @@ -12045,7 +12034,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->children_right = NULL; - /* "sklearn/tree/_tree.pyx":1507 + /* "sklearn/tree/_tree.pyx":1501 * self.children_left = NULL * self.children_right = NULL * self.feature = NULL # <<<<<<<<<<<<<< @@ -12054,7 +12043,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->feature = NULL; - /* "sklearn/tree/_tree.pyx":1508 + /* "sklearn/tree/_tree.pyx":1502 * self.children_right = NULL * self.feature = NULL * self.threshold = NULL # <<<<<<<<<<<<<< @@ -12063,7 +12052,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->threshold = NULL; - /* "sklearn/tree/_tree.pyx":1509 + /* "sklearn/tree/_tree.pyx":1503 * self.feature = NULL * self.threshold = NULL * self.value = NULL # <<<<<<<<<<<<<< @@ -12072,7 +12061,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->value = NULL; - /* "sklearn/tree/_tree.pyx":1510 + /* "sklearn/tree/_tree.pyx":1504 * self.threshold = NULL * self.value = NULL * self.impurity = NULL # <<<<<<<<<<<<<< @@ -12081,7 +12070,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree___cinit__(struct __pyx_obj_7skle */ __pyx_v_self->impurity = NULL; - /* "sklearn/tree/_tree.pyx":1511 + /* "sklearn/tree/_tree.pyx":1505 * self.value = NULL * self.impurity = NULL * self.n_node_samples = NULL # <<<<<<<<<<<<<< @@ -12119,7 +12108,7 @@ static void __pyx_pw_7sklearn_4tree_5_tree_4Tree_3__dealloc__(PyObject *__pyx_v_ __Pyx_RefNannyFinishContext(); } -/* "sklearn/tree/_tree.pyx":1513 +/* "sklearn/tree/_tree.pyx":1507 * self.n_node_samples = NULL * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -12131,7 +12120,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); - /* "sklearn/tree/_tree.pyx":1516 + /* "sklearn/tree/_tree.pyx":1510 * """Destructor.""" * # Free all inner structures * free(self.n_classes) # <<<<<<<<<<<<<< @@ -12140,7 +12129,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->n_classes); - /* "sklearn/tree/_tree.pyx":1517 + /* "sklearn/tree/_tree.pyx":1511 * # Free all inner structures * free(self.n_classes) * free(self.children_left) # <<<<<<<<<<<<<< @@ -12149,7 +12138,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->children_left); - /* "sklearn/tree/_tree.pyx":1518 + /* "sklearn/tree/_tree.pyx":1512 * free(self.n_classes) * free(self.children_left) * free(self.children_right) # <<<<<<<<<<<<<< @@ -12158,7 +12147,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->children_right); - /* "sklearn/tree/_tree.pyx":1519 + /* "sklearn/tree/_tree.pyx":1513 * free(self.children_left) * free(self.children_right) * free(self.feature) # <<<<<<<<<<<<<< @@ -12167,7 +12156,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->feature); - /* "sklearn/tree/_tree.pyx":1520 + /* "sklearn/tree/_tree.pyx":1514 * free(self.children_right) * free(self.feature) * free(self.threshold) # <<<<<<<<<<<<<< @@ -12176,7 +12165,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->threshold); - /* "sklearn/tree/_tree.pyx":1521 + /* "sklearn/tree/_tree.pyx":1515 * free(self.feature) * free(self.threshold) * free(self.value) # <<<<<<<<<<<<<< @@ -12185,7 +12174,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->value); - /* "sklearn/tree/_tree.pyx":1522 + /* "sklearn/tree/_tree.pyx":1516 * free(self.threshold) * free(self.value) * free(self.impurity) # <<<<<<<<<<<<<< @@ -12194,7 +12183,7 @@ static void __pyx_pf_7sklearn_4tree_5_tree_4Tree_2__dealloc__(struct __pyx_obj_7 */ free(__pyx_v_self->impurity); - /* "sklearn/tree/_tree.pyx":1523 + /* "sklearn/tree/_tree.pyx":1517 * free(self.value) * free(self.impurity) * free(self.n_node_samples) # <<<<<<<<<<<<<< @@ -12218,7 +12207,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_5__reduce__(PyObject *__py return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1525 +/* "sklearn/tree/_tree.pyx":1519 * free(self.n_node_samples) * * def __reduce__(self): # <<<<<<<<<<<<<< @@ -12241,7 +12230,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_4__reduce__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce__", 0); - /* "sklearn/tree/_tree.pyx":1527 + /* "sklearn/tree/_tree.pyx":1521 * def __reduce__(self): * """Reduce re-implementation, for pickling.""" * return (Tree, (self.n_features, # <<<<<<<<<<<<<< @@ -12249,67 +12238,67 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_4__reduce__(struct __pyx_o * self.n_outputs, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - /* "sklearn/tree/_tree.pyx":1528 + /* "sklearn/tree/_tree.pyx":1522 * """Reduce re-implementation, for pickling.""" * return (Tree, (self.n_features, * sizet_ptr_to_ndarray(self.n_classes, self.n_outputs), # <<<<<<<<<<<<<< * self.n_outputs, * self.splitter, */ - __pyx_t_2 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_classes, __pyx_v_self->n_outputs)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_classes, __pyx_v_self->n_outputs)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - /* "sklearn/tree/_tree.pyx":1529 + /* "sklearn/tree/_tree.pyx":1523 * return (Tree, (self.n_features, * sizet_ptr_to_ndarray(self.n_classes, self.n_outputs), * self.n_outputs, # <<<<<<<<<<<<<< * self.splitter, * self.max_depth, */ - __pyx_t_3 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_outputs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_outputs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - /* "sklearn/tree/_tree.pyx":1531 + /* "sklearn/tree/_tree.pyx":1525 * self.n_outputs, * self.splitter, * self.max_depth, # <<<<<<<<<<<<<< * self.min_samples_split, * self.min_samples_leaf, */ - __pyx_t_4 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_depth); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_depth); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); - /* "sklearn/tree/_tree.pyx":1532 + /* "sklearn/tree/_tree.pyx":1526 * self.splitter, * self.max_depth, * self.min_samples_split, # <<<<<<<<<<<<<< * self.min_samples_leaf, * self.random_state), self.__getstate__()) */ - __pyx_t_5 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_split); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_split); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1526; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); - /* "sklearn/tree/_tree.pyx":1533 + /* "sklearn/tree/_tree.pyx":1527 * self.max_depth, * self.min_samples_split, * self.min_samples_leaf, # <<<<<<<<<<<<<< * self.random_state), self.__getstate__()) * */ - __pyx_t_6 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); - /* "sklearn/tree/_tree.pyx":1534 + /* "sklearn/tree/_tree.pyx":1528 * self.min_samples_split, * self.min_samples_leaf, * self.random_state), self.__getstate__()) # <<<<<<<<<<<<<< * * def __getstate__(self): */ - __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -12335,12 +12324,12 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_4__reduce__(struct __pyx_o __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____getstate__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_Tree))); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((PyObject*)__pyx_ptype_7sklearn_4tree_5_tree_Tree))); @@ -12385,7 +12374,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_7__getstate__(PyObject *__ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1536 +/* "sklearn/tree/_tree.pyx":1530 * self.random_state), self.__getstate__()) * * def __getstate__(self): # <<<<<<<<<<<<<< @@ -12403,127 +12392,127 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_6__getstate__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getstate__", 0); - /* "sklearn/tree/_tree.pyx":1538 + /* "sklearn/tree/_tree.pyx":1532 * def __getstate__(self): * """Getstate re-implementation, for pickling.""" * d = {} # <<<<<<<<<<<<<< * * d["node_count"] = self.node_count */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __pyx_v_d = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1540 + /* "sklearn/tree/_tree.pyx":1534 * d = {} * * d["node_count"] = self.node_count # <<<<<<<<<<<<<< * d["capacity"] = self.capacity * d["children_left"] = sizet_ptr_to_ndarray(self.children_left, self.capacity) */ - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->node_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->node_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__node_count), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__node_count), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1541 + /* "sklearn/tree/_tree.pyx":1535 * * d["node_count"] = self.node_count * d["capacity"] = self.capacity # <<<<<<<<<<<<<< * d["children_left"] = sizet_ptr_to_ndarray(self.children_left, self.capacity) * d["children_right"] = sizet_ptr_to_ndarray(self.children_right, self.capacity) */ - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->capacity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->capacity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__capacity), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__capacity), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1542 + /* "sklearn/tree/_tree.pyx":1536 * d["node_count"] = self.node_count * d["capacity"] = self.capacity * d["children_left"] = sizet_ptr_to_ndarray(self.children_left, self.capacity) # <<<<<<<<<<<<<< * d["children_right"] = sizet_ptr_to_ndarray(self.children_right, self.capacity) * d["feature"] = sizet_ptr_to_ndarray(self.feature, self.capacity) */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_left, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_left, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__children_left), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__children_left), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1543 + /* "sklearn/tree/_tree.pyx":1537 * d["capacity"] = self.capacity * d["children_left"] = sizet_ptr_to_ndarray(self.children_left, self.capacity) * d["children_right"] = sizet_ptr_to_ndarray(self.children_right, self.capacity) # <<<<<<<<<<<<<< * d["feature"] = sizet_ptr_to_ndarray(self.feature, self.capacity) * d["threshold"] = double_ptr_to_ndarray(self.threshold, self.capacity) */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_right, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->children_right, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__children_right), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__children_right), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1544 + /* "sklearn/tree/_tree.pyx":1538 * d["children_left"] = sizet_ptr_to_ndarray(self.children_left, self.capacity) * d["children_right"] = sizet_ptr_to_ndarray(self.children_right, self.capacity) * d["feature"] = sizet_ptr_to_ndarray(self.feature, self.capacity) # <<<<<<<<<<<<<< * d["threshold"] = double_ptr_to_ndarray(self.threshold, self.capacity) * d["value"] = double_ptr_to_ndarray(self.value, self.capacity * self.value_stride) */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->feature, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->feature, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__feature), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__feature), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1545 + /* "sklearn/tree/_tree.pyx":1539 * d["children_right"] = sizet_ptr_to_ndarray(self.children_right, self.capacity) * d["feature"] = sizet_ptr_to_ndarray(self.feature, self.capacity) * d["threshold"] = double_ptr_to_ndarray(self.threshold, self.capacity) # <<<<<<<<<<<<<< * d["value"] = double_ptr_to_ndarray(self.value, self.capacity * self.value_stride) * d["impurity"] = double_ptr_to_ndarray(self.impurity, self.capacity) */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->threshold, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->threshold, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__threshold), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__threshold), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1546 + /* "sklearn/tree/_tree.pyx":1540 * d["feature"] = sizet_ptr_to_ndarray(self.feature, self.capacity) * d["threshold"] = double_ptr_to_ndarray(self.threshold, self.capacity) * d["value"] = double_ptr_to_ndarray(self.value, self.capacity * self.value_stride) # <<<<<<<<<<<<<< * d["impurity"] = double_ptr_to_ndarray(self.impurity, self.capacity) * d["n_node_samples"] = sizet_ptr_to_ndarray(self.n_node_samples, self.capacity) */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->value, (__pyx_v_self->capacity * __pyx_v_self->value_stride))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->value, (__pyx_v_self->capacity * __pyx_v_self->value_stride))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__value), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__value), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1547 + /* "sklearn/tree/_tree.pyx":1541 * d["threshold"] = double_ptr_to_ndarray(self.threshold, self.capacity) * d["value"] = double_ptr_to_ndarray(self.value, self.capacity * self.value_stride) * d["impurity"] = double_ptr_to_ndarray(self.impurity, self.capacity) # <<<<<<<<<<<<<< * d["n_node_samples"] = sizet_ptr_to_ndarray(self.n_node_samples, self.capacity) * */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->impurity, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ndarray(__pyx_v_self->impurity, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__impurity), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1547; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__impurity), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1548 + /* "sklearn/tree/_tree.pyx":1542 * d["value"] = double_ptr_to_ndarray(self.value, self.capacity * self.value_stride) * d["impurity"] = double_ptr_to_ndarray(self.impurity, self.capacity) * d["n_node_samples"] = sizet_ptr_to_ndarray(self.n_node_samples, self.capacity) # <<<<<<<<<<<<<< * * return d */ - __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_node_samples, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((PyObject *)__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_ndarray(__pyx_v_self->n_node_samples, __pyx_v_self->capacity)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__n_node_samples), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_s__n_node_samples), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1550 + /* "sklearn/tree/_tree.pyx":1544 * d["n_node_samples"] = sizet_ptr_to_ndarray(self.n_node_samples, self.capacity) * * return d # <<<<<<<<<<<<<< @@ -12560,7 +12549,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_9__setstate__(PyObject *__ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1552 +/* "sklearn/tree/_tree.pyx":1546 * return d * * def __setstate__(self, d): # <<<<<<<<<<<<<< @@ -12586,119 +12575,119 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate__", 0); - /* "sklearn/tree/_tree.pyx":1554 + /* "sklearn/tree/_tree.pyx":1548 * def __setstate__(self, d): * """Setstate re-implementation, for unpickling.""" * self._resize(d["capacity"]) # <<<<<<<<<<<<<< * self.node_count = d["node_count"] * */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__capacity)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__capacity)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3.__pyx_n = 1; __pyx_t_3.capacity = __pyx_t_2; ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->_resize(__pyx_v_self, &__pyx_t_3); - /* "sklearn/tree/_tree.pyx":1555 + /* "sklearn/tree/_tree.pyx":1549 * """Setstate re-implementation, for unpickling.""" * self._resize(d["capacity"]) * self.node_count = d["node_count"] # <<<<<<<<<<<<<< * * cdef SIZE_t* children_left = ( d["children_left"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__node_count)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__node_count)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->node_count = __pyx_t_2; - /* "sklearn/tree/_tree.pyx":1557 + /* "sklearn/tree/_tree.pyx":1551 * self.node_count = d["node_count"] * * cdef SIZE_t* children_left = ( d["children_left"]).data # <<<<<<<<<<<<<< * cdef SIZE_t* children_right = ( d["children_right"]).data * cdef SIZE_t* feature = ( d["feature"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__children_left)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__children_left)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_children_left = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1558 + /* "sklearn/tree/_tree.pyx":1552 * * cdef SIZE_t* children_left = ( d["children_left"]).data * cdef SIZE_t* children_right = ( d["children_right"]).data # <<<<<<<<<<<<<< * cdef SIZE_t* feature = ( d["feature"]).data * cdef double* threshold = ( d["threshold"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__children_right)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__children_right)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_children_right = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1559 + /* "sklearn/tree/_tree.pyx":1553 * cdef SIZE_t* children_left = ( d["children_left"]).data * cdef SIZE_t* children_right = ( d["children_right"]).data * cdef SIZE_t* feature = ( d["feature"]).data # <<<<<<<<<<<<<< * cdef double* threshold = ( d["threshold"]).data * cdef double* value = ( d["value"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__feature)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1559; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__feature)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_feature = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1560 + /* "sklearn/tree/_tree.pyx":1554 * cdef SIZE_t* children_right = ( d["children_right"]).data * cdef SIZE_t* feature = ( d["feature"]).data * cdef double* threshold = ( d["threshold"]).data # <<<<<<<<<<<<<< * cdef double* value = ( d["value"]).data * cdef double* impurity = ( d["impurity"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__threshold)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1560; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__threshold)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_threshold = ((double *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1561 + /* "sklearn/tree/_tree.pyx":1555 * cdef SIZE_t* feature = ( d["feature"]).data * cdef double* threshold = ( d["threshold"]).data * cdef double* value = ( d["value"]).data # <<<<<<<<<<<<<< * cdef double* impurity = ( d["impurity"]).data * cdef SIZE_t* n_node_samples = ( d["n_node_samples"]).data */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__value)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1561; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__value)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_value = ((double *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1562 + /* "sklearn/tree/_tree.pyx":1556 * cdef double* threshold = ( d["threshold"]).data * cdef double* value = ( d["value"]).data * cdef double* impurity = ( d["impurity"]).data # <<<<<<<<<<<<<< * cdef SIZE_t* n_node_samples = ( d["n_node_samples"]).data * */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__impurity)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__impurity)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_impurity = ((double *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1563 + /* "sklearn/tree/_tree.pyx":1557 * cdef double* value = ( d["value"]).data * cdef double* impurity = ( d["impurity"]).data * cdef SIZE_t* n_node_samples = ( d["n_node_samples"]).data # <<<<<<<<<<<<<< * * memcpy(self.children_left, children_left, self.capacity * sizeof(SIZE_t)) */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__n_node_samples)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1563; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_GetItem(__pyx_v_d, ((PyObject *)__pyx_n_s__n_node_samples)); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_v_n_node_samples = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)((PyArrayObject *)__pyx_t_1)->data); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1565 + /* "sklearn/tree/_tree.pyx":1559 * cdef SIZE_t* n_node_samples = ( d["n_node_samples"]).data * * memcpy(self.children_left, children_left, self.capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12707,7 +12696,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->children_left, __pyx_v_children_left, (__pyx_v_self->capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t)))); - /* "sklearn/tree/_tree.pyx":1566 + /* "sklearn/tree/_tree.pyx":1560 * * memcpy(self.children_left, children_left, self.capacity * sizeof(SIZE_t)) * memcpy(self.children_right, children_right, self.capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12716,7 +12705,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->children_right, __pyx_v_children_right, (__pyx_v_self->capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t)))); - /* "sklearn/tree/_tree.pyx":1567 + /* "sklearn/tree/_tree.pyx":1561 * memcpy(self.children_left, children_left, self.capacity * sizeof(SIZE_t)) * memcpy(self.children_right, children_right, self.capacity * sizeof(SIZE_t)) * memcpy(self.feature, feature, self.capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12725,7 +12714,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->feature, __pyx_v_feature, (__pyx_v_self->capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t)))); - /* "sklearn/tree/_tree.pyx":1568 + /* "sklearn/tree/_tree.pyx":1562 * memcpy(self.children_right, children_right, self.capacity * sizeof(SIZE_t)) * memcpy(self.feature, feature, self.capacity * sizeof(SIZE_t)) * memcpy(self.threshold, threshold, self.capacity * sizeof(double)) # <<<<<<<<<<<<<< @@ -12734,7 +12723,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->threshold, __pyx_v_threshold, (__pyx_v_self->capacity * (sizeof(double)))); - /* "sklearn/tree/_tree.pyx":1569 + /* "sklearn/tree/_tree.pyx":1563 * memcpy(self.feature, feature, self.capacity * sizeof(SIZE_t)) * memcpy(self.threshold, threshold, self.capacity * sizeof(double)) * memcpy(self.value, value, self.capacity * self.value_stride * sizeof(double)) # <<<<<<<<<<<<<< @@ -12743,7 +12732,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->value, __pyx_v_value, ((__pyx_v_self->capacity * __pyx_v_self->value_stride) * (sizeof(double)))); - /* "sklearn/tree/_tree.pyx":1570 + /* "sklearn/tree/_tree.pyx":1564 * memcpy(self.threshold, threshold, self.capacity * sizeof(double)) * memcpy(self.value, value, self.capacity * self.value_stride * sizeof(double)) * memcpy(self.impurity, impurity, self.capacity * sizeof(double)) # <<<<<<<<<<<<<< @@ -12752,7 +12741,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx */ memcpy(__pyx_v_self->impurity, __pyx_v_impurity, (__pyx_v_self->capacity * (sizeof(double)))); - /* "sklearn/tree/_tree.pyx":1571 + /* "sklearn/tree/_tree.pyx":1565 * memcpy(self.value, value, self.capacity * self.value_stride * sizeof(double)) * memcpy(self.impurity, impurity, self.capacity * sizeof(double)) * memcpy(self.n_node_samples, n_node_samples, self.capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12773,7 +12762,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8__setstate__(struct __pyx return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1573 +/* "sklearn/tree/_tree.pyx":1567 * memcpy(self.n_node_samples, n_node_samples, self.capacity * sizeof(SIZE_t)) * * cdef void _resize(self, int capacity=-1): # <<<<<<<<<<<<<< @@ -12809,7 +12798,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } } - /* "sklearn/tree/_tree.pyx":1576 + /* "sklearn/tree/_tree.pyx":1570 * """Resize all inner arrays to `capacity`, if `capacity` < 0, then * double the size of the inner arrays.""" * if capacity == self.capacity: # <<<<<<<<<<<<<< @@ -12819,7 +12808,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_capacity == __pyx_v_self->capacity) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1577 + /* "sklearn/tree/_tree.pyx":1571 * double the size of the inner arrays.""" * if capacity == self.capacity: * return # <<<<<<<<<<<<<< @@ -12831,7 +12820,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L3:; - /* "sklearn/tree/_tree.pyx":1579 + /* "sklearn/tree/_tree.pyx":1573 * return * * if capacity < 0: # <<<<<<<<<<<<<< @@ -12841,7 +12830,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_capacity < 0) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1580 + /* "sklearn/tree/_tree.pyx":1574 * * if capacity < 0: * if self.capacity <= 0: # <<<<<<<<<<<<<< @@ -12851,7 +12840,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_self->capacity <= 0) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1581 + /* "sklearn/tree/_tree.pyx":1575 * if capacity < 0: * if self.capacity <= 0: * capacity = 3 # default initial value # <<<<<<<<<<<<<< @@ -12863,7 +12852,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } /*else*/ { - /* "sklearn/tree/_tree.pyx":1583 + /* "sklearn/tree/_tree.pyx":1577 * capacity = 3 # default initial value * else: * capacity = 2 * self.capacity # <<<<<<<<<<<<<< @@ -12877,7 +12866,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L4:; - /* "sklearn/tree/_tree.pyx":1585 + /* "sklearn/tree/_tree.pyx":1579 * capacity = 2 * self.capacity * * self.capacity = capacity # <<<<<<<<<<<<<< @@ -12886,7 +12875,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_self->capacity = __pyx_v_capacity; - /* "sklearn/tree/_tree.pyx":1588 + /* "sklearn/tree/_tree.pyx":1582 * * cdef SIZE_t* tmp_children_left = \ * realloc(self.children_left, capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12895,7 +12884,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_children_left = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)realloc(__pyx_v_self->children_left, (__pyx_v_capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1590 + /* "sklearn/tree/_tree.pyx":1584 * realloc(self.children_left, capacity * sizeof(SIZE_t)) * * if tmp_children_left != NULL: # <<<<<<<<<<<<<< @@ -12905,7 +12894,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_children_left != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1591 + /* "sklearn/tree/_tree.pyx":1585 * * if tmp_children_left != NULL: * self.children_left = tmp_children_left # <<<<<<<<<<<<<< @@ -12917,7 +12906,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L6:; - /* "sklearn/tree/_tree.pyx":1594 + /* "sklearn/tree/_tree.pyx":1588 * * cdef SIZE_t* tmp_children_right = \ * realloc(self.children_right, capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12926,7 +12915,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_children_right = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)realloc(__pyx_v_self->children_right, (__pyx_v_capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1596 + /* "sklearn/tree/_tree.pyx":1590 * realloc(self.children_right, capacity * sizeof(SIZE_t)) * * if tmp_children_right != NULL: # <<<<<<<<<<<<<< @@ -12936,7 +12925,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_children_right != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1597 + /* "sklearn/tree/_tree.pyx":1591 * * if tmp_children_right != NULL: * self.children_right = tmp_children_right # <<<<<<<<<<<<<< @@ -12948,7 +12937,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L7:; - /* "sklearn/tree/_tree.pyx":1600 + /* "sklearn/tree/_tree.pyx":1594 * * cdef SIZE_t* tmp_feature = \ * realloc(self.feature, capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -12957,7 +12946,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_feature = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)realloc(__pyx_v_self->feature, (__pyx_v_capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1602 + /* "sklearn/tree/_tree.pyx":1596 * realloc(self.feature, capacity * sizeof(SIZE_t)) * * if tmp_feature != NULL: # <<<<<<<<<<<<<< @@ -12967,7 +12956,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_feature != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1603 + /* "sklearn/tree/_tree.pyx":1597 * * if tmp_feature != NULL: * self.feature = tmp_feature # <<<<<<<<<<<<<< @@ -12979,7 +12968,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L8:; - /* "sklearn/tree/_tree.pyx":1606 + /* "sklearn/tree/_tree.pyx":1600 * * cdef double* tmp_threshold = \ * realloc(self.threshold, capacity * sizeof(double)) # <<<<<<<<<<<<<< @@ -12988,7 +12977,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_threshold = ((double *)realloc(__pyx_v_self->threshold, (__pyx_v_capacity * (sizeof(double))))); - /* "sklearn/tree/_tree.pyx":1608 + /* "sklearn/tree/_tree.pyx":1602 * realloc(self.threshold, capacity * sizeof(double)) * * if tmp_threshold != NULL: # <<<<<<<<<<<<<< @@ -12998,7 +12987,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_threshold != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1609 + /* "sklearn/tree/_tree.pyx":1603 * * if tmp_threshold != NULL: * self.threshold = tmp_threshold # <<<<<<<<<<<<<< @@ -13010,7 +12999,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L9:; - /* "sklearn/tree/_tree.pyx":1613 + /* "sklearn/tree/_tree.pyx":1607 * cdef double* tmp_value = \ * realloc(self.value, * capacity * self.value_stride * sizeof(double)) # <<<<<<<<<<<<<< @@ -13019,7 +13008,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_value = ((double *)realloc(__pyx_v_self->value, ((__pyx_v_capacity * __pyx_v_self->value_stride) * (sizeof(double))))); - /* "sklearn/tree/_tree.pyx":1615 + /* "sklearn/tree/_tree.pyx":1609 * capacity * self.value_stride * sizeof(double)) * * if tmp_value != NULL: # <<<<<<<<<<<<<< @@ -13029,7 +13018,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_value != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1616 + /* "sklearn/tree/_tree.pyx":1610 * * if tmp_value != NULL: * self.value = tmp_value # <<<<<<<<<<<<<< @@ -13041,7 +13030,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L10:; - /* "sklearn/tree/_tree.pyx":1619 + /* "sklearn/tree/_tree.pyx":1613 * * cdef double* tmp_impurity = \ * realloc(self.impurity, capacity * sizeof(double)) # <<<<<<<<<<<<<< @@ -13050,7 +13039,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_impurity = ((double *)realloc(__pyx_v_self->impurity, (__pyx_v_capacity * (sizeof(double))))); - /* "sklearn/tree/_tree.pyx":1621 + /* "sklearn/tree/_tree.pyx":1615 * realloc(self.impurity, capacity * sizeof(double)) * * if tmp_impurity != NULL: # <<<<<<<<<<<<<< @@ -13060,7 +13049,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_impurity != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1622 + /* "sklearn/tree/_tree.pyx":1616 * * if tmp_impurity != NULL: * self.impurity = tmp_impurity # <<<<<<<<<<<<<< @@ -13072,7 +13061,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L11:; - /* "sklearn/tree/_tree.pyx":1625 + /* "sklearn/tree/_tree.pyx":1619 * * cdef SIZE_t* tmp_n_node_samples = \ * realloc(self.n_node_samples, capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -13081,7 +13070,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear */ __pyx_v_tmp_n_node_samples = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)realloc(__pyx_v_self->n_node_samples, (__pyx_v_capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1627 + /* "sklearn/tree/_tree.pyx":1621 * realloc(self.n_node_samples, capacity * sizeof(SIZE_t)) * * if tmp_n_node_samples != NULL: # <<<<<<<<<<<<<< @@ -13091,7 +13080,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_n_node_samples != NULL) != 0); if (__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1628 + /* "sklearn/tree/_tree.pyx":1622 * * if tmp_n_node_samples != NULL: * self.n_node_samples = tmp_n_node_samples # <<<<<<<<<<<<<< @@ -13103,7 +13092,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } __pyx_L12:; - /* "sklearn/tree/_tree.pyx":1630 + /* "sklearn/tree/_tree.pyx":1624 * self.n_node_samples = tmp_n_node_samples * * if ((tmp_children_left == NULL) or # <<<<<<<<<<<<<< @@ -13113,7 +13102,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_1 = ((__pyx_v_tmp_children_left == NULL) != 0); if (!__pyx_t_1) { - /* "sklearn/tree/_tree.pyx":1631 + /* "sklearn/tree/_tree.pyx":1625 * * if ((tmp_children_left == NULL) or * (tmp_children_right == NULL) or # <<<<<<<<<<<<<< @@ -13123,7 +13112,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_2 = ((__pyx_v_tmp_children_right == NULL) != 0); if (!__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1632 + /* "sklearn/tree/_tree.pyx":1626 * if ((tmp_children_left == NULL) or * (tmp_children_right == NULL) or * (tmp_feature == NULL) or # <<<<<<<<<<<<<< @@ -13133,7 +13122,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_3 = ((__pyx_v_tmp_feature == NULL) != 0); if (!__pyx_t_3) { - /* "sklearn/tree/_tree.pyx":1633 + /* "sklearn/tree/_tree.pyx":1627 * (tmp_children_right == NULL) or * (tmp_feature == NULL) or * (tmp_threshold == NULL) or # <<<<<<<<<<<<<< @@ -13143,7 +13132,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_4 = ((__pyx_v_tmp_threshold == NULL) != 0); if (!__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1634 + /* "sklearn/tree/_tree.pyx":1628 * (tmp_feature == NULL) or * (tmp_threshold == NULL) or * (tmp_value == NULL) or # <<<<<<<<<<<<<< @@ -13153,7 +13142,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_5 = ((__pyx_v_tmp_value == NULL) != 0); if (!__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1635 + /* "sklearn/tree/_tree.pyx":1629 * (tmp_threshold == NULL) or * (tmp_value == NULL) or * (tmp_impurity == NULL) or # <<<<<<<<<<<<<< @@ -13163,7 +13152,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_6 = ((__pyx_v_tmp_impurity == NULL) != 0); if (!__pyx_t_6) { - /* "sklearn/tree/_tree.pyx":1636 + /* "sklearn/tree/_tree.pyx":1630 * (tmp_value == NULL) or * (tmp_impurity == NULL) or * (tmp_n_node_samples == NULL)): # <<<<<<<<<<<<<< @@ -13197,19 +13186,19 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear } if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1637 + /* "sklearn/tree/_tree.pyx":1631 * (tmp_impurity == NULL) or * (tmp_n_node_samples == NULL)): * raise MemoryError() # <<<<<<<<<<<<<< * * # if capacity smaller than node_count, adjust the counter */ - PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1637; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L1_error;} goto __pyx_L13; } __pyx_L13:; - /* "sklearn/tree/_tree.pyx":1640 + /* "sklearn/tree/_tree.pyx":1634 * * # if capacity smaller than node_count, adjust the counter * if capacity < self.node_count: # <<<<<<<<<<<<<< @@ -13219,7 +13208,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __pyx_t_2 = ((__pyx_v_capacity < __pyx_v_self->node_count) != 0); if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1641 + /* "sklearn/tree/_tree.pyx":1635 * # if capacity smaller than node_count, adjust the counter * if capacity < self.node_count: * self.node_count = capacity # <<<<<<<<<<<<<< @@ -13238,7 +13227,7 @@ static void __pyx_f_7sklearn_4tree_5_tree_4Tree__resize(struct __pyx_obj_7sklear __Pyx_RefNannyFinishContext(); } -/* "sklearn/tree/_tree.pyx":1643 +/* "sklearn/tree/_tree.pyx":1637 * self.node_count = capacity * * cdef SIZE_t _add_node(self, SIZE_t parent, # <<<<<<<<<<<<<< @@ -13254,7 +13243,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ int __pyx_t_2; __Pyx_RefNannySetupContext("_add_node", 0); - /* "sklearn/tree/_tree.pyx":1652 + /* "sklearn/tree/_tree.pyx":1646 * """Add a node to the tree. The new node registers itself as * the child of its parent. """ * cdef SIZE_t node_id = self.node_count # <<<<<<<<<<<<<< @@ -13264,7 +13253,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ __pyx_t_1 = __pyx_v_self->node_count; __pyx_v_node_id = __pyx_t_1; - /* "sklearn/tree/_tree.pyx":1654 + /* "sklearn/tree/_tree.pyx":1648 * cdef SIZE_t node_id = self.node_count * * if node_id >= self.capacity: # <<<<<<<<<<<<<< @@ -13274,7 +13263,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ __pyx_t_2 = ((__pyx_v_node_id >= __pyx_v_self->capacity) != 0); if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1655 + /* "sklearn/tree/_tree.pyx":1649 * * if node_id >= self.capacity: * self._resize() # <<<<<<<<<<<<<< @@ -13286,7 +13275,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ } __pyx_L3:; - /* "sklearn/tree/_tree.pyx":1657 + /* "sklearn/tree/_tree.pyx":1651 * self._resize() * * self.impurity[node_id] = impurity # <<<<<<<<<<<<<< @@ -13295,7 +13284,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->impurity[__pyx_v_node_id]) = __pyx_v_impurity; - /* "sklearn/tree/_tree.pyx":1658 + /* "sklearn/tree/_tree.pyx":1652 * * self.impurity[node_id] = impurity * self.n_node_samples[node_id] = n_node_samples # <<<<<<<<<<<<<< @@ -13304,7 +13293,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->n_node_samples[__pyx_v_node_id]) = __pyx_v_n_node_samples; - /* "sklearn/tree/_tree.pyx":1660 + /* "sklearn/tree/_tree.pyx":1654 * self.n_node_samples[node_id] = n_node_samples * * if parent != _TREE_UNDEFINED: # <<<<<<<<<<<<<< @@ -13314,7 +13303,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ __pyx_t_2 = ((__pyx_v_parent != __pyx_v_7sklearn_4tree_5_tree__TREE_UNDEFINED) != 0); if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1661 + /* "sklearn/tree/_tree.pyx":1655 * * if parent != _TREE_UNDEFINED: * if is_left: # <<<<<<<<<<<<<< @@ -13324,7 +13313,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ __pyx_t_2 = (__pyx_v_is_left != 0); if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1662 + /* "sklearn/tree/_tree.pyx":1656 * if parent != _TREE_UNDEFINED: * if is_left: * self.children_left[parent] = node_id # <<<<<<<<<<<<<< @@ -13336,7 +13325,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ } /*else*/ { - /* "sklearn/tree/_tree.pyx":1664 + /* "sklearn/tree/_tree.pyx":1658 * self.children_left[parent] = node_id * else: * self.children_right[parent] = node_id # <<<<<<<<<<<<<< @@ -13350,7 +13339,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ } __pyx_L4:; - /* "sklearn/tree/_tree.pyx":1666 + /* "sklearn/tree/_tree.pyx":1660 * self.children_right[parent] = node_id * * if not is_leaf: # <<<<<<<<<<<<<< @@ -13360,7 +13349,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ __pyx_t_2 = ((!(__pyx_v_is_leaf != 0)) != 0); if (__pyx_t_2) { - /* "sklearn/tree/_tree.pyx":1668 + /* "sklearn/tree/_tree.pyx":1662 * if not is_leaf: * # children_left and children_right will be set later * self.feature[node_id] = feature # <<<<<<<<<<<<<< @@ -13369,7 +13358,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->feature[__pyx_v_node_id]) = __pyx_v_feature; - /* "sklearn/tree/_tree.pyx":1669 + /* "sklearn/tree/_tree.pyx":1663 * # children_left and children_right will be set later * self.feature[node_id] = feature * self.threshold[node_id] = threshold # <<<<<<<<<<<<<< @@ -13381,7 +13370,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ } /*else*/ { - /* "sklearn/tree/_tree.pyx":1672 + /* "sklearn/tree/_tree.pyx":1666 * * else: * self.children_left[node_id] = _TREE_LEAF # <<<<<<<<<<<<<< @@ -13390,7 +13379,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->children_left[__pyx_v_node_id]) = __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF; - /* "sklearn/tree/_tree.pyx":1673 + /* "sklearn/tree/_tree.pyx":1667 * else: * self.children_left[node_id] = _TREE_LEAF * self.children_right[node_id] = _TREE_LEAF # <<<<<<<<<<<<<< @@ -13399,7 +13388,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->children_right[__pyx_v_node_id]) = __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF; - /* "sklearn/tree/_tree.pyx":1674 + /* "sklearn/tree/_tree.pyx":1668 * self.children_left[node_id] = _TREE_LEAF * self.children_right[node_id] = _TREE_LEAF * self.feature[node_id] = _TREE_UNDEFINED # <<<<<<<<<<<<<< @@ -13408,7 +13397,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ (__pyx_v_self->feature[__pyx_v_node_id]) = __pyx_v_7sklearn_4tree_5_tree__TREE_UNDEFINED; - /* "sklearn/tree/_tree.pyx":1675 + /* "sklearn/tree/_tree.pyx":1669 * self.children_right[node_id] = _TREE_LEAF * self.feature[node_id] = _TREE_UNDEFINED * self.threshold[node_id] = _TREE_UNDEFINED # <<<<<<<<<<<<<< @@ -13419,7 +13408,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ } __pyx_L6:; - /* "sklearn/tree/_tree.pyx":1677 + /* "sklearn/tree/_tree.pyx":1671 * self.threshold[node_id] = _TREE_UNDEFINED * * self.node_count += 1 # <<<<<<<<<<<<<< @@ -13428,7 +13417,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ */ __pyx_v_self->node_count = (__pyx_v_self->node_count + 1); - /* "sklearn/tree/_tree.pyx":1679 + /* "sklearn/tree/_tree.pyx":1673 * self.node_count += 1 * * return node_id # <<<<<<<<<<<<<< @@ -13444,7 +13433,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1681 +/* "sklearn/tree/_tree.pyx":1675 * return node_id * * cpdef build(self, np.ndarray X, # <<<<<<<<<<<<<< @@ -13455,7 +13444,7 @@ static __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_4Tree_ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7sklearn_4tree_5_tree_Tree *__pyx_v_self, PyArrayObject *__pyx_v_X, PyArrayObject *__pyx_v_y, int __pyx_skip_dispatch, struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree_build *__pyx_optional_args) { - /* "sklearn/tree/_tree.pyx":1683 + /* "sklearn/tree/_tree.pyx":1677 * cpdef build(self, np.ndarray X, * np.ndarray y, * np.ndarray sample_weight=None): # <<<<<<<<<<<<<< @@ -13506,7 +13495,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __Pyx_INCREF((PyObject *)__pyx_v_y); __Pyx_INCREF((PyObject *)__pyx_v_sample_weight); - /* "sklearn/tree/_tree.pyx":1681 + /* "sklearn/tree/_tree.pyx":1675 * return node_id * * cpdef build(self, np.ndarray X, # <<<<<<<<<<<<<< @@ -13517,11 +13506,11 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__build); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__build); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build)) { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_X)); @@ -13532,7 +13521,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __Pyx_INCREF(((PyObject *)__pyx_v_sample_weight)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_sample_weight)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sample_weight)); - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -13543,29 +13532,29 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "sklearn/tree/_tree.pyx":1686 + /* "sklearn/tree/_tree.pyx":1680 * """Build a decision tree from the training set (X, y).""" * # Prepare data before recursive partitioning * if X.dtype != DTYPE or not X.flags.contiguous: # <<<<<<<<<<<<<< * X = np.asarray(X, dtype=DTYPE, order="C") * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_X), __pyx_n_s__dtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_X), __pyx_n_s__dtype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTYPE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTYPE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_4) { - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_X), __pyx_n_s__flags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_X), __pyx_n_s__flags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1680; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = (!__pyx_t_5); __pyx_t_5 = __pyx_t_6; @@ -13574,65 +13563,65 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } if (__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1687 + /* "sklearn/tree/_tree.pyx":1681 * # Prepare data before recursive partitioning * if X.dtype != DTYPE or not X.flags.contiguous: * X = np.asarray(X, dtype=DTYPE, order="C") # <<<<<<<<<<<<<< * * if y.dtype != DOUBLE or not y.flags.contiguous: */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__asarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__asarray); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(((PyObject *)__pyx_v_X)); - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTYPE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTYPE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_7 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF_SET(__pyx_v_X, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0; goto __pyx_L3; } __pyx_L3:; - /* "sklearn/tree/_tree.pyx":1689 + /* "sklearn/tree/_tree.pyx":1683 * X = np.asarray(X, dtype=DTYPE, order="C") * * if y.dtype != DOUBLE or not y.flags.contiguous: # <<<<<<<<<<<<<< * y = np.asarray(y, dtype=DOUBLE, order="C") * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_y), __pyx_n_s__dtype); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_y), __pyx_n_s__dtype); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_5) { - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_y), __pyx_n_s__flags); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_y), __pyx_n_s__flags); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_4); __pyx_t_4 = __pyx_t_6; @@ -13641,43 +13630,43 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } if (__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1690 + /* "sklearn/tree/_tree.pyx":1684 * * if y.dtype != DOUBLE or not y.flags.contiguous: * y = np.asarray(y, dtype=DOUBLE, order="C") # <<<<<<<<<<<<<< * * cdef DOUBLE_t* sample_weight_ptr = NULL */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__asarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__asarray); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_y)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_y)); __Pyx_GIVEREF(((PyObject *)__pyx_v_y)); - __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_7)); - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__dtype), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__dtype), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF_SET(__pyx_v_y, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0; goto __pyx_L4; } __pyx_L4:; - /* "sklearn/tree/_tree.pyx":1692 + /* "sklearn/tree/_tree.pyx":1686 * y = np.asarray(y, dtype=DOUBLE, order="C") * * cdef DOUBLE_t* sample_weight_ptr = NULL # <<<<<<<<<<<<<< @@ -13686,7 +13675,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_sample_weight_ptr = NULL; - /* "sklearn/tree/_tree.pyx":1693 + /* "sklearn/tree/_tree.pyx":1687 * * cdef DOUBLE_t* sample_weight_ptr = NULL * if sample_weight is not None: # <<<<<<<<<<<<<< @@ -13697,37 +13686,37 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1694 + /* "sklearn/tree/_tree.pyx":1688 * cdef DOUBLE_t* sample_weight_ptr = NULL * if sample_weight is not None: * if ((sample_weight.dtype != DOUBLE) or # <<<<<<<<<<<<<< * (not sample_weight.flags.contiguous)): * sample_weight = np.asarray(sample_weight, */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sample_weight), __pyx_n_s__dtype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sample_weight), __pyx_n_s__dtype); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1688; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1695 + /* "sklearn/tree/_tree.pyx":1689 * if sample_weight is not None: * if ((sample_weight.dtype != DOUBLE) or * (not sample_weight.flags.contiguous)): # <<<<<<<<<<<<<< * sample_weight = np.asarray(sample_weight, * dtype=DOUBLE, order="C") */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sample_weight), __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sample_weight), __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__contiguous); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = (!__pyx_t_4); __pyx_t_4 = __pyx_t_6; @@ -13736,51 +13725,51 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } if (__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1696 + /* "sklearn/tree/_tree.pyx":1690 * if ((sample_weight.dtype != DOUBLE) or * (not sample_weight.flags.contiguous)): * sample_weight = np.asarray(sample_weight, # <<<<<<<<<<<<<< * dtype=DOUBLE, order="C") * sample_weight_ptr = sample_weight.data */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__asarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__asarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_sample_weight)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_sample_weight)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sample_weight)); - __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - /* "sklearn/tree/_tree.pyx":1697 + /* "sklearn/tree/_tree.pyx":1691 * (not sample_weight.flags.contiguous)): * sample_weight = np.asarray(sample_weight, * dtype=DOUBLE, order="C") # <<<<<<<<<<<<<< * sample_weight_ptr = sample_weight.data * */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1697; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1691; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__order), ((PyObject *)__pyx_n_s__C)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF_SET(__pyx_v_sample_weight, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; goto __pyx_L6; } __pyx_L6:; - /* "sklearn/tree/_tree.pyx":1698 + /* "sklearn/tree/_tree.pyx":1692 * sample_weight = np.asarray(sample_weight, * dtype=DOUBLE, order="C") * sample_weight_ptr = sample_weight.data # <<<<<<<<<<<<<< @@ -13792,7 +13781,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_L5:; - /* "sklearn/tree/_tree.pyx":1703 + /* "sklearn/tree/_tree.pyx":1697 * cdef int init_capacity * * if self.max_depth <= 10: # <<<<<<<<<<<<<< @@ -13802,7 +13791,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_4 = ((__pyx_v_self->max_depth <= 10) != 0); if (__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1704 + /* "sklearn/tree/_tree.pyx":1698 * * if self.max_depth <= 10: * init_capacity = (2 ** (self.max_depth + 1)) - 1 # <<<<<<<<<<<<<< @@ -13814,7 +13803,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } /*else*/ { - /* "sklearn/tree/_tree.pyx":1706 + /* "sklearn/tree/_tree.pyx":1700 * init_capacity = (2 ** (self.max_depth + 1)) - 1 * else: * init_capacity = 2047 # <<<<<<<<<<<<<< @@ -13825,7 +13814,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_L7:; - /* "sklearn/tree/_tree.pyx":1708 + /* "sklearn/tree/_tree.pyx":1702 * init_capacity = 2047 * * self._resize(init_capacity) # <<<<<<<<<<<<<< @@ -13836,7 +13825,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_8.capacity = __pyx_v_init_capacity; ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->_resize(__pyx_v_self, &__pyx_t_8); - /* "sklearn/tree/_tree.pyx":1711 + /* "sklearn/tree/_tree.pyx":1705 * * # Recursive partition (without actual recursion) * cdef Splitter splitter = self.splitter # <<<<<<<<<<<<<< @@ -13848,7 +13837,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_v_splitter = ((struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *)__pyx_t_3); __pyx_t_3 = 0; - /* "sklearn/tree/_tree.pyx":1712 + /* "sklearn/tree/_tree.pyx":1706 * # Recursive partition (without actual recursion) * cdef Splitter splitter = self.splitter * splitter.init(X, y, sample_weight_ptr) # <<<<<<<<<<<<<< @@ -13857,7 +13846,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Splitter *)__pyx_v_splitter->__pyx_vtab)->init(__pyx_v_splitter, __pyx_v_X, __pyx_v_y, __pyx_v_sample_weight_ptr); - /* "sklearn/tree/_tree.pyx":1714 + /* "sklearn/tree/_tree.pyx":1708 * splitter.init(X, y, sample_weight_ptr) * * cdef SIZE_t stack_n_values = 5 # <<<<<<<<<<<<<< @@ -13866,7 +13855,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack_n_values = 5; - /* "sklearn/tree/_tree.pyx":1715 + /* "sklearn/tree/_tree.pyx":1709 * * cdef SIZE_t stack_n_values = 5 * cdef SIZE_t stack_capacity = 50 # <<<<<<<<<<<<<< @@ -13875,7 +13864,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack_capacity = 50; - /* "sklearn/tree/_tree.pyx":1716 + /* "sklearn/tree/_tree.pyx":1710 * cdef SIZE_t stack_n_values = 5 * cdef SIZE_t stack_capacity = 50 * cdef SIZE_t* stack = malloc(stack_capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -13884,7 +13873,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack = ((__pyx_t_7sklearn_4tree_5_tree_SIZE_t *)malloc((__pyx_v_stack_capacity * (sizeof(__pyx_t_7sklearn_4tree_5_tree_SIZE_t))))); - /* "sklearn/tree/_tree.pyx":1718 + /* "sklearn/tree/_tree.pyx":1712 * cdef SIZE_t* stack = malloc(stack_capacity * sizeof(SIZE_t)) * * stack[0] = 0 # start # <<<<<<<<<<<<<< @@ -13893,7 +13882,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[0]) = 0; - /* "sklearn/tree/_tree.pyx":1719 + /* "sklearn/tree/_tree.pyx":1713 * * stack[0] = 0 # start * stack[1] = splitter.n_samples # end # <<<<<<<<<<<<<< @@ -13903,7 +13892,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_9 = __pyx_v_splitter->n_samples; (__pyx_v_stack[1]) = __pyx_t_9; - /* "sklearn/tree/_tree.pyx":1720 + /* "sklearn/tree/_tree.pyx":1714 * stack[0] = 0 # start * stack[1] = splitter.n_samples # end * stack[2] = 0 # depth # <<<<<<<<<<<<<< @@ -13912,7 +13901,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[2]) = 0; - /* "sklearn/tree/_tree.pyx":1721 + /* "sklearn/tree/_tree.pyx":1715 * stack[1] = splitter.n_samples # end * stack[2] = 0 # depth * stack[3] = _TREE_UNDEFINED # parent # <<<<<<<<<<<<<< @@ -13921,7 +13910,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[3]) = __pyx_v_7sklearn_4tree_5_tree__TREE_UNDEFINED; - /* "sklearn/tree/_tree.pyx":1722 + /* "sklearn/tree/_tree.pyx":1716 * stack[2] = 0 # depth * stack[3] = _TREE_UNDEFINED # parent * stack[4] = 0 # is_left # <<<<<<<<<<<<<< @@ -13930,7 +13919,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[4]) = 0; - /* "sklearn/tree/_tree.pyx":1739 + /* "sklearn/tree/_tree.pyx":1733 * cdef SIZE_t node_id * * while stack_n_values > 0: # <<<<<<<<<<<<<< @@ -13941,7 +13930,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_4 = ((__pyx_v_stack_n_values > 0) != 0); if (!__pyx_t_4) break; - /* "sklearn/tree/_tree.pyx":1740 + /* "sklearn/tree/_tree.pyx":1734 * * while stack_n_values > 0: * stack_n_values -= 5 # <<<<<<<<<<<<<< @@ -13950,7 +13939,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack_n_values = (__pyx_v_stack_n_values - 5); - /* "sklearn/tree/_tree.pyx":1742 + /* "sklearn/tree/_tree.pyx":1736 * stack_n_values -= 5 * * start = stack[stack_n_values] # <<<<<<<<<<<<<< @@ -13959,7 +13948,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_start = (__pyx_v_stack[__pyx_v_stack_n_values]); - /* "sklearn/tree/_tree.pyx":1743 + /* "sklearn/tree/_tree.pyx":1737 * * start = stack[stack_n_values] * end = stack[stack_n_values + 1] # <<<<<<<<<<<<<< @@ -13968,7 +13957,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_end = (__pyx_v_stack[(__pyx_v_stack_n_values + 1)]); - /* "sklearn/tree/_tree.pyx":1744 + /* "sklearn/tree/_tree.pyx":1738 * start = stack[stack_n_values] * end = stack[stack_n_values + 1] * depth = stack[stack_n_values + 2] # <<<<<<<<<<<<<< @@ -13977,7 +13966,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_depth = (__pyx_v_stack[(__pyx_v_stack_n_values + 2)]); - /* "sklearn/tree/_tree.pyx":1745 + /* "sklearn/tree/_tree.pyx":1739 * end = stack[stack_n_values + 1] * depth = stack[stack_n_values + 2] * parent = stack[stack_n_values + 3] # <<<<<<<<<<<<<< @@ -13986,7 +13975,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_parent = (__pyx_v_stack[(__pyx_v_stack_n_values + 3)]); - /* "sklearn/tree/_tree.pyx":1746 + /* "sklearn/tree/_tree.pyx":1740 * depth = stack[stack_n_values + 2] * parent = stack[stack_n_values + 3] * is_left = stack[stack_n_values + 4] # <<<<<<<<<<<<<< @@ -13995,7 +13984,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_is_left = (__pyx_v_stack[(__pyx_v_stack_n_values + 4)]); - /* "sklearn/tree/_tree.pyx":1748 + /* "sklearn/tree/_tree.pyx":1742 * is_left = stack[stack_n_values + 4] * * n_node_samples = end - start # <<<<<<<<<<<<<< @@ -14004,7 +13993,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_n_node_samples = (__pyx_v_end - __pyx_v_start); - /* "sklearn/tree/_tree.pyx":1749 + /* "sklearn/tree/_tree.pyx":1743 * * n_node_samples = end - start * is_leaf = ((depth >= self.max_depth) or # <<<<<<<<<<<<<< @@ -14014,7 +14003,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_4 = (__pyx_v_depth >= __pyx_v_self->max_depth); if (!__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1750 + /* "sklearn/tree/_tree.pyx":1744 * n_node_samples = end - start * is_leaf = ((depth >= self.max_depth) or * (n_node_samples < self.min_samples_split) or # <<<<<<<<<<<<<< @@ -14024,7 +14013,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_5 = (__pyx_v_n_node_samples < __pyx_v_self->min_samples_split); if (!__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1751 + /* "sklearn/tree/_tree.pyx":1745 * is_leaf = ((depth >= self.max_depth) or * (n_node_samples < self.min_samples_split) or * (n_node_samples < 2 * self.min_samples_leaf)) # <<<<<<<<<<<<<< @@ -14042,7 +14031,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_v_is_leaf = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1753 + /* "sklearn/tree/_tree.pyx":1747 * (n_node_samples < 2 * self.min_samples_leaf)) * * splitter.node_reset(start, end, &impurity) # <<<<<<<<<<<<<< @@ -14051,7 +14040,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Splitter *)__pyx_v_splitter->__pyx_vtab)->node_reset(__pyx_v_splitter, __pyx_v_start, __pyx_v_end, (&__pyx_v_impurity)); - /* "sklearn/tree/_tree.pyx":1754 + /* "sklearn/tree/_tree.pyx":1748 * * splitter.node_reset(start, end, &impurity) * is_leaf = is_leaf or (impurity < 1e-7) # <<<<<<<<<<<<<< @@ -14066,7 +14055,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_v_is_leaf = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1756 + /* "sklearn/tree/_tree.pyx":1750 * is_leaf = is_leaf or (impurity < 1e-7) * * if not is_leaf: # <<<<<<<<<<<<<< @@ -14076,7 +14065,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_4 = ((!(__pyx_v_is_leaf != 0)) != 0); if (__pyx_t_4) { - /* "sklearn/tree/_tree.pyx":1757 + /* "sklearn/tree/_tree.pyx":1751 * * if not is_leaf: * splitter.node_split(&pos, &feature, &threshold) # <<<<<<<<<<<<<< @@ -14085,7 +14074,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Splitter *)__pyx_v_splitter->__pyx_vtab)->node_split(__pyx_v_splitter, (&__pyx_v_pos), (&__pyx_v_feature), (&__pyx_v_threshold)); - /* "sklearn/tree/_tree.pyx":1758 + /* "sklearn/tree/_tree.pyx":1752 * if not is_leaf: * splitter.node_split(&pos, &feature, &threshold) * is_leaf = is_leaf or (pos >= end) # <<<<<<<<<<<<<< @@ -14103,7 +14092,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_L10:; - /* "sklearn/tree/_tree.pyx":1761 + /* "sklearn/tree/_tree.pyx":1755 * * node_id = self._add_node(parent, is_left, is_leaf, feature, * threshold, impurity, n_node_samples) # <<<<<<<<<<<<<< @@ -14112,7 +14101,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_node_id = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->_add_node(__pyx_v_self, __pyx_v_parent, __pyx_v_is_left, __pyx_v_is_leaf, __pyx_v_feature, __pyx_v_threshold, __pyx_v_impurity, __pyx_v_n_node_samples); - /* "sklearn/tree/_tree.pyx":1763 + /* "sklearn/tree/_tree.pyx":1757 * threshold, impurity, n_node_samples) * * if is_leaf: # <<<<<<<<<<<<<< @@ -14122,7 +14111,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_5 = (__pyx_v_is_leaf != 0); if (__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1765 + /* "sklearn/tree/_tree.pyx":1759 * if is_leaf: * # Don't store value for internal nodes * splitter.node_value(self.value + node_id * self.value_stride) # <<<<<<<<<<<<<< @@ -14134,7 +14123,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } /*else*/ { - /* "sklearn/tree/_tree.pyx":1768 + /* "sklearn/tree/_tree.pyx":1762 * * else: * if stack_n_values + 10 > stack_capacity: # <<<<<<<<<<<<<< @@ -14144,7 +14133,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_5 = (((__pyx_v_stack_n_values + 10) > __pyx_v_stack_capacity) != 0); if (__pyx_t_5) { - /* "sklearn/tree/_tree.pyx":1769 + /* "sklearn/tree/_tree.pyx":1763 * else: * if stack_n_values + 10 > stack_capacity: * stack_capacity *= 2 # <<<<<<<<<<<<<< @@ -14153,7 +14142,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack_capacity = (__pyx_v_stack_capacity * 2); - /* "sklearn/tree/_tree.pyx":1771 + /* "sklearn/tree/_tree.pyx":1765 * stack_capacity *= 2 * stack = realloc(stack, * stack_capacity * sizeof(SIZE_t)) # <<<<<<<<<<<<<< @@ -14165,7 +14154,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl } __pyx_L12:; - /* "sklearn/tree/_tree.pyx":1774 + /* "sklearn/tree/_tree.pyx":1768 * * # Stack right child * stack[stack_n_values] = pos # <<<<<<<<<<<<<< @@ -14174,7 +14163,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[__pyx_v_stack_n_values]) = __pyx_v_pos; - /* "sklearn/tree/_tree.pyx":1775 + /* "sklearn/tree/_tree.pyx":1769 * # Stack right child * stack[stack_n_values] = pos * stack[stack_n_values + 1] = end # <<<<<<<<<<<<<< @@ -14183,7 +14172,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 1)]) = __pyx_v_end; - /* "sklearn/tree/_tree.pyx":1776 + /* "sklearn/tree/_tree.pyx":1770 * stack[stack_n_values] = pos * stack[stack_n_values + 1] = end * stack[stack_n_values + 2] = depth + 1 # <<<<<<<<<<<<<< @@ -14192,7 +14181,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 2)]) = (__pyx_v_depth + 1); - /* "sklearn/tree/_tree.pyx":1777 + /* "sklearn/tree/_tree.pyx":1771 * stack[stack_n_values + 1] = end * stack[stack_n_values + 2] = depth + 1 * stack[stack_n_values + 3] = node_id # <<<<<<<<<<<<<< @@ -14201,7 +14190,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 3)]) = __pyx_v_node_id; - /* "sklearn/tree/_tree.pyx":1778 + /* "sklearn/tree/_tree.pyx":1772 * stack[stack_n_values + 2] = depth + 1 * stack[stack_n_values + 3] = node_id * stack[stack_n_values + 4] = 0 # <<<<<<<<<<<<<< @@ -14210,7 +14199,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 4)]) = 0; - /* "sklearn/tree/_tree.pyx":1779 + /* "sklearn/tree/_tree.pyx":1773 * stack[stack_n_values + 3] = node_id * stack[stack_n_values + 4] = 0 * stack_n_values += 5 # <<<<<<<<<<<<<< @@ -14219,7 +14208,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ __pyx_v_stack_n_values = (__pyx_v_stack_n_values + 5); - /* "sklearn/tree/_tree.pyx":1782 + /* "sklearn/tree/_tree.pyx":1776 * * # Stack left child * stack[stack_n_values] = start # <<<<<<<<<<<<<< @@ -14228,7 +14217,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[__pyx_v_stack_n_values]) = __pyx_v_start; - /* "sklearn/tree/_tree.pyx":1783 + /* "sklearn/tree/_tree.pyx":1777 * # Stack left child * stack[stack_n_values] = start * stack[stack_n_values + 1] = pos # <<<<<<<<<<<<<< @@ -14237,7 +14226,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 1)]) = __pyx_v_pos; - /* "sklearn/tree/_tree.pyx":1784 + /* "sklearn/tree/_tree.pyx":1778 * stack[stack_n_values] = start * stack[stack_n_values + 1] = pos * stack[stack_n_values + 2] = depth + 1 # <<<<<<<<<<<<<< @@ -14246,7 +14235,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 2)]) = (__pyx_v_depth + 1); - /* "sklearn/tree/_tree.pyx":1785 + /* "sklearn/tree/_tree.pyx":1779 * stack[stack_n_values + 1] = pos * stack[stack_n_values + 2] = depth + 1 * stack[stack_n_values + 3] = node_id # <<<<<<<<<<<<<< @@ -14255,7 +14244,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 3)]) = __pyx_v_node_id; - /* "sklearn/tree/_tree.pyx":1786 + /* "sklearn/tree/_tree.pyx":1780 * stack[stack_n_values + 2] = depth + 1 * stack[stack_n_values + 3] = node_id * stack[stack_n_values + 4] = 1 # <<<<<<<<<<<<<< @@ -14264,7 +14253,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl */ (__pyx_v_stack[(__pyx_v_stack_n_values + 4)]) = 1; - /* "sklearn/tree/_tree.pyx":1787 + /* "sklearn/tree/_tree.pyx":1781 * stack[stack_n_values + 3] = node_id * stack[stack_n_values + 4] = 1 * stack_n_values += 5 # <<<<<<<<<<<<<< @@ -14276,7 +14265,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_L11:; } - /* "sklearn/tree/_tree.pyx":1789 + /* "sklearn/tree/_tree.pyx":1783 * stack_n_values += 5 * * self._resize(self.node_count) # <<<<<<<<<<<<<< @@ -14287,7 +14276,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __pyx_t_8.capacity = __pyx_v_self->node_count; ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->_resize(__pyx_v_self, &__pyx_t_8); - /* "sklearn/tree/_tree.pyx":1790 + /* "sklearn/tree/_tree.pyx":1784 * * self._resize(self.node_count) * self.splitter = None # Release memory # <<<<<<<<<<<<<< @@ -14300,7 +14289,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_build(struct __pyx_obj_7skl __Pyx_DECREF(((PyObject *)__pyx_v_self->splitter)); __pyx_v_self->splitter = ((struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *)Py_None); - /* "sklearn/tree/_tree.pyx":1791 + /* "sklearn/tree/_tree.pyx":1785 * self._resize(self.node_count) * self.splitter = None # Release memory * free(stack) # <<<<<<<<<<<<<< @@ -14345,7 +14334,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__X,&__pyx_n_s__y,&__pyx_n_s__sample_weight,0}; PyObject* values[3] = {0,0,0}; - /* "sklearn/tree/_tree.pyx":1683 + /* "sklearn/tree/_tree.pyx":1677 * cpdef build(self, np.ndarray X, * np.ndarray y, * np.ndarray sample_weight=None): # <<<<<<<<<<<<<< @@ -14371,7 +14360,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_ case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("build", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("build", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: if (kw_args > 0) { @@ -14380,7 +14369,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_ } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "build") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "build") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -14397,15 +14386,15 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("build", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("build", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("sklearn.tree._tree.Tree.build", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sample_weight), __pyx_ptype_5numpy_ndarray, 1, "sample_weight", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1683; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1676; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sample_weight), __pyx_ptype_5numpy_ndarray, 1, "sample_weight", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1677; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = __pyx_pf_7sklearn_4tree_5_tree_4Tree_10build(((struct __pyx_obj_7sklearn_4tree_5_tree_Tree *)__pyx_v_self), __pyx_v_X, __pyx_v_y, __pyx_v_sample_weight); goto __pyx_L0; __pyx_L1_error:; @@ -14415,7 +14404,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_11build(PyObject *__pyx_v_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1681 +/* "sklearn/tree/_tree.pyx":1675 * return node_id * * cpdef build(self, np.ndarray X, # <<<<<<<<<<<<<< @@ -14435,7 +14424,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_10build(struct __pyx_obj_7 __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.sample_weight = __pyx_v_sample_weight; - __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->build(__pyx_v_self, __pyx_v_X, __pyx_v_y, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1681; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->build(__pyx_v_self, __pyx_v_X, __pyx_v_y, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1675; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -14453,7 +14442,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_10build(struct __pyx_obj_7 return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1793 +/* "sklearn/tree/_tree.pyx":1787 * free(stack) * * cpdef predict(self, np.ndarray[DTYPE_t, ndim=2] X): # <<<<<<<<<<<<<< @@ -14532,23 +14521,23 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__predict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__predict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_7sklearn_4tree_5_tree_4Tree_13predict)) { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(((PyObject *)__pyx_v_X)); - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -14559,7 +14548,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "sklearn/tree/_tree.pyx":1795 + /* "sklearn/tree/_tree.pyx":1789 * cpdef predict(self, np.ndarray[DTYPE_t, ndim=2] X): * """Predict target for X.""" * cdef SIZE_t* children_left = self.children_left # <<<<<<<<<<<<<< @@ -14569,7 +14558,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_4 = __pyx_v_self->children_left; __pyx_v_children_left = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1796 + /* "sklearn/tree/_tree.pyx":1790 * """Predict target for X.""" * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right # <<<<<<<<<<<<<< @@ -14579,7 +14568,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_4 = __pyx_v_self->children_right; __pyx_v_children_right = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1797 + /* "sklearn/tree/_tree.pyx":1791 * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature # <<<<<<<<<<<<<< @@ -14589,7 +14578,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_4 = __pyx_v_self->feature; __pyx_v_feature = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1798 + /* "sklearn/tree/_tree.pyx":1792 * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature * cdef double* threshold = self.threshold # <<<<<<<<<<<<<< @@ -14599,7 +14588,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_5 = __pyx_v_self->threshold; __pyx_v_threshold = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1799 + /* "sklearn/tree/_tree.pyx":1793 * cdef SIZE_t* feature = self.feature * cdef double* threshold = self.threshold * cdef double* value = self.value # <<<<<<<<<<<<<< @@ -14609,7 +14598,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_5 = __pyx_v_self->value; __pyx_v_value = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1801 + /* "sklearn/tree/_tree.pyx":1795 * cdef double* value = self.value * * cdef SIZE_t n_samples = X.shape[0] # <<<<<<<<<<<<<< @@ -14618,7 +14607,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_n_samples = (__pyx_v_X->dimensions[0]); - /* "sklearn/tree/_tree.pyx":1802 + /* "sklearn/tree/_tree.pyx":1796 * * cdef SIZE_t n_samples = X.shape[0] * cdef SIZE_t* n_classes = self.n_classes # <<<<<<<<<<<<<< @@ -14628,7 +14617,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_4 = __pyx_v_self->n_classes; __pyx_v_n_classes = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1803 + /* "sklearn/tree/_tree.pyx":1797 * cdef SIZE_t n_samples = X.shape[0] * cdef SIZE_t* n_classes = self.n_classes * cdef SIZE_t n_outputs = self.n_outputs # <<<<<<<<<<<<<< @@ -14638,7 +14627,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_6 = __pyx_v_self->n_outputs; __pyx_v_n_outputs = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1804 + /* "sklearn/tree/_tree.pyx":1798 * cdef SIZE_t* n_classes = self.n_classes * cdef SIZE_t n_outputs = self.n_outputs * cdef SIZE_t max_n_classes = self.max_n_classes # <<<<<<<<<<<<<< @@ -14648,7 +14637,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_6 = __pyx_v_self->max_n_classes; __pyx_v_max_n_classes = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1805 + /* "sklearn/tree/_tree.pyx":1799 * cdef SIZE_t n_outputs = self.n_outputs * cdef SIZE_t max_n_classes = self.max_n_classes * cdef SIZE_t value_stride = self.value_stride # <<<<<<<<<<<<<< @@ -14658,7 +14647,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_6 = __pyx_v_self->value_stride; __pyx_v_value_stride = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1807 + /* "sklearn/tree/_tree.pyx":1801 * cdef SIZE_t value_stride = self.value_stride * * cdef SIZE_t node_id = 0 # <<<<<<<<<<<<<< @@ -14667,7 +14656,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_node_id = 0; - /* "sklearn/tree/_tree.pyx":1816 + /* "sklearn/tree/_tree.pyx":1810 * cdef np.ndarray[np.float64_t, ndim=3] out_multi * * if n_outputs == 1: # <<<<<<<<<<<<<< @@ -14677,23 +14666,23 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_7 = ((__pyx_v_n_outputs == 1) != 0); if (__pyx_t_7) { - /* "sklearn/tree/_tree.pyx":1817 + /* "sklearn/tree/_tree.pyx":1811 * * if n_outputs == 1: * out = np.zeros((n_samples, max_n_classes), dtype=np.float64) # <<<<<<<<<<<<<< * * for i from 0 <= i < n_samples: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_max_n_classes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_max_n_classes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -14701,26 +14690,26 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __Pyx_GIVEREF(__pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_8)); __Pyx_GIVEREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; - __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_8)); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_t_8, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_8, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0; - if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_10 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -14736,13 +14725,13 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } } __pyx_pybuffernd_out.diminfo[0].strides = __pyx_pybuffernd_out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_out.diminfo[0].shape = __pyx_pybuffernd_out.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_out.diminfo[1].strides = __pyx_pybuffernd_out.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_out.diminfo[1].shape = __pyx_pybuffernd_out.rcbuffer->pybuffer.shape[1]; - if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1817; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_10 = 0; __pyx_v_out = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; - /* "sklearn/tree/_tree.pyx":1819 + /* "sklearn/tree/_tree.pyx":1813 * out = np.zeros((n_samples, max_n_classes), dtype=np.float64) * * for i from 0 <= i < n_samples: # <<<<<<<<<<<<<< @@ -14752,7 +14741,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_6 = __pyx_v_n_samples; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - /* "sklearn/tree/_tree.pyx":1820 + /* "sklearn/tree/_tree.pyx":1814 * * for i from 0 <= i < n_samples: * node_id = 0 # <<<<<<<<<<<<<< @@ -14761,7 +14750,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_node_id = 0; - /* "sklearn/tree/_tree.pyx":1823 + /* "sklearn/tree/_tree.pyx":1817 * * # While node_id not a leaf * while children_left[node_id] != _TREE_LEAF: # <<<<<<<<<<<<<< @@ -14772,7 +14761,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_7 = (((__pyx_v_children_left[__pyx_v_node_id]) != __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF) != 0); if (!__pyx_t_7) break; - /* "sklearn/tree/_tree.pyx":1825 + /* "sklearn/tree/_tree.pyx":1819 * while children_left[node_id] != _TREE_LEAF: * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: # <<<<<<<<<<<<<< @@ -14784,7 +14773,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_7 = (((*__Pyx_BufPtrStrided2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_X.diminfo[1].strides)) <= (__pyx_v_threshold[__pyx_v_node_id])) != 0); if (__pyx_t_7) { - /* "sklearn/tree/_tree.pyx":1826 + /* "sklearn/tree/_tree.pyx":1820 * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: * node_id = children_left[node_id] # <<<<<<<<<<<<<< @@ -14796,7 +14785,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } /*else*/ { - /* "sklearn/tree/_tree.pyx":1828 + /* "sklearn/tree/_tree.pyx":1822 * node_id = children_left[node_id] * else: * node_id = children_right[node_id] # <<<<<<<<<<<<<< @@ -14808,7 +14797,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_L8:; } - /* "sklearn/tree/_tree.pyx":1830 + /* "sklearn/tree/_tree.pyx":1824 * node_id = children_right[node_id] * * offset = node_id * value_stride # <<<<<<<<<<<<<< @@ -14817,7 +14806,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_offset = (__pyx_v_node_id * __pyx_v_value_stride); - /* "sklearn/tree/_tree.pyx":1832 + /* "sklearn/tree/_tree.pyx":1826 * offset = node_id * value_stride * * for c from 0 <= c < n_classes[0]: # <<<<<<<<<<<<<< @@ -14827,7 +14816,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_17 = (__pyx_v_n_classes[0]); for (__pyx_v_c = 0; __pyx_v_c < __pyx_t_17; __pyx_v_c++) { - /* "sklearn/tree/_tree.pyx":1833 + /* "sklearn/tree/_tree.pyx":1827 * * for c from 0 <= c < n_classes[0]: * out[i, c] = value[offset + c] # <<<<<<<<<<<<<< @@ -14840,7 +14829,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } } - /* "sklearn/tree/_tree.pyx":1835 + /* "sklearn/tree/_tree.pyx":1829 * out[i, c] = value[offset + c] * * return out # <<<<<<<<<<<<<< @@ -14855,41 +14844,41 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } /*else*/ { - /* "sklearn/tree/_tree.pyx":1838 + /* "sklearn/tree/_tree.pyx":1832 * * else: # n_outputs > 1 * out_multi = np.zeros((n_samples, # <<<<<<<<<<<<<< * n_outputs, * max_n_classes), dtype=np.float64) */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s__zeros); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s__zeros); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); - /* "sklearn/tree/_tree.pyx":1839 + /* "sklearn/tree/_tree.pyx":1833 * else: # n_outputs > 1 * out_multi = np.zeros((n_samples, * n_outputs, # <<<<<<<<<<<<<< * max_n_classes), dtype=np.float64) * */ - __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_outputs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_outputs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1833; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - /* "sklearn/tree/_tree.pyx":1840 + /* "sklearn/tree/_tree.pyx":1834 * out_multi = np.zeros((n_samples, * n_outputs, * max_n_classes), dtype=np.float64) # <<<<<<<<<<<<<< * * for i from 0 <= i < n_samples: */ - __pyx_t_3 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_max_n_classes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_max_n_classes); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); @@ -14900,42 +14889,42 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_9 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1)); __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1838 + /* "sklearn/tree/_tree.pyx":1832 * * else: # n_outputs > 1 * out_multi = np.zeros((n_samples, # <<<<<<<<<<<<<< * n_outputs, * max_n_classes), dtype=np.float64) */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - /* "sklearn/tree/_tree.pyx":1840 + /* "sklearn/tree/_tree.pyx":1834 * out_multi = np.zeros((n_samples, * n_outputs, * max_n_classes), dtype=np.float64) # <<<<<<<<<<<<<< * * for i from 0 <= i < n_samples: */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__float64); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__float64); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1834; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_9 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_20 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -14951,13 +14940,13 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } } __pyx_pybuffernd_out_multi.diminfo[0].strides = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_out_multi.diminfo[0].shape = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_out_multi.diminfo[1].strides = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_out_multi.diminfo[1].shape = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_out_multi.diminfo[2].strides = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_out_multi.diminfo[2].shape = __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.shape[2]; - if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_20 = 0; __pyx_v_out_multi = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; - /* "sklearn/tree/_tree.pyx":1842 + /* "sklearn/tree/_tree.pyx":1836 * max_n_classes), dtype=np.float64) * * for i from 0 <= i < n_samples: # <<<<<<<<<<<<<< @@ -14967,7 +14956,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_6 = __pyx_v_n_samples; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - /* "sklearn/tree/_tree.pyx":1843 + /* "sklearn/tree/_tree.pyx":1837 * * for i from 0 <= i < n_samples: * node_id = 0 # <<<<<<<<<<<<<< @@ -14976,7 +14965,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_node_id = 0; - /* "sklearn/tree/_tree.pyx":1846 + /* "sklearn/tree/_tree.pyx":1840 * * # While node_id not a leaf * while children_left[node_id] != _TREE_LEAF: # <<<<<<<<<<<<<< @@ -14987,7 +14976,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_7 = (((__pyx_v_children_left[__pyx_v_node_id]) != __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF) != 0); if (!__pyx_t_7) break; - /* "sklearn/tree/_tree.pyx":1848 + /* "sklearn/tree/_tree.pyx":1842 * while children_left[node_id] != _TREE_LEAF: * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: # <<<<<<<<<<<<<< @@ -14999,7 +14988,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_7 = (((*__Pyx_BufPtrStrided2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_X.diminfo[1].strides)) <= (__pyx_v_threshold[__pyx_v_node_id])) != 0); if (__pyx_t_7) { - /* "sklearn/tree/_tree.pyx":1849 + /* "sklearn/tree/_tree.pyx":1843 * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: * node_id = children_left[node_id] # <<<<<<<<<<<<<< @@ -15011,7 +15000,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } /*else*/ { - /* "sklearn/tree/_tree.pyx":1851 + /* "sklearn/tree/_tree.pyx":1845 * node_id = children_left[node_id] * else: * node_id = children_right[node_id] # <<<<<<<<<<<<<< @@ -15023,7 +15012,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_L15:; } - /* "sklearn/tree/_tree.pyx":1853 + /* "sklearn/tree/_tree.pyx":1847 * node_id = children_right[node_id] * * offset = node_id * value_stride # <<<<<<<<<<<<<< @@ -15032,7 +15021,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s */ __pyx_v_offset = (__pyx_v_node_id * __pyx_v_value_stride); - /* "sklearn/tree/_tree.pyx":1855 + /* "sklearn/tree/_tree.pyx":1849 * offset = node_id * value_stride * * for k from 0 <= k < n_outputs: # <<<<<<<<<<<<<< @@ -15042,7 +15031,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_22 = __pyx_v_n_outputs; for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_22; __pyx_v_k++) { - /* "sklearn/tree/_tree.pyx":1856 + /* "sklearn/tree/_tree.pyx":1850 * * for k from 0 <= k < n_outputs: * for c from 0 <= c < n_classes[k]: # <<<<<<<<<<<<<< @@ -15052,7 +15041,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s __pyx_t_23 = (__pyx_v_n_classes[__pyx_v_k]); for (__pyx_v_c = 0; __pyx_v_c < __pyx_t_23; __pyx_v_c++) { - /* "sklearn/tree/_tree.pyx":1857 + /* "sklearn/tree/_tree.pyx":1851 * for k from 0 <= k < n_outputs: * for c from 0 <= c < n_classes[k]: * out_multi[i, k, c] = value[offset + c] # <<<<<<<<<<<<<< @@ -15065,7 +15054,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s *__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_out_multi.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_out_multi.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_out_multi.diminfo[1].strides, __pyx_t_26, __pyx_pybuffernd_out_multi.diminfo[2].strides) = (__pyx_v_value[(__pyx_v_offset + __pyx_v_c)]); } - /* "sklearn/tree/_tree.pyx":1858 + /* "sklearn/tree/_tree.pyx":1852 * for c from 0 <= c < n_classes[k]: * out_multi[i, k, c] = value[offset + c] * offset += max_n_classes # <<<<<<<<<<<<<< @@ -15076,7 +15065,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_predict(struct __pyx_obj_7s } } - /* "sklearn/tree/_tree.pyx":1860 + /* "sklearn/tree/_tree.pyx":1854 * offset += max_n_classes * * return out_multi # <<<<<<<<<<<<<< @@ -15129,7 +15118,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_13predict(PyObject *__pyx_ PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("predict (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = __pyx_pf_7sklearn_4tree_5_tree_4Tree_12predict(((struct __pyx_obj_7sklearn_4tree_5_tree_Tree *)__pyx_v_self), ((PyArrayObject *)__pyx_v_X)); goto __pyx_L0; __pyx_L1_error:; @@ -15139,7 +15128,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_13predict(PyObject *__pyx_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1793 +/* "sklearn/tree/_tree.pyx":1787 * free(stack) * * cpdef predict(self, np.ndarray[DTYPE_t, ndim=2] X): # <<<<<<<<<<<<<< @@ -15163,11 +15152,11 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_12predict(struct __pyx_obj __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->predict(__pyx_v_self, ((PyArrayObject *)__pyx_v_X), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->predict(__pyx_v_self, ((PyArrayObject *)__pyx_v_X), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -15192,7 +15181,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_12predict(struct __pyx_obj return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1862 +/* "sklearn/tree/_tree.pyx":1856 * return out_multi * * cpdef apply(self, np.ndarray[DTYPE_t, ndim=2] X): # <<<<<<<<<<<<<< @@ -15247,23 +15236,23 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__apply); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__apply); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_7sklearn_4tree_5_tree_4Tree_15apply)) { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(((PyObject *)__pyx_v_X)); - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -15274,7 +15263,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "sklearn/tree/_tree.pyx":1864 + /* "sklearn/tree/_tree.pyx":1858 * cpdef apply(self, np.ndarray[DTYPE_t, ndim=2] X): * """Finds the terminal region (=leaf node) for each sample in X.""" * cdef SIZE_t* children_left = self.children_left # <<<<<<<<<<<<<< @@ -15284,7 +15273,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_4 = __pyx_v_self->children_left; __pyx_v_children_left = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1865 + /* "sklearn/tree/_tree.pyx":1859 * """Finds the terminal region (=leaf node) for each sample in X.""" * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right # <<<<<<<<<<<<<< @@ -15294,7 +15283,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_4 = __pyx_v_self->children_right; __pyx_v_children_right = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1866 + /* "sklearn/tree/_tree.pyx":1860 * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature # <<<<<<<<<<<<<< @@ -15304,7 +15293,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_4 = __pyx_v_self->feature; __pyx_v_feature = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1867 + /* "sklearn/tree/_tree.pyx":1861 * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature * cdef double* threshold = self.threshold # <<<<<<<<<<<<<< @@ -15314,7 +15303,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_5 = __pyx_v_self->threshold; __pyx_v_threshold = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1869 + /* "sklearn/tree/_tree.pyx":1863 * cdef double* threshold = self.threshold * * cdef SIZE_t n_samples = X.shape[0] # <<<<<<<<<<<<<< @@ -15323,7 +15312,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl */ __pyx_v_n_samples = (__pyx_v_X->dimensions[0]); - /* "sklearn/tree/_tree.pyx":1870 + /* "sklearn/tree/_tree.pyx":1864 * * cdef SIZE_t n_samples = X.shape[0] * cdef SIZE_t node_id = 0 # <<<<<<<<<<<<<< @@ -15332,7 +15321,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl */ __pyx_v_node_id = 0; - /* "sklearn/tree/_tree.pyx":1871 + /* "sklearn/tree/_tree.pyx":1865 * cdef SIZE_t n_samples = X.shape[0] * cdef SIZE_t node_id = 0 * cdef SIZE_t i = 0 # <<<<<<<<<<<<<< @@ -15341,45 +15330,45 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl */ __pyx_v_i = 0; - /* "sklearn/tree/_tree.pyx":1874 + /* "sklearn/tree/_tree.pyx":1868 * * cdef np.ndarray[np.int32_t, ndim=1] out * out = np.zeros((n_samples,), dtype=np.int32) # <<<<<<<<<<<<<< * * for i from 0 <= i < n_samples: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_n_samples); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2)); __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__int32); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__int32); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_8 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -15395,13 +15384,13 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl } } __pyx_pybuffernd_out.diminfo[0].strides = __pyx_pybuffernd_out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_out.diminfo[0].shape = __pyx_pybuffernd_out.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1868; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_8 = 0; __pyx_v_out = ((PyArrayObject *)__pyx_t_7); __pyx_t_7 = 0; - /* "sklearn/tree/_tree.pyx":1876 + /* "sklearn/tree/_tree.pyx":1870 * out = np.zeros((n_samples,), dtype=np.int32) * * for i from 0 <= i < n_samples: # <<<<<<<<<<<<<< @@ -15411,7 +15400,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_13 = __pyx_v_n_samples; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_13; __pyx_v_i++) { - /* "sklearn/tree/_tree.pyx":1877 + /* "sklearn/tree/_tree.pyx":1871 * * for i from 0 <= i < n_samples: * node_id = 0 # <<<<<<<<<<<<<< @@ -15420,7 +15409,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl */ __pyx_v_node_id = 0; - /* "sklearn/tree/_tree.pyx":1880 + /* "sklearn/tree/_tree.pyx":1874 * * # While node_id not a leaf * while children_left[node_id] != _TREE_LEAF: # <<<<<<<<<<<<<< @@ -15431,7 +15420,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_14 = (((__pyx_v_children_left[__pyx_v_node_id]) != __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF) != 0); if (!__pyx_t_14) break; - /* "sklearn/tree/_tree.pyx":1882 + /* "sklearn/tree/_tree.pyx":1876 * while children_left[node_id] != _TREE_LEAF: * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: # <<<<<<<<<<<<<< @@ -15443,7 +15432,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_t_14 = (((*__Pyx_BufPtrStrided2d(__pyx_t_7sklearn_4tree_5_tree_DTYPE_t *, __pyx_pybuffernd_X.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_X.diminfo[0].strides, __pyx_t_16, __pyx_pybuffernd_X.diminfo[1].strides)) <= (__pyx_v_threshold[__pyx_v_node_id])) != 0); if (__pyx_t_14) { - /* "sklearn/tree/_tree.pyx":1883 + /* "sklearn/tree/_tree.pyx":1877 * # ... and children_right[node_id] != _TREE_LEAF: * if X[i, feature[node_id]] <= threshold[node_id]: * node_id = children_left[node_id] # <<<<<<<<<<<<<< @@ -15455,7 +15444,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl } /*else*/ { - /* "sklearn/tree/_tree.pyx":1885 + /* "sklearn/tree/_tree.pyx":1879 * node_id = children_left[node_id] * else: * node_id = children_right[node_id] # <<<<<<<<<<<<<< @@ -15467,7 +15456,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl __pyx_L7:; } - /* "sklearn/tree/_tree.pyx":1887 + /* "sklearn/tree/_tree.pyx":1881 * node_id = children_right[node_id] * * out[i] = node_id # <<<<<<<<<<<<<< @@ -15478,7 +15467,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_apply(struct __pyx_obj_7skl *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_out.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_out.diminfo[0].strides) = __pyx_v_node_id; } - /* "sklearn/tree/_tree.pyx":1889 + /* "sklearn/tree/_tree.pyx":1883 * out[i] = node_id * * return out # <<<<<<<<<<<<<< @@ -15526,7 +15515,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_15apply(PyObject *__pyx_v_ PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("apply (wrapper)", 0); - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_5numpy_ndarray, 1, "X", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = __pyx_pf_7sklearn_4tree_5_tree_4Tree_14apply(((struct __pyx_obj_7sklearn_4tree_5_tree_Tree *)__pyx_v_self), ((PyArrayObject *)__pyx_v_X)); goto __pyx_L0; __pyx_L1_error:; @@ -15536,7 +15525,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_15apply(PyObject *__pyx_v_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1862 +/* "sklearn/tree/_tree.pyx":1856 * return out_multi * * cpdef apply(self, np.ndarray[DTYPE_t, ndim=2] X): # <<<<<<<<<<<<<< @@ -15560,11 +15549,11 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14apply(struct __pyx_obj_7 __pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X; { __Pyx_BufFmt_StackElem __pyx_stack[1]; - if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_nn___pyx_t_7sklearn_4tree_5_tree_DTYPE_t, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_X.diminfo[1].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_X.diminfo[1].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[1]; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->apply(__pyx_v_self, ((PyArrayObject *)__pyx_v_X), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1862; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->apply(__pyx_v_self, ((PyArrayObject *)__pyx_v_X), 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -15589,7 +15578,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_14apply(struct __pyx_obj_7 return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1891 +/* "sklearn/tree/_tree.pyx":1885 * return out * * cpdef compute_feature_importances(self, normalize=True): # <<<<<<<<<<<<<< @@ -15647,16 +15636,16 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_7sklearn_4tree_5_tree_4Tree_17compute_feature_importances)) { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_normalize); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_normalize); __Pyx_GIVEREF(__pyx_v_normalize); - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -15667,7 +15656,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "sklearn/tree/_tree.pyx":1893 + /* "sklearn/tree/_tree.pyx":1887 * cpdef compute_feature_importances(self, normalize=True): * """Computes the importance of each feature (aka variable).""" * cdef SIZE_t* children_left = self.children_left # <<<<<<<<<<<<<< @@ -15677,7 +15666,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_4 = __pyx_v_self->children_left; __pyx_v_children_left = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1894 + /* "sklearn/tree/_tree.pyx":1888 * """Computes the importance of each feature (aka variable).""" * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right # <<<<<<<<<<<<<< @@ -15687,7 +15676,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_4 = __pyx_v_self->children_right; __pyx_v_children_right = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1895 + /* "sklearn/tree/_tree.pyx":1889 * cdef SIZE_t* children_left = self.children_left * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature # <<<<<<<<<<<<<< @@ -15697,7 +15686,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_4 = __pyx_v_self->feature; __pyx_v_feature = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1896 + /* "sklearn/tree/_tree.pyx":1890 * cdef SIZE_t* children_right = self.children_right * cdef SIZE_t* feature = self.feature * cdef double* impurity = self.impurity # <<<<<<<<<<<<<< @@ -15707,7 +15696,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_5 = __pyx_v_self->impurity; __pyx_v_impurity = __pyx_t_5; - /* "sklearn/tree/_tree.pyx":1897 + /* "sklearn/tree/_tree.pyx":1891 * cdef SIZE_t* feature = self.feature * cdef double* impurity = self.impurity * cdef SIZE_t* n_node_samples = self.n_node_samples # <<<<<<<<<<<<<< @@ -15717,7 +15706,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_4 = __pyx_v_self->n_node_samples; __pyx_v_n_node_samples = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1899 + /* "sklearn/tree/_tree.pyx":1893 * cdef SIZE_t* n_node_samples = self.n_node_samples * * cdef SIZE_t n_features = self.n_features # <<<<<<<<<<<<<< @@ -15727,7 +15716,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_6 = __pyx_v_self->n_features; __pyx_v_n_features = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1900 + /* "sklearn/tree/_tree.pyx":1894 * * cdef SIZE_t n_features = self.n_features * cdef SIZE_t node_count = self.node_count # <<<<<<<<<<<<<< @@ -15737,35 +15726,35 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_6 = __pyx_v_self->node_count; __pyx_v_node_count = __pyx_t_6; - /* "sklearn/tree/_tree.pyx":1907 + /* "sklearn/tree/_tree.pyx":1901 * * cdef np.ndarray[np.float64_t, ndim=1] importances * importances = np.zeros((self.n_features,)) # <<<<<<<<<<<<<< * * for node from 0 <= node < node_count: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_2)); __Pyx_GIVEREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -15781,13 +15770,13 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances } } __pyx_pybuffernd_importances.diminfo[0].strides = __pyx_pybuffernd_importances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_importances.diminfo[0].shape = __pyx_pybuffernd_importances.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = 0; __pyx_v_importances = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "sklearn/tree/_tree.pyx":1909 + /* "sklearn/tree/_tree.pyx":1903 * importances = np.zeros((self.n_features,)) * * for node from 0 <= node < node_count: # <<<<<<<<<<<<<< @@ -15797,7 +15786,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_6 = __pyx_v_node_count; for (__pyx_v_node = 0; __pyx_v_node < __pyx_t_6; __pyx_v_node++) { - /* "sklearn/tree/_tree.pyx":1910 + /* "sklearn/tree/_tree.pyx":1904 * * for node from 0 <= node < node_count: * if children_left[node] != _TREE_LEAF: # <<<<<<<<<<<<<< @@ -15807,7 +15796,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_12 = (((__pyx_v_children_left[__pyx_v_node]) != __pyx_v_7sklearn_4tree_5_tree__TREE_LEAF) != 0); if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1912 + /* "sklearn/tree/_tree.pyx":1906 * if children_left[node] != _TREE_LEAF: * # ... and children_right[node] != _TREE_LEAF: * n_left = n_node_samples[children_left[node]] # <<<<<<<<<<<<<< @@ -15816,7 +15805,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances */ __pyx_v_n_left = (__pyx_v_n_node_samples[(__pyx_v_children_left[__pyx_v_node])]); - /* "sklearn/tree/_tree.pyx":1913 + /* "sklearn/tree/_tree.pyx":1907 * # ... and children_right[node] != _TREE_LEAF: * n_left = n_node_samples[children_left[node]] * n_right = n_node_samples[children_right[node]] # <<<<<<<<<<<<<< @@ -15825,7 +15814,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances */ __pyx_v_n_right = (__pyx_v_n_node_samples[(__pyx_v_children_right[__pyx_v_node])]); - /* "sklearn/tree/_tree.pyx":1915 + /* "sklearn/tree/_tree.pyx":1909 * n_right = n_node_samples[children_right[node]] * * importances[feature[node]] += \ # <<<<<<<<<<<<<< @@ -15839,19 +15828,19 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_L5:; } - /* "sklearn/tree/_tree.pyx":1920 + /* "sklearn/tree/_tree.pyx":1914 * - n_right * impurity[children_right[node]] * * importances = importances / self.n_node_samples[0] # <<<<<<<<<<<<<< * cdef double normalizer * */ - __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t((__pyx_v_self->n_node_samples[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyInt_to_py_Py_intptr_t((__pyx_v_self->n_node_samples[0])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyNumber_Divide(((PyObject *)__pyx_v_importances), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyNumber_Divide(((PyObject *)__pyx_v_importances), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -15867,48 +15856,48 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances } } __pyx_pybuffernd_importances.diminfo[0].strides = __pyx_pybuffernd_importances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_importances.diminfo[0].shape = __pyx_pybuffernd_importances.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_importances, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - /* "sklearn/tree/_tree.pyx":1923 + /* "sklearn/tree/_tree.pyx":1917 * cdef double normalizer * * if normalize: # <<<<<<<<<<<<<< * normalizer = np.sum(importances) * */ - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_normalize); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_normalize); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1924 + /* "sklearn/tree/_tree.pyx":1918 * * if normalize: * normalizer = np.sum(importances) # <<<<<<<<<<<<<< * * if normalizer > 0.0: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__sum); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__sum); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_importances)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_importances)); __Pyx_GIVEREF(((PyObject *)__pyx_v_importances)); - __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_normalizer = __pyx_t_14; - /* "sklearn/tree/_tree.pyx":1926 + /* "sklearn/tree/_tree.pyx":1920 * normalizer = np.sum(importances) * * if normalizer > 0.0: # <<<<<<<<<<<<<< @@ -15918,19 +15907,19 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances __pyx_t_12 = ((__pyx_v_normalizer > 0.0) != 0); if (__pyx_t_12) { - /* "sklearn/tree/_tree.pyx":1928 + /* "sklearn/tree/_tree.pyx":1922 * if normalizer > 0.0: * # Avoid dividing by zero (e.g., when root is pure) * importances /= normalizer # <<<<<<<<<<<<<< * * return importances */ - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_normalizer); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_normalizer); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyNumber_InPlaceDivide(((PyObject *)__pyx_v_importances), __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyNumber_InPlaceDivide(((PyObject *)__pyx_v_importances), __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_7 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; @@ -15946,7 +15935,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances } } __pyx_pybuffernd_importances.diminfo[0].strides = __pyx_pybuffernd_importances.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_importances.diminfo[0].shape = __pyx_pybuffernd_importances.rcbuffer->pybuffer.shape[0]; - if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_importances, ((PyArrayObject *)__pyx_t_1)); @@ -15958,7 +15947,7 @@ static PyObject *__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances } __pyx_L6:; - /* "sklearn/tree/_tree.pyx":1930 + /* "sklearn/tree/_tree.pyx":1924 * importances /= normalizer * * return importances # <<<<<<<<<<<<<< @@ -16024,7 +16013,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_17compute_feature_importan } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_feature_importances") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute_feature_importances") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { @@ -16037,7 +16026,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_17compute_feature_importan } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compute_feature_importances", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L3_error;} + __Pyx_RaiseArgtupleInvalid("compute_feature_importances", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("sklearn.tree._tree.Tree.compute_feature_importances", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -16048,7 +16037,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_17compute_feature_importan return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1891 +/* "sklearn/tree/_tree.pyx":1885 * return out * * cpdef compute_feature_importances(self, normalize=True): # <<<<<<<<<<<<<< @@ -16068,7 +16057,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_16compute_feature_importan __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.normalize = __pyx_v_normalize; - __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->compute_feature_importances(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = ((struct __pyx_vtabstruct_7sklearn_4tree_5_tree_Tree *)__pyx_v_self->__pyx_vtab)->compute_feature_importances(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16097,7 +16086,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_10n_features_1__get__(PyOb return __pyx_r; } -/* "sklearn/tree/_tree.pxd":103 +/* "sklearn/tree/_tree.pxd":104 * cdef class Tree: * # Input/Output layout * cdef public SIZE_t n_features # Number of features in X # <<<<<<<<<<<<<< @@ -16114,7 +16103,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_10n_features___get__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_features); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16151,7 +16140,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_10n_features_2__set__(struct __p const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->n_features = __pyx_t_1; __pyx_r = 0; @@ -16175,7 +16164,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_9n_outputs_1__get__(PyObje return __pyx_r; } -/* "sklearn/tree/_tree.pxd":105 +/* "sklearn/tree/_tree.pxd":106 * cdef public SIZE_t n_features # Number of features in X * cdef SIZE_t* n_classes # Number of classes in y[:, k] * cdef public SIZE_t n_outputs # Number of outputs in y # <<<<<<<<<<<<<< @@ -16192,7 +16181,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9n_outputs___get__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_outputs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->n_outputs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16229,7 +16218,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_9n_outputs_2__set__(struct __pyx const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->n_outputs = __pyx_t_1; __pyx_r = 0; @@ -16253,7 +16242,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_13max_n_classes_1__get__(P return __pyx_r; } -/* "sklearn/tree/_tree.pxd":106 +/* "sklearn/tree/_tree.pxd":107 * cdef SIZE_t* n_classes # Number of classes in y[:, k] * cdef public SIZE_t n_outputs # Number of outputs in y * cdef public SIZE_t max_n_classes # max(n_classes) # <<<<<<<<<<<<<< @@ -16270,7 +16259,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_13max_n_classes___get__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_n_classes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_n_classes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16307,7 +16296,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_13max_n_classes_2__set__(struct const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->max_n_classes = __pyx_t_1; __pyx_r = 0; @@ -16331,7 +16320,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_12value_stride_1__get__(Py return __pyx_r; } -/* "sklearn/tree/_tree.pxd":107 +/* "sklearn/tree/_tree.pxd":108 * cdef public SIZE_t n_outputs # Number of outputs in y * cdef public SIZE_t max_n_classes # max(n_classes) * cdef public SIZE_t value_stride # n_outputs * max_n_classes # <<<<<<<<<<<<<< @@ -16348,7 +16337,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_12value_stride___get__(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->value_stride); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->value_stride); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16385,7 +16374,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_12value_stride_2__set__(struct _ const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->value_stride = __pyx_t_1; __pyx_r = 0; @@ -16409,7 +16398,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_8splitter_1__get__(PyObjec return __pyx_r; } -/* "sklearn/tree/_tree.pxd":110 +/* "sklearn/tree/_tree.pxd":111 * * # Parameters * cdef public Splitter splitter # Splitting algorithm # <<<<<<<<<<<<<< @@ -16451,7 +16440,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_8splitter_2__set__(struct __pyx_ const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7sklearn_4tree_5_tree_Splitter))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_7sklearn_4tree_5_tree_Splitter))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(__pyx_v_self->splitter); @@ -16505,7 +16494,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_9max_depth_1__get__(PyObje return __pyx_r; } -/* "sklearn/tree/_tree.pxd":111 +/* "sklearn/tree/_tree.pxd":112 * # Parameters * cdef public Splitter splitter # Splitting algorithm * cdef public SIZE_t max_depth # Max depth of the tree # <<<<<<<<<<<<<< @@ -16522,7 +16511,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_9max_depth___get__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_depth); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->max_depth); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16559,7 +16548,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_9max_depth_2__set__(struct __pyx const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->max_depth = __pyx_t_1; __pyx_r = 0; @@ -16583,7 +16572,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_17min_samples_split_1__get return __pyx_r; } -/* "sklearn/tree/_tree.pxd":112 +/* "sklearn/tree/_tree.pxd":113 * cdef public Splitter splitter # Splitting algorithm * cdef public SIZE_t max_depth # Max depth of the tree * cdef public SIZE_t min_samples_split # Minimum number of samples in an internal node # <<<<<<<<<<<<<< @@ -16600,7 +16589,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_17min_samples_split___get_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16637,7 +16626,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_17min_samples_split_2__set__(str const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->min_samples_split = __pyx_t_1; __pyx_r = 0; @@ -16661,7 +16650,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_16min_samples_leaf_1__get_ return __pyx_r; } -/* "sklearn/tree/_tree.pxd":113 +/* "sklearn/tree/_tree.pxd":114 * cdef public SIZE_t max_depth # Max depth of the tree * cdef public SIZE_t min_samples_split # Minimum number of samples in an internal node * cdef public SIZE_t min_samples_leaf # Minimum number of samples in a leaf # <<<<<<<<<<<<<< @@ -16678,7 +16667,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_16min_samples_leaf___get__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->min_samples_leaf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16715,7 +16704,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_16min_samples_leaf_2__set__(stru const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->min_samples_leaf = __pyx_t_1; __pyx_r = 0; @@ -16739,7 +16728,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_12random_state_1__get__(Py return __pyx_r; } -/* "sklearn/tree/_tree.pxd":114 +/* "sklearn/tree/_tree.pxd":115 * cdef public SIZE_t min_samples_split # Minimum number of samples in an internal node * cdef public SIZE_t min_samples_leaf # Minimum number of samples in a leaf * cdef public object random_state # Random state # <<<<<<<<<<<<<< @@ -16826,7 +16815,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_10node_count_1__get__(PyOb return __pyx_r; } -/* "sklearn/tree/_tree.pxd":117 +/* "sklearn/tree/_tree.pxd":118 * * # Inner structures * cdef public SIZE_t node_count # Counter for node IDs # <<<<<<<<<<<<<< @@ -16843,7 +16832,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_10node_count___get__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->node_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->node_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16880,7 +16869,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_10node_count_2__set__(struct __p const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->node_count = __pyx_t_1; __pyx_r = 0; @@ -16904,7 +16893,7 @@ static PyObject *__pyx_pw_7sklearn_4tree_5_tree_4Tree_8capacity_1__get__(PyObjec return __pyx_r; } -/* "sklearn/tree/_tree.pxd":118 +/* "sklearn/tree/_tree.pxd":119 * # Inner structures * cdef public SIZE_t node_count # Counter for node IDs * cdef public SIZE_t capacity # Capacity of tree, in terms of nodes # <<<<<<<<<<<<<< @@ -16921,7 +16910,7 @@ static PyObject *__pyx_pf_7sklearn_4tree_5_tree_4Tree_8capacity___get__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->capacity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_to_py_Py_intptr_t(__pyx_v_self->capacity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16958,7 +16947,7 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_8capacity_2__set__(struct __pyx_ const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = __Pyx_PyInt_from_py_Py_intptr_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (npy_intp)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_v_self->capacity = __pyx_t_1; __pyx_r = 0; @@ -16971,34 +16960,34 @@ static int __pyx_pf_7sklearn_4tree_5_tree_4Tree_8capacity_2__set__(struct __pyx_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1938 +/* "sklearn/tree/_tree.pyx":1932 * * # rand_r replacement taken from 4.4BSD C library. - * cdef inline int our_rand_r(unsigned *seed) nogil: # <<<<<<<<<<<<<< - * seed[0] = seed[0] * 1103515245 + 12345 - * return (seed[0] % (RAND_R_MAX + 1)) + * cdef inline UINT32_t our_rand_r(UINT32_t* seed) nogil: # <<<<<<<<<<<<<< + * seed[0] = seed[0] * 1103515245 + 12345 + * return seed[0] % (RAND_R_MAX + 1) */ -static CYTHON_INLINE int __pyx_f_7sklearn_4tree_5_tree_our_rand_r(unsigned int *__pyx_v_seed) { - int __pyx_r; +static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_UINT32_t __pyx_f_7sklearn_4tree_5_tree_our_rand_r(__pyx_t_7sklearn_4tree_5_tree_UINT32_t *__pyx_v_seed) { + __pyx_t_7sklearn_4tree_5_tree_UINT32_t __pyx_r; - /* "sklearn/tree/_tree.pyx":1939 + /* "sklearn/tree/_tree.pyx":1933 * # rand_r replacement taken from 4.4BSD C library. - * cdef inline int our_rand_r(unsigned *seed) nogil: - * seed[0] = seed[0] * 1103515245 + 12345 # <<<<<<<<<<<<<< - * return (seed[0] % (RAND_R_MAX + 1)) + * cdef inline UINT32_t our_rand_r(UINT32_t* seed) nogil: + * seed[0] = seed[0] * 1103515245 + 12345 # <<<<<<<<<<<<<< + * return seed[0] % (RAND_R_MAX + 1) * */ - (__pyx_v_seed[0]) = (((__pyx_v_seed[0]) * 1103515245) + 12345); + (__pyx_v_seed[0]) = (((__pyx_v_seed[0]) * ((__pyx_t_7sklearn_4tree_5_tree_UINT32_t)1103515245)) + ((__pyx_t_7sklearn_4tree_5_tree_UINT32_t)12345)); - /* "sklearn/tree/_tree.pyx":1940 - * cdef inline int our_rand_r(unsigned *seed) nogil: - * seed[0] = seed[0] * 1103515245 + 12345 - * return (seed[0] % (RAND_R_MAX + 1)) # <<<<<<<<<<<<<< + /* "sklearn/tree/_tree.pyx":1934 + * cdef inline UINT32_t our_rand_r(UINT32_t* seed) nogil: + * seed[0] = seed[0] * 1103515245 + 12345 + * return seed[0] % (RAND_R_MAX + 1) # <<<<<<<<<<<<<< * * cdef inline np.ndarray int_ptr_to_ndarray(int* data, SIZE_t size): */ - __pyx_r = ((__pyx_v_seed[0]) % (((unsigned int)__pyx_e_7sklearn_4tree_5_tree_RAND_R_MAX) + 1)); + __pyx_r = ((__pyx_v_seed[0]) % ((__pyx_t_7sklearn_4tree_5_tree_UINT32_t)(__pyx_e_7sklearn_4tree_5_tree_RAND_R_MAX + 1))); goto __pyx_L0; __pyx_r = 0; @@ -17006,8 +16995,8 @@ static CYTHON_INLINE int __pyx_f_7sklearn_4tree_5_tree_our_rand_r(unsigned int * return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1942 - * return (seed[0] % (RAND_R_MAX + 1)) +/* "sklearn/tree/_tree.pyx":1936 + * return seed[0] % (RAND_R_MAX + 1) * * cdef inline np.ndarray int_ptr_to_ndarray(int* data, SIZE_t size): # <<<<<<<<<<<<<< * """Encapsulate data into a 1D numpy array of int's.""" @@ -17024,7 +17013,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_int_ptr_to_nda int __pyx_clineno = 0; __Pyx_RefNannySetupContext("int_ptr_to_ndarray", 0); - /* "sklearn/tree/_tree.pyx":1945 + /* "sklearn/tree/_tree.pyx":1939 * """Encapsulate data into a 1D numpy array of int's.""" * cdef np.npy_intp shape[1] * shape[0] = size # <<<<<<<<<<<<<< @@ -17033,7 +17022,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_int_ptr_to_nda */ (__pyx_v_shape[0]) = ((npy_intp)__pyx_v_size); - /* "sklearn/tree/_tree.pyx":1946 + /* "sklearn/tree/_tree.pyx":1940 * cdef np.npy_intp shape[1] * shape[0] = size * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_INT, data) # <<<<<<<<<<<<<< @@ -17041,9 +17030,9 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_int_ptr_to_nda * cdef inline np.ndarray sizet_ptr_to_ndarray(SIZE_t* data, SIZE_t size): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); - __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_INT, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_INT, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; @@ -17060,7 +17049,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_int_ptr_to_nda return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1948 +/* "sklearn/tree/_tree.pyx":1942 * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_INT, data) * * cdef inline np.ndarray sizet_ptr_to_ndarray(SIZE_t* data, SIZE_t size): # <<<<<<<<<<<<<< @@ -17078,7 +17067,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_n int __pyx_clineno = 0; __Pyx_RefNannySetupContext("sizet_ptr_to_ndarray", 0); - /* "sklearn/tree/_tree.pyx":1951 + /* "sklearn/tree/_tree.pyx":1945 * """Encapsulate data into a 1D numpy array of intp's.""" * cdef np.npy_intp shape[1] * shape[0] = size # <<<<<<<<<<<<<< @@ -17087,7 +17076,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_n */ (__pyx_v_shape[0]) = ((npy_intp)__pyx_v_size); - /* "sklearn/tree/_tree.pyx":1952 + /* "sklearn/tree/_tree.pyx":1946 * cdef np.npy_intp shape[1] * shape[0] = size * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_INTP, data) # <<<<<<<<<<<<<< @@ -17095,9 +17084,9 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_n * cdef inline np.ndarray double_ptr_to_ndarray(double* data, SIZE_t size): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); - __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_INTP, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_INTP, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; @@ -17114,7 +17103,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_sizet_ptr_to_n return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1954 +/* "sklearn/tree/_tree.pyx":1948 * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_INTP, data) * * cdef inline np.ndarray double_ptr_to_ndarray(double* data, SIZE_t size): # <<<<<<<<<<<<<< @@ -17132,7 +17121,7 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("double_ptr_to_ndarray", 0); - /* "sklearn/tree/_tree.pyx":1957 + /* "sklearn/tree/_tree.pyx":1951 * """Encapsulate data into a 1D numpy array of double's.""" * cdef np.npy_intp shape[1] * shape[0] = size # <<<<<<<<<<<<<< @@ -17141,17 +17130,17 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ */ (__pyx_v_shape[0]) = ((npy_intp)__pyx_v_size); - /* "sklearn/tree/_tree.pyx":1958 + /* "sklearn/tree/_tree.pyx":1952 * cdef np.npy_intp shape[1] * shape[0] = size * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_DOUBLE, data) # <<<<<<<<<<<<<< * - * cdef inline SIZE_t rand_int(SIZE_t end, unsigned int* random_state) nogil: + * cdef inline SIZE_t rand_int(SIZE_t end, UINT32_t* random_state) nogil: */ __Pyx_XDECREF(((PyObject *)__pyx_r)); - __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_DOUBLE, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_1 = PyArray_SimpleNewFromData(1, __pyx_v_shape, NPY_DOUBLE, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; @@ -17168,23 +17157,23 @@ static CYTHON_INLINE PyArrayObject *__pyx_f_7sklearn_4tree_5_tree_double_ptr_to_ return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1960 +/* "sklearn/tree/_tree.pyx":1954 * return np.PyArray_SimpleNewFromData(1, shape, np.NPY_DOUBLE, data) * - * cdef inline SIZE_t rand_int(SIZE_t end, unsigned int* random_state) nogil: # <<<<<<<<<<<<<< + * cdef inline SIZE_t rand_int(SIZE_t end, UINT32_t* random_state) nogil: # <<<<<<<<<<<<<< * """Generate a random integer in [0; end).""" * return our_rand_r(random_state) % end */ -static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_rand_int(__pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_end, unsigned int *__pyx_v_random_state) { +static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree_5_tree_rand_int(__pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_v_end, __pyx_t_7sklearn_4tree_5_tree_UINT32_t *__pyx_v_random_state) { __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_r; - /* "sklearn/tree/_tree.pyx":1962 - * cdef inline SIZE_t rand_int(SIZE_t end, unsigned int* random_state) nogil: + /* "sklearn/tree/_tree.pyx":1956 + * cdef inline SIZE_t rand_int(SIZE_t end, UINT32_t* random_state) nogil: * """Generate a random integer in [0; end).""" * return our_rand_r(random_state) % end # <<<<<<<<<<<<<< * - * cdef inline double rand_double(unsigned int* random_state) nogil: + * cdef inline double rand_double(UINT32_t* random_state) nogil: */ __pyx_r = (__pyx_f_7sklearn_4tree_5_tree_our_rand_r(__pyx_v_random_state) % __pyx_v_end); goto __pyx_L0; @@ -17194,19 +17183,19 @@ static CYTHON_INLINE __pyx_t_7sklearn_4tree_5_tree_SIZE_t __pyx_f_7sklearn_4tree return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1964 +/* "sklearn/tree/_tree.pyx":1958 * return our_rand_r(random_state) % end * - * cdef inline double rand_double(unsigned int* random_state) nogil: # <<<<<<<<<<<<<< + * cdef inline double rand_double(UINT32_t* random_state) nogil: # <<<<<<<<<<<<<< * """Generate a random double in [0; 1).""" * return our_rand_r(random_state) / RAND_R_MAX */ -static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(unsigned int *__pyx_v_random_state) { +static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(__pyx_t_7sklearn_4tree_5_tree_UINT32_t *__pyx_v_random_state) { double __pyx_r; - /* "sklearn/tree/_tree.pyx":1966 - * cdef inline double rand_double(unsigned int* random_state) nogil: + /* "sklearn/tree/_tree.pyx":1960 + * cdef inline double rand_double(UINT32_t* random_state) nogil: * """Generate a random double in [0; 1).""" * return our_rand_r(random_state) / RAND_R_MAX # <<<<<<<<<<<<<< * @@ -17220,7 +17209,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(unsigned i return __pyx_r; } -/* "sklearn/tree/_tree.pyx":1968 +/* "sklearn/tree/_tree.pyx":1962 * return our_rand_r(random_state) / RAND_R_MAX * * cdef inline double log(double x) nogil: # <<<<<<<<<<<<<< @@ -17230,7 +17219,7 @@ static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_rand_double(unsigned i static CYTHON_INLINE double __pyx_f_7sklearn_4tree_5_tree_log(double __pyx_v_x) { double __pyx_r; - /* "sklearn/tree/_tree.pyx":1969 + /* "sklearn/tree/_tree.pyx":1963 * * cdef inline double log(double x) nogil: * return ln(x) / ln(2.0) # <<<<<<<<<<<<<< @@ -20695,9 +20684,9 @@ PyMODINIT_FUNC PyInit__tree(void) __pyx_vtable_7sklearn_4tree_5_tree_PresortBestSplitter.__pyx_base.init = (void (*)(struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *, PyArrayObject *, PyArrayObject *, __pyx_t_7sklearn_4tree_5_tree_DOUBLE_t *))__pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_init; __pyx_vtable_7sklearn_4tree_5_tree_PresortBestSplitter.__pyx_base.node_split = (void (*)(struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, double *))__pyx_f_7sklearn_4tree_5_tree_19PresortBestSplitter_node_split; __pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter.tp_base = __pyx_ptype_7sklearn_4tree_5_tree_Splitter; - if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "PresortBestSplitter", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetAttrString(__pyx_m, "PresortBestSplitter", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7sklearn_4tree_5_tree_PresortBestSplitter = &__pyx_type_7sklearn_4tree_5_tree_PresortBestSplitter; __pyx_vtabptr_7sklearn_4tree_5_tree_Tree = &__pyx_vtable_7sklearn_4tree_5_tree_Tree; __pyx_vtable_7sklearn_4tree_5_tree_Tree._add_node = (__pyx_t_7sklearn_4tree_5_tree_SIZE_t (*)(struct __pyx_obj_7sklearn_4tree_5_tree_Tree *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t, int, int, __pyx_t_7sklearn_4tree_5_tree_SIZE_t, double, double, __pyx_t_7sklearn_4tree_5_tree_SIZE_t))__pyx_f_7sklearn_4tree_5_tree_4Tree__add_node; @@ -20706,17 +20695,17 @@ PyMODINIT_FUNC PyInit__tree(void) __pyx_vtable_7sklearn_4tree_5_tree_Tree.predict = (PyObject *(*)(struct __pyx_obj_7sklearn_4tree_5_tree_Tree *, PyArrayObject *, int __pyx_skip_dispatch))__pyx_f_7sklearn_4tree_5_tree_4Tree_predict; __pyx_vtable_7sklearn_4tree_5_tree_Tree.apply = (PyObject *(*)(struct __pyx_obj_7sklearn_4tree_5_tree_Tree *, PyArrayObject *, int __pyx_skip_dispatch))__pyx_f_7sklearn_4tree_5_tree_4Tree_apply; __pyx_vtable_7sklearn_4tree_5_tree_Tree.compute_feature_importances = (PyObject *(*)(struct __pyx_obj_7sklearn_4tree_5_tree_Tree *, int __pyx_skip_dispatch, struct __pyx_opt_args_7sklearn_4tree_5_tree_4Tree_compute_feature_importances *__pyx_optional_args))__pyx_f_7sklearn_4tree_5_tree_4Tree_compute_feature_importances; - if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_Tree.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "Tree", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1388; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_Tree.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetAttrString(__pyx_m, "Tree", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_Tree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7sklearn_4tree_5_tree_Tree = &__pyx_type_7sklearn_4tree_5_tree_Tree; __pyx_vtabptr_7sklearn_4tree_5_tree_RandomSplitter = &__pyx_vtable_7sklearn_4tree_5_tree_RandomSplitter; __pyx_vtable_7sklearn_4tree_5_tree_RandomSplitter.__pyx_base = *__pyx_vtabptr_7sklearn_4tree_5_tree_Splitter; __pyx_vtable_7sklearn_4tree_5_tree_RandomSplitter.__pyx_base.node_split = (void (*)(struct __pyx_obj_7sklearn_4tree_5_tree_Splitter *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, double *))__pyx_f_7sklearn_4tree_5_tree_14RandomSplitter_node_split; __pyx_type_7sklearn_4tree_5_tree_RandomSplitter.tp_base = __pyx_ptype_7sklearn_4tree_5_tree_Splitter; - if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_RandomSplitter.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "RandomSplitter", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1061; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (PyType_Ready(&__pyx_type_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetVtable(__pyx_type_7sklearn_4tree_5_tree_RandomSplitter.tp_dict, __pyx_vtabptr_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + if (__Pyx_SetAttrString(__pyx_m, "RandomSplitter", (PyObject *)&__pyx_type_7sklearn_4tree_5_tree_RandomSplitter) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1058; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7sklearn_4tree_5_tree_RandomSplitter = &__pyx_type_7sklearn_4tree_5_tree_RandomSplitter; __pyx_vtabptr_7sklearn_4tree_5_tree_Criterion = &__pyx_vtable_7sklearn_4tree_5_tree_Criterion; __pyx_vtable_7sklearn_4tree_5_tree_Criterion.init = (void (*)(struct __pyx_obj_7sklearn_4tree_5_tree_Criterion *, __pyx_t_7sklearn_4tree_5_tree_DOUBLE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t, __pyx_t_7sklearn_4tree_5_tree_DOUBLE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t *, __pyx_t_7sklearn_4tree_5_tree_SIZE_t, __pyx_t_7sklearn_4tree_5_tree_SIZE_t))__pyx_f_7sklearn_4tree_5_tree_9Criterion_init; @@ -20930,14 +20919,14 @@ PyMODINIT_FUNC PyInit__tree(void) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_7sklearn_4tree_5_tree__TREE_UNDEFINED = __pyx_t_4; - /* "sklearn/tree/_tree.pyx":1891 + /* "sklearn/tree/_tree.pyx":1885 * return out * * cpdef compute_feature_importances(self, normalize=True): # <<<<<<<<<<<<<< * """Computes the importance of each feature (aka variable).""" * cdef SIZE_t* children_left = self.children_left */ - __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;} + __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __pyx_k_1 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); @@ -22266,7 +22255,64 @@ nofail: #endif /* PY_MAJOR_VERSION < 3 */ - static CYTHON_INLINE long __Pyx_pow_long(long b, long e) { + static CYTHON_INLINE npy_uint32 __Pyx_PyInt_from_py_npy_uint32(PyObject* x) { + const npy_uint32 neg_one = (npy_uint32)-1, const_zero = (npy_uint32)0; + const int is_unsigned = const_zero < neg_one; + if (sizeof(npy_uint32) == sizeof(char)) { + if (is_unsigned) + return (npy_uint32)__Pyx_PyInt_AsUnsignedChar(x); + else + return (npy_uint32)__Pyx_PyInt_AsSignedChar(x); + } else if (sizeof(npy_uint32) == sizeof(short)) { + if (is_unsigned) + return (npy_uint32)__Pyx_PyInt_AsUnsignedShort(x); + else + return (npy_uint32)__Pyx_PyInt_AsSignedShort(x); + } else if (sizeof(npy_uint32) == sizeof(int)) { + if (is_unsigned) + return (npy_uint32)__Pyx_PyInt_AsUnsignedInt(x); + else + return (npy_uint32)__Pyx_PyInt_AsSignedInt(x); + } else if (sizeof(npy_uint32) == sizeof(long)) { + if (is_unsigned) + return (npy_uint32)__Pyx_PyInt_AsUnsignedLong(x); + else + return (npy_uint32)__Pyx_PyInt_AsSignedLong(x); + } else if (sizeof(npy_uint32) == sizeof(PY_LONG_LONG)) { + if (is_unsigned) + return (npy_uint32)__Pyx_PyInt_AsUnsignedLongLong(x); + else + return (npy_uint32)__Pyx_PyInt_AsSignedLongLong(x); + } else { + #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); + #else + npy_uint32 val; + PyObject *v = __Pyx_PyNumber_Int(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } + #endif + return (npy_uint32)-1; + } +} + +static CYTHON_INLINE long __Pyx_pow_long(long b, long e) { long t = b; switch (e) { case 3: diff --git a/sklearn/tree/_tree.pxd b/sklearn/tree/_tree.pxd index 09bd65f8d0f..d23d0d7f280 100644 --- a/sklearn/tree/_tree.pxd +++ b/sklearn/tree/_tree.pxd @@ -11,6 +11,7 @@ cimport numpy as np ctypedef np.npy_float32 DTYPE_t # Type of X ctypedef np.npy_float64 DOUBLE_t # Type of y, sample_weight ctypedef np.npy_intp SIZE_t # Type for indices and counters +ctypedef np.npy_uint32 UINT32_t # Unsigned 32 bit integer # ============================================================================= @@ -61,7 +62,7 @@ cdef class Splitter: cdef public SIZE_t min_samples_leaf # Min samples in a leaf cdef object random_state # Random state - cdef unsigned int rand_r_state # sklearn_rand_r random number state + cdef UINT32_t rand_r_state # sklearn_rand_r random number state cdef SIZE_t* samples # Sample indices in X, y cdef SIZE_t n_samples # X.shape[0] diff --git a/sklearn/tree/_tree.pyx b/sklearn/tree/_tree.pyx index ad547913749..4bf86219743 100644 --- a/sklearn/tree/_tree.pyx +++ b/sklearn/tree/_tree.pyx @@ -910,7 +910,7 @@ cdef class BestSplitter(Splitter): cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X cdef SIZE_t max_features = self.max_features cdef SIZE_t min_samples_leaf = self.min_samples_leaf - cdef unsigned int* random_state = &self.rand_r_state + cdef UINT32_t* random_state = &self.rand_r_state cdef double best_impurity = INFINITY cdef SIZE_t best_pos = end @@ -928,7 +928,6 @@ cdef class BestSplitter(Splitter): cdef SIZE_t partition_start cdef SIZE_t partition_end - # Shuffle all features, using Fisher-Yates algorithm for f_idx from 0 <= f_idx < n_features: # Draw a feature at random f_i = n_features - f_idx - 1 @@ -938,9 +937,7 @@ cdef class BestSplitter(Splitter): features[f_i] = features[f_j] features[f_j] = tmp - for f_idx from 0 <= f_idx < n_features: - # Draw a feature at random - current_feature = features[f_idx] + current_feature = features[f_i] # Sort samples along that feature sort(X, current_feature, samples+start, end-start) @@ -1080,7 +1077,7 @@ cdef class RandomSplitter(Splitter): cdef np.ndarray[DTYPE_t, ndim=2, mode="c"] X = self.X cdef SIZE_t max_features = self.max_features cdef SIZE_t min_samples_leaf = self.min_samples_leaf - cdef unsigned int* random_state = &self.rand_r_state + cdef UINT32_t* random_state = &self.rand_r_state cdef double best_impurity = INFINITY cdef SIZE_t best_pos = end @@ -1101,7 +1098,6 @@ cdef class RandomSplitter(Splitter): cdef SIZE_t partition_start cdef SIZE_t partition_end - # Shuffle all features, using Fisher-Yates algorithm for f_idx from 0 <= f_idx < n_features: # Draw a feature at random f_i = n_features - f_idx - 1 @@ -1111,9 +1107,7 @@ cdef class RandomSplitter(Splitter): features[f_i] = features[f_j] features[f_j] = tmp - for f_idx from 0 <= f_idx < n_features: - # Draw a feature at random - current_feature = features[f_idx] + current_feature = features[f_i] # Find min, max min_feature_value = max_feature_value = X[samples[start], current_feature] @@ -1935,9 +1929,9 @@ cdef class Tree: # ============================================================================= # rand_r replacement taken from 4.4BSD C library. -cdef inline int our_rand_r(unsigned *seed) nogil: - seed[0] = seed[0] * 1103515245 + 12345 - return (seed[0] % (RAND_R_MAX + 1)) +cdef inline UINT32_t our_rand_r(UINT32_t* seed) nogil: + seed[0] = seed[0] * 1103515245 + 12345 + return seed[0] % (RAND_R_MAX + 1) cdef inline np.ndarray int_ptr_to_ndarray(int* data, SIZE_t size): """Encapsulate data into a 1D numpy array of int's.""" @@ -1957,11 +1951,11 @@ cdef inline np.ndarray double_ptr_to_ndarray(double* data, SIZE_t size): shape[0] = size return np.PyArray_SimpleNewFromData(1, shape, np.NPY_DOUBLE, data) -cdef inline SIZE_t rand_int(SIZE_t end, unsigned int* random_state) nogil: +cdef inline SIZE_t rand_int(SIZE_t end, UINT32_t* random_state) nogil: """Generate a random integer in [0; end).""" return our_rand_r(random_state) % end -cdef inline double rand_double(unsigned int* random_state) nogil: +cdef inline double rand_double(UINT32_t* random_state) nogil: """Generate a random double in [0; 1).""" return our_rand_r(random_state) / RAND_R_MAX diff --git a/sklearn/tree/tests/test_tree.py b/sklearn/tree/tests/test_tree.py index 7584bbfe8e9..228518a00df 100644 --- a/sklearn/tree/tests/test_tree.py +++ b/sklearn/tree/tests/test_tree.py @@ -246,7 +246,7 @@ def test_numerical_stability(): def test_importances(): """Check variable importances.""" - X, y = datasets.make_classification(n_samples=1000, + X, y = datasets.make_classification(n_samples=2000, n_features=10, n_informative=3, n_redundant=0, @@ -605,4 +605,4 @@ def test_32bit_equality(): est.fit(X_train, y_train) score = est.score(X_test, y_test) - assert_almost_equal(0.76624433012786, score) + assert_almost_equal(0.76624433012786297, score)