Scikit-Garden or skgarden is a garden for Scikit-Learn compatible decision trees and forests.

Overview

Scikit-Garden

Build Status Build Status

Scikit-Garden or skgarden (pronounced as skarden) is a garden for Scikit-Learn compatible decision trees and forests.

Weights at different depths of a MondrianTree

Ordered prediction intervals on the Boston dataset.

Installation

Scikit-Garden depends on NumPy, SciPy, Scikit-Learn and Cython. So make sure these dependencies are installed using pip:

pip3 install setuptools numpy scipy scikit-learn cython

After that Scikit-Garden can be installed using pip.

pip install scikit-garden

Available models

Regressors

  • MondrianForestRegressor
  • ExtraTreesRegressor (with return_std support)
  • ExtraTreesQuantileRegressor
  • RandomForestRegressor (with return_std support)
  • RandomForestQuantileRegressor

Classifiers

  • MondrianForestClassifier

Usage

The estimators in Scikit-Garden are Scikit-Learn compatible and can serve as a drop-in replacement for Scikit-Learn's trees and forests.

from sklearn.datasets import load_boston
X, y = load_boston()

### Use MondrianForests for variance estimation
from skgarden import MondrianForestRegressor
mfr = MondrianForestRegressor()
mfr.fit(X, y)
y_mean, y_std = mfr.predict(X, return_std=True)

### Use QuantileForests for quantile estimation
from skgarden import RandomForestQuantileRegressor
rfqr = RandomForestQuantileRegressor(random_state=0)
rfqr.fit(X, y)
y_mean = rfqr.predict(X)
y_median = rfqr.predict(X, 50)

Important links

Comments
  • Build failure when installing as dependency

    Build failure when installing as dependency

    Below an extremely long log output of a failure when trying to install scikit-optimize from master without first installing scikit-garden or cython in a fresh python3.6 conda environment. Not sure I really understand why it fails, or what went wrong.

    $ pip install https://github.com/scikit-optimize/scikit-optimize/archive/master.zip
    Collecting https://github.com/scikit-optimize/scikit-optimize/archive/master.zip
      Downloading https://github.com/scikit-optimize/scikit-optimize/archive/master.zip (1.4MB)
        100% |████████████████████████████████| 1.4MB 790kB/s 
    Requirement already satisfied: numpy in ./anaconda/envs/robot-phys/lib/python3.6/site-packages (from scikit-optimize==0.3)
    Requirement already satisfied: scipy in ./anaconda/envs/robot-phys/lib/python3.6/site-packages (from scikit-optimize==0.3)
    Requirement already satisfied: scikit-learn>=0.18 in ./anaconda/envs/robot-phys/lib/python3.6/site-packages (from scikit-optimize==0.3)
    Collecting scikit-garden (from scikit-optimize==0.3)
      Using cached scikit-garden-0.1.2.tar.gz
        Complete output from command python setup.py egg_info:
        Unable to find pgen, not compiling formal grammar.
        warning: no files found matching '*.pyx' under directory 'Cython/Debugger/Tests'
        warning: no files found matching '*.pxd' under directory 'Cython/Debugger/Tests'
        warning: no files found matching '*.h' under directory 'Cython/Debugger/Tests'
        warning: no files found matching '*.pxd' under directory 'Cython/Utility'
        /tmp/easy_install-vnba_vee/Cython-0.25.2/Cython/Compiler/FlowControl.c: In function ‘__Pyx_PyInt_LshiftObjC’:
        /tmp/easy_install-vnba_vee/Cython-0.25.2/Cython/Compiler/FlowControl.c:39765:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         if (unlikely(!(b < sizeof(long)*8 && a == x >> b)) && a) {
                                          ^
        /tmp/easy_install-vnba_vee/Cython-0.25.2/Cython/Compiler/FlowControl.c:608:43: note: in definition of macro ‘unlikely’
           #define unlikely(x) __builtin_expect(!!(x), 0)
                                                   ^
        
        Installed /tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
        import numpy as np
        cimport numpy as np
        np.import_array()
        
        from ._utils cimport log
        ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:29:0: 'skgarden/mondrian/tree/_utils.pxd' not found
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
        import numpy as np
        cimport numpy as np
        np.import_array()
        
        from ._utils cimport log
        ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:29:0: 'skgarden/mondrian/tree/_utils/log.pxd' not found
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        import numpy as np
        cimport numpy as np
        np.import_array()
        
        from ._utils cimport log
        from ._utils cimport safe_realloc
        ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:30:0: 'skgarden/mondrian/tree/_utils/safe_realloc.pxd' not found
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        cimport numpy as np
        np.import_array()
        
        from ._utils cimport log
        from ._utils cimport safe_realloc
        from ._utils cimport sizet_ptr_to_ndarray
        ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:31:0: 'skgarden/mondrian/tree/_utils/sizet_ptr_to_ndarray.pxd' not found
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                return {}
        
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                               ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:54:24: 'DOUBLE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                return {}
        
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                                            ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:54:37: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                return {}
        
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                                                             ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:54:54: 'DOUBLE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                                                    ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:55:45: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                                                                     ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:55:62: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            def __setstate__(self, d):
                pass
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                          SIZE_t end) nogil except -1:
                         ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:56:18: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
                This method must be implemented by the subclass.
                """
                pass
        
            cdef int update(self, SIZE_t new_pos) nogil except -1:
                                 ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:100:26: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                    = (\sum_i^n y_i ** 2) - n_samples * y_bar ** 2
            """
        
            cdef double sq_sum_total
        
            def __cinit__(self, SIZE_t n_outputs, SIZE_t n_samples):
                               ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:226:24: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                    = (\sum_i^n y_i ** 2) - n_samples * y_bar ** 2
            """
        
            cdef double sq_sum_total
        
            def __cinit__(self, SIZE_t n_outputs, SIZE_t n_samples):
                                                 ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:226:42: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                    raise MemoryError()
        
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                               ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:276:24: 'DOUBLE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                    raise MemoryError()
        
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                                            ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:276:37: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                    raise MemoryError()
        
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                                                             ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:276:54: 'DOUBLE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                                                    ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:277:45: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                                                                     ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:277:62: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            def __reduce__(self):
                return (type(self), (self.n_outputs, self.n_samples), self.__getstate__())
        
            cdef int init(self, DOUBLE_t* y, SIZE_t y_stride, DOUBLE_t* sample_weight,
                          double weighted_n_samples, SIZE_t* samples, SIZE_t start,
                          SIZE_t end) nogil except -1:
                         ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:278:18: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
                self.weighted_n_right = 0.0
                self.weighted_n_left = self.weighted_n_node_samples
                self.pos = self.end
                return 0
        
            cdef int update(self, SIZE_t new_pos) nogil except -1:
                                 ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:342:26: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
        
        cdef class ClassificationCriterion(Criterion):
            """Abstract criterion for classification."""
        
            cdef SIZE_t* n_classes
                ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:517:9: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
        cdef class ClassificationCriterion(Criterion):
            """Abstract criterion for classification."""
        
            cdef SIZE_t* n_classes
            cdef SIZE_t sum_stride
                ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:518:9: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
            """Abstract criterion for classification."""
        
            cdef SIZE_t* n_classes
            cdef SIZE_t sum_stride
        
            def __cinit__(self, SIZE_t n_outputs,
                               ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:520:24: 'SIZE_t' is not a type identifier
        
        Error compiling Cython file:
        ------------------------------------------------------------
        ...
        
            cdef SIZE_t* n_classes
            cdef SIZE_t sum_stride
        
            def __cinit__(self, SIZE_t n_outputs,
                          np.ndarray[SIZE_t, ndim=1] n_classes):
                                          ^
        ------------------------------------------------------------
        
        skgarden/mondrian/tree/_criterion.pyx:521:35: Invalid type.
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/tmp/pip-build-kugr7f0w/scikit-garden/setup.py", line 61, in <module>
            setup_requires=["cython"])
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/core.py", line 135, in setup
            config = configuration()
          File "/tmp/pip-build-kugr7f0w/scikit-garden/setup.py", line 25, in configuration
            config.add_subpackage('skgarden')
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 1001, in add_subpackage
            caller_level = 2)
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 970, in get_subpackage
            caller_level = caller_level + 1)
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 907, in _get_configuration_from_setup_py
            config = setup_module.configuration(*args)
          File "skgarden/setup.py", line 9, in configuration
            config.add_subpackage("mondrian")
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 1001, in add_subpackage
            caller_level = 2)
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 970, in get_subpackage
            caller_level = caller_level + 1)
          File "/home/thead/anaconda/envs/robot-phys/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 907, in _get_configuration_from_setup_py
            config = setup_module.configuration(*args)
          File "skgarden/mondrian/setup.py", line 25, in configuration
            config.ext_modules = cythonize(config.ext_modules)
          File "/tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 934, in cythonize
            cythonize_one(*args)
          File "/tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1056, in cythonize_one
            raise CompileError(None, pyx_file)
        Cython.Compiler.Errors.CompileError: skgarden/mondrian/tree/_criterion.pyx
        Appending skgarden.mondrian.tree configuration to skgarden.mondrian
        Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree')
        Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian
        Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble')
        skgarden/mondrian/tree/_tree.pyx: cannot find cimported module '._utils'
        skgarden/mondrian/tree/_splitter.pyx: cannot find cimported module '._utils'
        skgarden/mondrian/tree/_splitter.pyx: cannot find cimported module '._criterion'
        skgarden/mondrian/tree/_criterion.pyx: cannot find cimported module '._utils'
        Compiling skgarden/mondrian/tree/_tree.pyx because it depends on /tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Includes/cpython/method.pxd.
        Compiling skgarden/mondrian/tree/_splitter.pyx because it depends on /tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Includes/cpython/buffer.pxd.
        Compiling skgarden/mondrian/tree/_criterion.pyx because it depends on /tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Includes/cpython/buffer.pxd.
        Compiling skgarden/mondrian/tree/_utils.pyx because it depends on /tmp/pip-build-kugr7f0w/scikit-garden/.eggs/Cython-0.25.2-py3.6-linux-x86_64.egg/Cython/Includes/cpython/buffer.pxd.
        [1/4] Cythonizing skgarden/mondrian/tree/_criterion.pyx
        
        ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-kugr7f0w/scikit-garden/
    
    opened by betatim 10
  • Allow source install without build deps preinstall

    Allow source install without build deps preinstall

    This solves the issue where installing scikit-garden in an empty virtualenv does not work.

    Adds numpy as setup requirements, and requires Cython only when running the build_ext, where Cython is needed. This pushes the Cython requirement to a point in the install where setuptools has had time to install Cython as a build requirement.

    Replaces #77 which forgot to cythonize extensions.

    With this PR, I can do this without errors:

    # git clone https://github.com/ecederstrand/scikit-garden.git
    # cd scikit-garden
    # git checkout patch-1
    
    python3 -m venv tmp
    source tmp/bin/activate
    python3 -m pip install wheel
    python3 setup.py build_ext bdist_wheel
    

    Also added support for scikit-learn master branch, to satisfy test suite.

    opened by ecederstrand 9
  • Remove children impurity calculation

    Remove children impurity calculation

    The criterion is initialized at every call to node_reset which is sufficient to calculate the statistics of every node. This removes the impurity calculation of the left and right children which is unnecessary for a MondrainSplitter.

    opened by MechCoder 5
  • error of import MondrianForestRegressor

    error of import MondrianForestRegressor

    Hello, I have succeeded to install scikit-garden, but when I tried to "import" :

    from skgarden import MondrianForestRegressor

    There was always an error : ModuleNotFoundError: No module named 'skgarden.mondrian.tree._criterion'

    I didn't understand this error, so, can you please help me?

    opened by vatn 4
  • Dependency fix

    Dependency fix

    Updated the imports to their current versions. Specifically:

    1. sklearn.externals.joblib is replaced with joblib
    2. sklearn.utils.testing is replaced with numpy.testing
    3. sklearn.externals.six is replaced with six
    4. sklearn.tree.tree is replaced with sklearn.tree
    5. presort parameter removed from calls to DecisionTreeRegressor
    6. Replaced occurences of assert_true, assert_false, assert_greater and assert_less with their equivalent assert statements
    7. As ForestClassifier and ForestRegressor can't be imported from sklearn anymore, the source code for these are now placed in forest.py

    All unit tests in tests/, mondrian/tree/tests/, mondrian/ensemble/tests and quantile/tests run with no errors.

    opened by saattrupdan 3
  • Setting min sample leaf for Quantile Regression Forest on Boston dataset

    Setting min sample leaf for Quantile Regression Forest on Boston dataset

    Hi,

    I was playing around with the example Boston Data set and noticed if you change the parameter min_samples_leaf != 1, then the x_weights do not look like they are working properly and I run into the following error:

      File "playaround.py", line 23, in <module>
        upper = np.concatenate((upper, rfqr.predict(X_test, quantile=98.5)))
      File "C:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\skgarden\quantile\ensemble.py", line 143, in predict
        self.y_train_, quantile, weights, sorter)
      File "C:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\skgarden\quantile\utils.py", line 69, in weighted_percentile
        total = sorted_cum_weights[-1]
    IndexError: index -1 is out of bounds for axis 0 with size 0
    
    Here is the sample Boston Dataset Code:
    
    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn.datasets import load_boston
    from sklearn.model_selection import train_test_split
    from sklearn.model_selection import KFold
    from skgarden import RandomForestQuantileRegressor
    
    
    boston = load_boston()
    X, y = boston.data, boston.target
    kf = KFold(n_splits=5, random_state=0)
    rfqr = RandomForestQuantileRegressor(random_state=0, min_samples_split=10, n_estimators=1000,min_samples_leaf=3)
    
    y_true_all = []
    lower = []
    upper = []
    
    for train_index, test_index in kf.split(X):
    	X_train, X_test, y_train, y_test = (X[train_index], X[test_index], y[train_index], y[test_index])
    	rfqr.set_params(max_features=X_train.shape[1] // 3)
    	rfqr.fit(X_train, y_train)
    	y_true_all = np.concatenate((y_true_all, y_test))
    	upper = np.concatenate((upper, rfqr.predict(X_test, quantile=98.5)))
    	lower = np.concatenate((lower, rfqr.predict(X_test, quantile=2.5)))
    
    interval = upper - lower
    sort_ind = np.argsort(interval)
    y_true_all = y_true_all[sort_ind]
    upper = upper[sort_ind]
    lower = lower[sort_ind]
    mean = (upper + lower) / 2
    
    
    # Center such that the mean of the prediction interval is at 0.0
    y_true_all -= mean
    upper -= mean
    lower -= mean
    
    plt.plot(y_true_all, "ro")
    plt.fill_between(
        np.arange(len(upper)), lower, upper, alpha=0.2, color="r",
        label="Pred. interval")
    plt.xlabel("Ordered samples.")
    plt.ylabel("Values and prediction intervals.")
    plt.xlim([0, 500])
    plt.show()
    
    Maybe I do not understand Quantile Regression Forests and the implementation is only suppose to have min_samples_leaf = 1, but that seems to contradict min_samples_split = 10 in the Boston Data Set example. Any help would be appreciated, thanks!
    opened by jeffyangchen 3
  • setup failure on Windows: path cannot be absolute

    setup failure on Windows: path cannot be absolute

    For example, here: https://ci.appveyor.com/project/conda-forge/staged-recipes/build/1.0.16558/job/k1u8dc61iq2n4pmk#L493

    I don't have a Windows machine, but when I build locally on Linux/Mac, my scikit_garden.egg-info/SOURCES.txt includes absolute paths to numpy/core/include/numpy/{array,ufunc}object.h. This then breaks inside distutils.util.convert_path, which is a no-op on Linux/Mac but says that paths can't be absolute on Windows.

    I think this is probably related to something about the recursive build setup using numpy.distutils (e.g. #23), but I'm not totally sure.

    opened by djsutherland 3
  • Troubleshooting Installation

    Troubleshooting Installation

    Hi,

    I tried installing using pip install scikit-garden and ran into the following error message:

    pip install scikit-garden Collecting scikit-garden Using cached scikit-garden-0.1.3.tar.gz Requirement already satisfied: numpy in c:\users\jchen\appdata\local\continuum\anaconda2\lib\site-packages (from scikit-garden) Requirement already satisfied: scipy in c:\users\jchen\appdata\local\continuum\anaconda2\lib\site-packages (from scikit-garden) Requirement already satisfied: scikit-learn>=0.18 in c:\users\jchen\appdata\local\continuum\anaconda2\lib\site-packages (from scikit-garden) Requirement already satisfied: cython in c:\users\jchen\appdata\local\continuum\anaconda2\lib\site-packages (from scikit-garden) Building wheels for collected packages: scikit-garden Running setup.py bdist_wheel for scikit-garden ... error Complete output from command C:\Users\jchen\AppData\Local\Continuum\Anaconda2\python.exe -u -c "import setuptools, tokenize;file='c:\users\jchen\appdata\local\temp\pip-build-6becp0\scikit-garden\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d c:\users\jchen\appdata\local\temp\tmpmvmkfopip-wheel- --python-tag cp27: Appending skgarden.mondrian.tree configuration to skgarden.mondrian Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree') Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble') Appending skgarden.mondrian configuration to skgarden Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.mondrian') Appending skgarden.quantile configuration to skgarden Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.quantile') Appending skgarden configuration to Ignoring attempt to set 'name' (from '' to 'skgarden') running bdist_wheel running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands --compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options running build_src build_src building extension "skgarden.mondrian.tree.tree" sources building extension "skgarden.mondrian.tree.splitter" sources building extension "skgarden.mondrian.tree.criterion" sources building extension "skgarden.mondrian.tree.utils" sources build_src: building npy-pkg config files running build_py creating build creating build\lib.win-amd64-2.7 creating build\lib.win-amd64-2.7\skgarden copying skgarden\forest.py -> build\lib.win-amd64-2.7\skgarden copying skgarden\setup.py -> build\lib.win-amd64-2.7\skgarden copying skgarden_init.py -> build\lib.win-amd64-2.7\skgarden creating build\lib.win-amd64-2.7\skgarden\mondrian copying skgarden\mondrian\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian copying skgarden\mondrian_init.py -> build\lib.win-amd64-2.7\skgarden\mondrian creating build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\ensemble.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\setup.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\tree.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\utils.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile_init.py -> build\lib.win-amd64-2.7\skgarden\quantile creating build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble\forest.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble_init.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble creating build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree\tree.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree_init_.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree running build_ext customize MSVCCompiler customize MSVCCompiler using build_ext building 'skgarden.mondrian.tree._tree' extension compiling C sources creating build\temp.win-amd64-2.7 creating build\temp.win-amd64-2.7\Release creating build\temp.win-amd64-2.7\Release\skgarden creating build\temp.win-amd64-2.7\Release\skgarden\mondrian creating build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\core\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\core\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\PC /Tcskgarden\mondrian\tree_tree.c /Fobuild\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.obj -O3 Found executable C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe

    C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\libs /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PCbuild\amd64 /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PC\VS9.0\amd64 /EXPORT:init_tree build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.obj /OUT:build\lib.win-amd64-2.7\skgarden\mondrian\tree_tree.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.pyd.manifest Found executable C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe _tree.obj : warning LNK4197: export 'init_tree' specified multiple times; using first specification Creating library build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.lib and object build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.exp _tree.obj : error LNK2019: unresolved external symbol fmax referenced in function __pyx_f_8skgarden_8mondrian_4tree_5_tree_4Tree_predict build\lib.win-amd64-2.7\skgarden\mondrian\tree_tree.pyd : fatal error LNK1120: 1 unresolved externals error: Command "C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\libs /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PCbuild\amd64 /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PC\VS9.0\amd64 /EXPORT:init_tree build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.obj /OUT:build\lib.win-amd64-2.7\skgarden\mondrian\tree_tree.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.pyd.manifest" failed with exit status 1120


    Failed building wheel for scikit-garden Running setup.py clean for scikit-garden Failed to build scikit-garden Installing collected packages: scikit-garden Running setup.py install for scikit-garden ... error Complete output from command C:\Users\jchen\AppData\Local\Continuum\Anaconda2\python.exe -u -c "import setuptools, tokenize;file='c:\users\jchen\appdata\local\temp\pip-build-6becp0\scikit-garden\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record c:\users\jchen\appdata\local\temp\pip-xcrp8b-record\install-record.txt --single-version-externally-managed --compile: Appending skgarden.mondrian.tree configuration to skgarden.mondrian Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree') Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble') Appending skgarden.mondrian configuration to skgarden Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.mondrian') Appending skgarden.quantile configuration to skgarden Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.quantile') Appending skgarden configuration to Ignoring attempt to set 'name' (from '' to 'skgarden') running install running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands --compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options running build_src build_src building extension "skgarden.mondrian.tree.tree" sources building extension "skgarden.mondrian.tree.splitter" sources building extension "skgarden.mondrian.tree.criterion" sources building extension "skgarden.mondrian.tree.utils" sources build_src: building npy-pkg config files running build_py creating build creating build\lib.win-amd64-2.7 creating build\lib.win-amd64-2.7\skgarden copying skgarden\forest.py -> build\lib.win-amd64-2.7\skgarden copying skgarden\setup.py -> build\lib.win-amd64-2.7\skgarden copying skgarden_init.py -> build\lib.win-amd64-2.7\skgarden creating build\lib.win-amd64-2.7\skgarden\mondrian copying skgarden\mondrian\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian copying skgarden\mondrian_init.py -> build\lib.win-amd64-2.7\skgarden\mondrian creating build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\ensemble.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\setup.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\tree.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile\utils.py -> build\lib.win-amd64-2.7\skgarden\quantile copying skgarden\quantile_init.py -> build\lib.win-amd64-2.7\skgarden\quantile creating build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble\forest.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble copying skgarden\mondrian\ensemble_init.py -> build\lib.win-amd64-2.7\skgarden\mondrian\ensemble creating build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree\setup.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree\tree.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree copying skgarden\mondrian\tree_init_.py -> build\lib.win-amd64-2.7\skgarden\mondrian\tree running build_ext customize MSVCCompiler customize MSVCCompiler using build_ext building 'skgarden.mondrian.tree._tree' extension compiling C sources creating build\temp.win-amd64-2.7 creating build\temp.win-amd64-2.7\Release creating build\temp.win-amd64-2.7\Release\skgarden creating build\temp.win-amd64-2.7\Release\skgarden\mondrian creating build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\core\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\core\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\include -IC:\Users\jchen\AppData\Local\Continuum\Anaconda2\PC /Tcskgarden\mondrian\tree_tree.c /Fobuild\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.obj -O3 Found executable C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\libs /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PCbuild\amd64 /LIBPATH:C:\Users\jchen\AppData\Local\Continuum\Anaconda2\PC\VS9.0\amd64 /EXPORT:init_tree build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.obj /OUT:build\lib.win-amd64-2.7\skgarden\mondrian\tree_tree.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.pyd.manifest Found executable C:\Users\jchen\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe _tree.obj : warning LNK4197: export 'init_tree' specified multiple times; using first specification Creating library build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.lib and object build\temp.win-amd64-2.7\Release\skgarden\mondrian\tree_tree.exp

    Looks like there is something wrong with Visual C++ for python. Any help would be greatly appreciated. Thanks!

    opened by jeffyangchen 3
  • Unable to install through pip

    Unable to install through pip

    pip installation doesn't recognize already installed numpy.

    Collecting scikit-garden
      Downloading scikit-garden-0.1.3.tar.gz (317 kB)
         |████████████████████████████████| 317 kB 78.6 MB/s            
      Preparing metadata (setup.py) ... - error
      ERROR: Command errored out with exit status 1:
       command: /home/circleci/project/venv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_2d8007f33a52439ab401c4ec290abf09/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_2d8007f33a52439ab401c4ec290abf09/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-92p854xv
           cwd: /tmp/pip-install-xf6kw9yr/scikit-garden_2d8007f33a52439ab401c4ec290abf09/
      Complete output (5 lines):
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "/tmp/pip-install-xf6kw9yr/scikit-garden_2d8007f33a52439ab401c4ec290abf09/setup.py", line 6, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      ----------------------------------------
    WARNING: Discarding https://files.pythonhosted.org/packages/63/0f/850592f6e8619d42086cdcc6a1731a4254f74db09878a155ab3d4cdc55ef/scikit-garden-0.1.3.tar.gz#sha256=d6fe65205f39633f17c181f552a0fc56e2f05bb2096be63f38c160fe20718d9d (from https://pypi.org/simple/scikit-garden/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
      Downloading scikit-garden-0.1.2.tar.gz (313 kB)
         |████████████████████████████████| 313 kB 83.0 MB/s            
      Preparing metadata (setup.py) ... - error
      ERROR: Command errored out with exit status 1:
       command: /home/circleci/project/venv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_806822fed9e24f09a5555aebd9c5be89/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_806822fed9e24f09a5555aebd9c5be89/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-qu8tg4u8
           cwd: /tmp/pip-install-xf6kw9yr/scikit-garden_806822fed9e24f09a5555aebd9c5be89/
      Complete output (5 lines):
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "/tmp/pip-install-xf6kw9yr/scikit-garden_806822fed9e24f09a5555aebd9c5be89/setup.py", line 6, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      ----------------------------------------
    WARNING: Discarding https://files.pythonhosted.org/packages/e8/f7/38a1107426e7a9b0a2bc1a35f5325a674b5e2a804d8e67f6a20846bcb85c/scikit-garden-0.1.2.tar.gz#sha256=1ac32c80e33bcb65aa02696e98c005e5bea51acef6b012ce4153a3e9b5838ec9 (from https://pypi.org/simple/scikit-garden/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
      Downloading scikit-garden-0.1.1.tar.gz (317 kB)
         |████████████████████████████████| 317 kB 96.8 MB/s            
      Preparing metadata (setup.py) ... - error
      ERROR: Command errored out with exit status 1:
       command: /home/circleci/project/venv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_c3cf1275d496488fbbdb2a926248c87a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_c3cf1275d496488fbbdb2a926248c87a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-3ixzhpoe
           cwd: /tmp/pip-install-xf6kw9yr/scikit-garden_c3cf1275d496488fbbdb2a926248c87a/
      Complete output (5 lines):
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "/tmp/pip-install-xf6kw9yr/scikit-garden_c3cf1275d496488fbbdb2a926248c87a/setup.py", line 6, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      ----------------------------------------
    WARNING: Discarding https://files.pythonhosted.org/packages/e2/ed/00a1029cc08c7abcd75ece54dce1b1df3bed7544b507a2512199d5c7fba4/scikit-garden-0.1.1.tar.gz#sha256=6d5c7749c39a62b19eb5b8335ea7594412d7bb37a287272363855158c6ccb2b9 (from https://pypi.org/simple/scikit-garden/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
      Downloading scikit-garden-0.1.tar.gz (299 kB)
         |████████████████████████████████| 299 kB 82.6 MB/s            
      Preparing metadata (setup.py) ... - error
      ERROR: Command errored out with exit status 1:
       command: /home/circleci/project/venv/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_d39a62ffa5e340919b139872e4b8046a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xf6kw9yr/scikit-garden_d39a62ffa5e340919b139872e4b8046a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-csnck_bh
           cwd: /tmp/pip-install-xf6kw9yr/scikit-garden_d39a62ffa5e340919b139872e4b8046a/
      Complete output (5 lines):
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "/tmp/pip-install-xf6kw9yr/scikit-garden_d39a62ffa5e340919b139872e4b8046a/setup.py", line 6, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      ----------------------------------------
    WARNING: Discarding https://files.pythonhosted.org/packages/28/aa/b58d5bcd024b9b7f9737ab319c4da248154d33611e1b4167274e5f942028/scikit-garden-0.1.tar.gz#sha256=29218a2fb7687c897b2dc65032265eb7c95b267b26e1d2a40c3b29477bb326a5 (from https://pypi.org/simple/scikit-garden/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    ERROR: Could not find a version that satisfies the requirement scikit-garden (from versions: 0.1, 0.1.1, 0.1.2, 0.1.3)
    ERROR: No matching distribution found for scikit-garden
    
    Exited with code exit status 1
    CircleCI received exit code 1
    
    opened by PSSF23 2
  • Importing scikit-garden in requirements.txt

    Importing scikit-garden in requirements.txt

    I want to pre-install scikit-garden vai a requirements.txt To make it future proof I would like to import it with a version such as: numpy==1.13.3 How can I do this for scikit-garden?

    When installing I get the following error: ImportError: ('No module named Cython', 'Please install cython with a version >= 0.23 in order to build a scikit-garden development version.')

    opened by paulVelthuisBoskabouter 2
  • Distribute the generated .c files on PyPI

    Distribute the generated .c files on PyPI

    distributing cython modules outlines a nice way to distribute the .c files via PyPI and removes the need for the user to install cython. I think they even recommend doing this.

    One caveat: not sure how much of this is true if you build manylinux wheels (#19)?

    opened by betatim 2
  • Planing to Push the latest release on PyPi?

    Planing to Push the latest release on PyPi?

    Great project! I would like to use the partial_fit method of MondrianForest but it shows an error Mondrian Forest has no attribute partial_fit. I found that the version downloaded using pip do not contain the implementation of partial_fit. So Do you guys plan to push the latest release on Pypi?

    opened by humanlee1011 0
  • Stalled development

    Stalled development

    Dear all,

    development for this package seems to have stalled for years now, but there is still an interest from the community in the use of quantile machine learning methods in the sklearn world. I have been working on this (see PR #95 and scikit-learn/scikit-learn#19754) for a while now and have posted what I have in its own repo: https://github.com/jasperroebroek/sklearn-quantile. I do not have much knowledge on how to take this project further than where it is now (missing CI, pip, conda etc.) so help and feedback are more than welcome.

    I am not sure if this is a suitable place to post a comment like this, so if it not I can of course delete it again.

    Cheers, Jasper

    opened by jasperroebroek 3
  • unable to install skgarden

    unable to install skgarden

    Hi, I am using windows 10 and I was trying to install scikit garden. I already installed the dependencies using:

    pip3 install setuptools numpy scipy scikit-learn cython

    Next I tried to install scikit garden using anaconda prompt:

    pip install scikit-garden

    But I get the following error:

    Collecting scikit-garden
      Using cached scikit-garden-0.1.3.tar.gz (317 kB)
    Requirement already satisfied: numpy in c:\users\joean\anaconda3\lib\site-packages (from scikit-garden) (1.19.5)
    Requirement already satisfied: scipy in c:\users\joean\anaconda3\lib\site-packages (from scikit-garden) (1.5.2)
    Requirement already satisfied: scikit-learn>=0.18 in c:\users\joean\anaconda3\lib\site-packages (from scikit-garden) (0.23.2)
    Requirement already satisfied: cython in c:\users\joean\anaconda3\lib\site-packages (from scikit-garden) (0.29.17)
    Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\joean\anaconda3\lib\site-packages (from scikit-learn>=0.18->scikit-garden) (2.1.0)
    Requirement already satisfied: joblib>=0.11 in c:\users\joean\anaconda3\lib\site-packages (from scikit-learn>=0.18->scikit-garden) (0.17.0)
    Building wheels for collected packages: scikit-garden
      Building wheel for scikit-garden (setup.py): started
      Building wheel for scikit-garden (setup.py): finished with status 'error'
      Running setup.py clean for scikit-garden
    Failed to build scikit-garden
    Installing collected packages: scikit-garden
        Running setup.py install for scikit-garden: started
        Running setup.py install for scikit-garden: finished with status 'error'
      ERROR: Command errored out with exit status 1:
       command: 'C:\Users\joean\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"'; __file__='"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\joean\AppData\Local\Temp\pip-wheel-qukechnm'
           cwd: C:\Users\joean\AppData\Local\Temp\pip-install-grpxsp24\scikit-garden\
      Complete output (236 lines):
      Appending skgarden.mondrian.tree configuration to skgarden.mondrian
      Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree')
      Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian
      Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble')
      Appending skgarden.mondrian configuration to skgarden
      Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.mondrian')
      Appending skgarden.quantile configuration to skgarden
      Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.quantile')
      Appending skgarden configuration to
      Ignoring attempt to set 'name' (from '' to 'skgarden')
      running bdist_wheel
      running build
      running config_cc
      unifing config_cc, config, build_clib, build_ext, build commands --compiler options
      running config_fc
      unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
      running build_src
      build_src
      building extension "skgarden.mondrian.tree._tree" sources
      building extension "skgarden.mondrian.tree._splitter" sources
      building extension "skgarden.mondrian.tree._criterion" sources
      building extension "skgarden.mondrian.tree._utils" sources
      build_src: building npy-pkg config files
      running build_py
      creating build
      creating build\lib.win-amd64-3.8
      creating build\lib.win-amd64-3.8\skgarden
      copying skgarden\forest.py -> build\lib.win-amd64-3.8\skgarden
      copying skgarden\setup.py -> build\lib.win-amd64-3.8\skgarden
      copying skgarden\__init__.py -> build\lib.win-amd64-3.8\skgarden
      creating build\lib.win-amd64-3.8\skgarden\mondrian
      copying skgarden\mondrian\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian
      copying skgarden\mondrian\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian
      creating build\lib.win-amd64-3.8\skgarden\quantile
      copying skgarden\quantile\ensemble.py -> build\lib.win-amd64-3.8\skgarden\quantile
      copying skgarden\quantile\setup.py -> build\lib.win-amd64-3.8\skgarden\quantile
      copying skgarden\quantile\tree.py -> build\lib.win-amd64-3.8\skgarden\quantile
      copying skgarden\quantile\utils.py -> build\lib.win-amd64-3.8\skgarden\quantile
      copying skgarden\quantile\__init__.py -> build\lib.win-amd64-3.8\skgarden\quantile
      creating build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
      copying skgarden\mondrian\ensemble\forest.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
      copying skgarden\mondrian\ensemble\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
      copying skgarden\mondrian\ensemble\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
      creating build\lib.win-amd64-3.8\skgarden\mondrian\tree
      copying skgarden\mondrian\tree\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
      copying skgarden\mondrian\tree\tree.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
      copying skgarden\mondrian\tree\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
      running build_ext
      customize Mingw32CCompiler
      customize Mingw32CCompiler using build_ext
      building 'skgarden.mondrian.tree._tree' extension
      compiling C sources
      C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
      
      creating build\temp.win-amd64-3.8\Release\skgarden
      creating build\temp.win-amd64-3.8\Release\skgarden\mondrian
      creating build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree
      compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
      extra options: '-O3'
      gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_tree.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_tree.o -O3
      In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                       from skgarden\mondrian\tree\_tree.c:620:
      C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
       #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
               ^
      skgarden\mondrian\tree\_tree.c: In function '__pyx_f_8skgarden_8mondrian_4tree_5_tree_4Tree__get_node_ndarray':
      skgarden\mondrian\tree\_tree.c:14086:36: warning: passing argument 1 of '(PyObject * (*)(PyTypeObject *, PyArray_Descr *, int,  const npy_intp *, const npy_intp *, void *, int,  PyObject *))*(PyArray_API + 752u)' from incompatible pointer type [-Wincompatible-pointer-types]
         __pyx_t_2 = PyArray_NewFromDescr(((PyObject *)__pyx_ptype_5numpy_ndarray), ((PyArray_Descr *)__pyx_t_1), 1, __pyx_v_shape, __pyx_v_strides, ((void *)__pyx_v_self->nodes), NPY_DEFAULT, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error)
                                          ^
      skgarden\mondrian\tree\_tree.c:14086:36: note: expected 'PyTypeObject * {aka struct _typeobject *}' but argument is of type 'PyObject * {aka struct _object *}'
      skgarden\mondrian\tree\_tree.c: In function '__Pyx_ImportType':
      skgarden\mondrian\tree\_tree.c:19755:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                   "%s.%s size changed, may indicate binary incompatibility. "
                   ^
      skgarden\mondrian\tree\_tree.c:19755:13: warning: unknown conversion type character 'z' in format [-Wformat=]
      skgarden\mondrian\tree\_tree.c:19755:13: warning: too many arguments for format [-Wformat-extra-args]
      skgarden\mondrian\tree\_tree.c: In function '__pyx_f_8skgarden_8mondrian_4tree_5_tree_4Tree_predict':
      skgarden\mondrian\tree\_tree.c:9245:51: warning: '__pyx_v_p_js' may be used uninitialized in this function [-Wmaybe-uninitialized]
                   __pyx_v_p_nsy = (__pyx_v_p_nsy * (1.0 - __pyx_v_p_js));
                                                         ^
      gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_tree.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_tree.cp38-win_amd64.pyd
      building 'skgarden.mondrian.tree._splitter' extension
      compiling C sources
      C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
      
      compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
      extra options: '-O3'
      gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_splitter.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_splitter.o -O3
      In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                       from skgarden\mondrian\tree\_splitter.c:620:
      C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
       #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
               ^
      skgarden\mondrian\tree\_splitter.c: In function '__Pyx_ImportType':
      skgarden\mondrian\tree\_splitter.c:8657:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                   "%s.%s size changed, may indicate binary incompatibility. "
                   ^
      skgarden\mondrian\tree\_splitter.c:8657:13: warning: unknown conversion type character 'z' in format [-Wformat=]
      skgarden\mondrian\tree\_splitter.c:8657:13: warning: too many arguments for format [-Wformat-extra-args]
      gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_splitter.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_splitter.cp38-win_amd64.pyd
      building 'skgarden.mondrian.tree._criterion' extension
      compiling C sources
      C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
      
      compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
      extra options: '-O3'
      gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_criterion.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_criterion.o -O3
      In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                       from skgarden\mondrian\tree\_criterion.c:620:
      C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
       #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
               ^
      skgarden\mondrian\tree\_criterion.c: In function '__Pyx_ImportType':
      skgarden\mondrian\tree\_criterion.c:10108:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                   "%s.%s size changed, may indicate binary incompatibility. "
                   ^
      skgarden\mondrian\tree\_criterion.c:10108:13: warning: unknown conversion type character 'z' in format [-Wformat=]
      skgarden\mondrian\tree\_criterion.c:10108:13: warning: too many arguments for format [-Wformat-extra-args]
      gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_criterion.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_criterion.cp38-win_amd64.pyd
      building 'skgarden.mondrian.tree._utils' extension
      compiling C sources
      C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
      
      compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
      extra options: '-O3'
      gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_utils.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_utils.o -O3
      In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                       from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                       from skgarden\mondrian\tree\_utils.c:620:
      C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
       #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
               ^
      skgarden\mondrian\tree\_utils.c: In function '__Pyx_ImportType':
      skgarden\mondrian\tree\_utils.c:7697:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                   "%s.%s size changed, may indicate binary incompatibility. "
                   ^
      skgarden\mondrian\tree\_utils.c:7697:13: warning: unknown conversion type character 'z' in format [-Wformat=]
      skgarden\mondrian\tree\_utils.c:7697:13: warning: too many arguments for format [-Wformat-extra-args]
      gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_utils.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_utils.cp38-win_amd64.pyd
      installing to build\bdist.win-amd64\wheel
      running install
      running install_lib
      creating build\bdist.win-amd64
      creating build\bdist.win-amd64\wheel
      creating build\bdist.win-amd64\wheel\skgarden
      copying build\lib.win-amd64-3.8\skgarden\forest.py -> build\bdist.win-amd64\wheel\.\skgarden
      creating build\bdist.win-amd64\wheel\skgarden\mondrian
      creating build\bdist.win-amd64\wheel\skgarden\mondrian\ensemble
      copying build\lib.win-amd64-3.8\skgarden\mondrian\ensemble\forest.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\ensemble
      copying build\lib.win-amd64-3.8\skgarden\mondrian\ensemble\setup.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\ensemble
      copying build\lib.win-amd64-3.8\skgarden\mondrian\ensemble\__init__.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\ensemble
      copying build\lib.win-amd64-3.8\skgarden\mondrian\setup.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian
      creating build\bdist.win-amd64\wheel\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\setup.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\tree.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_criterion.cp38-win_amd64.pyd -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_splitter.cp38-win_amd64.pyd -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_tree.cp38-win_amd64.pyd -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_utils.cp38-win_amd64.pyd -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\__init__.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian\tree
      copying build\lib.win-amd64-3.8\skgarden\mondrian\__init__.py -> build\bdist.win-amd64\wheel\.\skgarden\mondrian
      creating build\bdist.win-amd64\wheel\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\quantile\ensemble.py -> build\bdist.win-amd64\wheel\.\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\quantile\setup.py -> build\bdist.win-amd64\wheel\.\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\quantile\tree.py -> build\bdist.win-amd64\wheel\.\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\quantile\utils.py -> build\bdist.win-amd64\wheel\.\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\quantile\__init__.py -> build\bdist.win-amd64\wheel\.\skgarden\quantile
      copying build\lib.win-amd64-3.8\skgarden\setup.py -> build\bdist.win-amd64\wheel\.\skgarden
      copying build\lib.win-amd64-3.8\skgarden\__init__.py -> build\bdist.win-amd64\wheel\.\skgarden
      running install_egg_info
      running egg_info
      writing scikit_garden.egg-info\PKG-INFO
      writing dependency_links to scikit_garden.egg-info\dependency_links.txt
      writing requirements to scikit_garden.egg-info\requires.txt
      writing top-level names to scikit_garden.egg-info\top_level.txt
      reading manifest file 'scikit_garden.egg-info\SOURCES.txt'
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "C:\Users\joean\AppData\Local\Temp\pip-install-grpxsp24\scikit-garden\setup.py", line 36, in <module>
          setup(configuration=configuration,
        File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\core.py", line 169, in setup
          return old_setup(**new_attr)
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\__init__.py", line 153, in setup
          return distutils.core.setup(**attrs)
        File "C:\Users\joean\anaconda3\lib\distutils\core.py", line 148, in setup
          dist.run_commands()
        File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 966, in run_commands
          self.run_command(cmd)
        File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Users\joean\anaconda3\lib\site-packages\wheel\bdist_wheel.py", line 326, in run
          self.run_command('install')
        File "C:\Users\joean\anaconda3\lib\distutils\cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\install.py", line 60, in run
          r = self.setuptools_run()
        File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\install.py", line 34, in setuptools_run
          return distutils_install.run(self)
        File "C:\Users\joean\anaconda3\lib\distutils\command\install.py", line 557, in run
          self.run_command(cmd_name)
        File "C:\Users\joean\anaconda3\lib\distutils\cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\install_egg_info.py", line 34, in run
          self.run_command('egg_info')
        File "C:\Users\joean\anaconda3\lib\distutils\cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\egg_info.py", line 25, in run
          _egg_info.run(self)
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 298, in run
          self.find_sources()
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 305, in find_sources
          mm.run()
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 536, in run
          self.add_defaults()
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 580, in add_defaults
          self.read_manifest()
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\sdist.py", line 190, in read_manifest
          self.filelist.append(line)
        File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 478, in append
          path = convert_path(item)
        File "C:\Users\joean\anaconda3\lib\distutils\util.py", line 122, in convert_path
          raise ValueError("path '%s' cannot be absolute" % pathname)
      ValueError: path '/usr/local/lib/python3.5/dist-packages/numpy/core/include/numpy/arrayobject.h' cannot be absolute
      ----------------------------------------
      ERROR: Failed building wheel for scikit-garden
        ERROR: Command errored out with exit status 1:
         command: 'C:\Users\joean\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"'; __file__='"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\joean\AppData\Local\Temp\pip-record-nbrs0_3s\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\joean\anaconda3\Include\scikit-garden'
             cwd: C:\Users\joean\AppData\Local\Temp\pip-install-grpxsp24\scikit-garden\
        Complete output (205 lines):
        Appending skgarden.mondrian.tree configuration to skgarden.mondrian
        Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree')
        Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian
        Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble')
        Appending skgarden.mondrian configuration to skgarden
        Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.mondrian')
        Appending skgarden.quantile configuration to skgarden
        Ignoring attempt to set 'name' (from 'skgarden' to 'skgarden.quantile')
        Appending skgarden configuration to
        Ignoring attempt to set 'name' (from '' to 'skgarden')
        running install
        running build
        running config_cc
        unifing config_cc, config, build_clib, build_ext, build commands --compiler options
        running config_fc
        unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
        running build_src
        build_src
        building extension "skgarden.mondrian.tree._tree" sources
        building extension "skgarden.mondrian.tree._splitter" sources
        building extension "skgarden.mondrian.tree._criterion" sources
        building extension "skgarden.mondrian.tree._utils" sources
        build_src: building npy-pkg config files
        running build_py
        creating build
        creating build\lib.win-amd64-3.8
        creating build\lib.win-amd64-3.8\skgarden
        copying skgarden\forest.py -> build\lib.win-amd64-3.8\skgarden
        copying skgarden\setup.py -> build\lib.win-amd64-3.8\skgarden
        copying skgarden\__init__.py -> build\lib.win-amd64-3.8\skgarden
        creating build\lib.win-amd64-3.8\skgarden\mondrian
        copying skgarden\mondrian\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian
        copying skgarden\mondrian\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian
        creating build\lib.win-amd64-3.8\skgarden\quantile
        copying skgarden\quantile\ensemble.py -> build\lib.win-amd64-3.8\skgarden\quantile
        copying skgarden\quantile\setup.py -> build\lib.win-amd64-3.8\skgarden\quantile
        copying skgarden\quantile\tree.py -> build\lib.win-amd64-3.8\skgarden\quantile
        copying skgarden\quantile\utils.py -> build\lib.win-amd64-3.8\skgarden\quantile
        copying skgarden\quantile\__init__.py -> build\lib.win-amd64-3.8\skgarden\quantile
        creating build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
        copying skgarden\mondrian\ensemble\forest.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
        copying skgarden\mondrian\ensemble\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
        copying skgarden\mondrian\ensemble\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian\ensemble
        creating build\lib.win-amd64-3.8\skgarden\mondrian\tree
        copying skgarden\mondrian\tree\setup.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
        copying skgarden\mondrian\tree\tree.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
        copying skgarden\mondrian\tree\__init__.py -> build\lib.win-amd64-3.8\skgarden\mondrian\tree
        running build_ext
        customize Mingw32CCompiler
        customize Mingw32CCompiler using build_ext
        building 'skgarden.mondrian.tree._tree' extension
        compiling C sources
        C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
        
        creating build\temp.win-amd64-3.8\Release\skgarden
        creating build\temp.win-amd64-3.8\Release\skgarden\mondrian
        creating build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree
        compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
        extra options: '-O3'
        gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_tree.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_tree.o -O3
        In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                         from skgarden\mondrian\tree\_tree.c:620:
        C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
         #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
                 ^
        skgarden\mondrian\tree\_tree.c: In function '__pyx_f_8skgarden_8mondrian_4tree_5_tree_4Tree__get_node_ndarray':
        skgarden\mondrian\tree\_tree.c:14086:36: warning: passing argument 1 of '(PyObject * (*)(PyTypeObject *, PyArray_Descr *, int,  const npy_intp *, const npy_intp *, void *, int,  PyObject *))*(PyArray_API + 752u)' from incompatible pointer type [-Wincompatible-pointer-types]
           __pyx_t_2 = PyArray_NewFromDescr(((PyObject *)__pyx_ptype_5numpy_ndarray), ((PyArray_Descr *)__pyx_t_1), 1, __pyx_v_shape, __pyx_v_strides, ((void *)__pyx_v_self->nodes), NPY_DEFAULT, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error)
                                            ^
        skgarden\mondrian\tree\_tree.c:14086:36: note: expected 'PyTypeObject * {aka struct _typeobject *}' but argument is of type 'PyObject * {aka struct _object *}'
        skgarden\mondrian\tree\_tree.c: In function '__Pyx_ImportType':
        skgarden\mondrian\tree\_tree.c:19755:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                     "%s.%s size changed, may indicate binary incompatibility. "
                     ^
        skgarden\mondrian\tree\_tree.c:19755:13: warning: unknown conversion type character 'z' in format [-Wformat=]
        skgarden\mondrian\tree\_tree.c:19755:13: warning: too many arguments for format [-Wformat-extra-args]
        skgarden\mondrian\tree\_tree.c: In function '__pyx_f_8skgarden_8mondrian_4tree_5_tree_4Tree_predict':
        skgarden\mondrian\tree\_tree.c:9245:51: warning: '__pyx_v_p_js' may be used uninitialized in this function [-Wmaybe-uninitialized]
                     __pyx_v_p_nsy = (__pyx_v_p_nsy * (1.0 - __pyx_v_p_js));
                                                           ^
        gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_tree.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_tree.cp38-win_amd64.pyd
        building 'skgarden.mondrian.tree._splitter' extension
        compiling C sources
        C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
        
        compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
        extra options: '-O3'
        gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_splitter.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_splitter.o -O3
        In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                         from skgarden\mondrian\tree\_splitter.c:620:
        C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
         #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
                 ^
        skgarden\mondrian\tree\_splitter.c: In function '__Pyx_ImportType':
        skgarden\mondrian\tree\_splitter.c:8657:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                     "%s.%s size changed, may indicate binary incompatibility. "
                     ^
        skgarden\mondrian\tree\_splitter.c:8657:13: warning: unknown conversion type character 'z' in format [-Wformat=]
        skgarden\mondrian\tree\_splitter.c:8657:13: warning: too many arguments for format [-Wformat-extra-args]
        gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_splitter.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_splitter.cp38-win_amd64.pyd
        building 'skgarden.mondrian.tree._criterion' extension
        compiling C sources
        C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
        
        compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
        extra options: '-O3'
        gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_criterion.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_criterion.o -O3
        In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                         from skgarden\mondrian\tree\_criterion.c:620:
        C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
         #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
                 ^
        skgarden\mondrian\tree\_criterion.c: In function '__Pyx_ImportType':
        skgarden\mondrian\tree\_criterion.c:10108:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                     "%s.%s size changed, may indicate binary incompatibility. "
                     ^
        skgarden\mondrian\tree\_criterion.c:10108:13: warning: unknown conversion type character 'z' in format [-Wformat=]
        skgarden\mondrian\tree\_criterion.c:10108:13: warning: too many arguments for format [-Wformat-extra-args]
        gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_criterion.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_criterion.cp38-win_amd64.pyd
        building 'skgarden.mondrian.tree._utils' extension
        compiling C sources
        C compiler: gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes
        
        compile options: '-D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c'
        extra options: '-O3'
        gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes -D__MSVCRT_VERSION__=0x1916 -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\lib\site-packages\numpy\core\include -IC:\Users\joean\anaconda3\include -IC:\Users\joean\anaconda3\include -c skgarden\mondrian\tree\_utils.c -o build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_utils.o -O3
        In file included from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1822:0,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:12,
                         from C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                         from skgarden\mondrian\tree\_utils.c:620:
        C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:14:9: note: #pragma message: C:\Users\joean\anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
         #pragma message(_WARN___LOC__"Using deprecated NumPy API, disable it with " \
                 ^
        skgarden\mondrian\tree\_utils.c: In function '__Pyx_ImportType':
        skgarden\mondrian\tree\_utils.c:7697:13: warning: unknown conversion type character 'z' in format [-Wformat=]
                     "%s.%s size changed, may indicate binary incompatibility. "
                     ^
        skgarden\mondrian\tree\_utils.c:7697:13: warning: unknown conversion type character 'z' in format [-Wformat=]
        skgarden\mondrian\tree\_utils.c:7697:13: warning: too many arguments for format [-Wformat-extra-args]
        gcc -g -shared build\temp.win-amd64-3.8\Release\skgarden\mondrian\tree\_utils.o -LC:\Users\joean\anaconda3\libs -LC:\Users\joean\anaconda3\PCbuild\amd64 -lpython38 -o build\lib.win-amd64-3.8\skgarden\mondrian\tree\_utils.cp38-win_amd64.pyd
        running install_lib
        copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_criterion.cp38-win_amd64.pyd -> C:\Users\joean\anaconda3\Lib\site-packages\skgarden\mondrian\tree
        copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_splitter.cp38-win_amd64.pyd -> C:\Users\joean\anaconda3\Lib\site-packages\skgarden\mondrian\tree
        copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_tree.cp38-win_amd64.pyd -> C:\Users\joean\anaconda3\Lib\site-packages\skgarden\mondrian\tree
        copying build\lib.win-amd64-3.8\skgarden\mondrian\tree\_utils.cp38-win_amd64.pyd -> C:\Users\joean\anaconda3\Lib\site-packages\skgarden\mondrian\tree
        running install_egg_info
        running egg_info
        writing scikit_garden.egg-info\PKG-INFO
        writing dependency_links to scikit_garden.egg-info\dependency_links.txt
        writing requirements to scikit_garden.egg-info\requires.txt
        writing top-level names to scikit_garden.egg-info\top_level.txt
        reading manifest file 'scikit_garden.egg-info\SOURCES.txt'
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "C:\Users\joean\AppData\Local\Temp\pip-install-grpxsp24\scikit-garden\setup.py", line 36, in <module>
            setup(configuration=configuration,
          File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\core.py", line 169, in setup
            return old_setup(**new_attr)
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\__init__.py", line 153, in setup
            return distutils.core.setup(**attrs)
          File "C:\Users\joean\anaconda3\lib\distutils\core.py", line 148, in setup
            dist.run_commands()
          File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 966, in run_commands
            self.run_command(cmd)
          File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\install.py", line 60, in run
            r = self.setuptools_run()
          File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\install.py", line 34, in setuptools_run
            return distutils_install.run(self)
          File "C:\Users\joean\anaconda3\lib\distutils\command\install.py", line 557, in run
            self.run_command(cmd_name)
          File "C:\Users\joean\anaconda3\lib\distutils\cmd.py", line 313, in run_command
            self.distribution.run_command(command)
          File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\install_egg_info.py", line 34, in run
            self.run_command('egg_info')
          File "C:\Users\joean\anaconda3\lib\distutils\cmd.py", line 313, in run_command
            self.distribution.run_command(command)
          File "C:\Users\joean\anaconda3\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\joean\anaconda3\lib\site-packages\numpy\distutils\command\egg_info.py", line 25, in run
            _egg_info.run(self)
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 298, in run
            self.find_sources()
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 305, in find_sources
            mm.run()
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 536, in run
            self.add_defaults()
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 580, in add_defaults
            self.read_manifest()
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\sdist.py", line 190, in read_manifest
            self.filelist.append(line)
          File "C:\Users\joean\anaconda3\lib\site-packages\setuptools\command\egg_info.py", line 478, in append
            path = convert_path(item)
          File "C:\Users\joean\anaconda3\lib\distutils\util.py", line 122, in convert_path
            raise ValueError("path '%s' cannot be absolute" % pathname)
        ValueError: path '/usr/local/lib/python3.5/dist-packages/numpy/core/include/numpy/arrayobject.h' cannot be absolute
        ----------------------------------------
    ERROR: Command errored out with exit status 1: 'C:\Users\joean\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"'; __file__='"'"'C:\\Users\\joean\\AppData\\Local\\Temp\\pip-install-grpxsp24\\scikit-garden\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\joean\AppData\Local\Temp\pip-record-nbrs0_3s\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\joean\anaconda3\Include\scikit-garden' Check the logs for full command output.
    

    How to fix this issue?

    opened by joeanton719 1
  • Cannot install scikit-garden on Ubuntu

    Cannot install scikit-garden on Ubuntu

    Hello,

    I managed to install scikit-garden on my Linux but it fails on my Ubuntu:

    2020-12-08T18:45:02.0025765Z Collecting scikit-garden==0.1.3 (from -r /root//sku_potential_forecast/requirements.txt (line 15))
    2020-12-08T18:45:02.1003720Z   Downloading https://files.pythonhosted.org/packages/63/0f/850592f6e8619d42086cdcc6a1731a4254f74db09878a155ab3d4cdc55ef/scikit-garden-0.1.3.tar.gz (317kB)
    2020-12-08T18:45:05.5509924Z     Complete output from command python setup.py egg_info:
    2020-12-08T18:45:05.5514464Z     /tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Compiler/Main.py:344: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-6sv7xy9u/scikit-garden/skgarden/mondrian/tree/_criterion.pxd
    2020-12-08T18:45:05.5515246Z       tree = Parsing.p_module(s, pxd, full_module_name)
    2020-12-08T18:45:05.5518317Z     
    2020-12-08T18:45:05.5518784Z     Error compiling Cython file:
    2020-12-08T18:45:05.5519630Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5520321Z     ...
    2020-12-08T18:45:05.5520560Z     
    2020-12-08T18:45:05.5520802Z     # See _utils.pyx for details.
    2020-12-08T18:45:05.5521042Z     
    2020-12-08T18:45:05.5521284Z     import numpy as np
    2020-12-08T18:45:05.5521532Z     cimport numpy as np
    2020-12-08T18:45:05.5522492Z     from _tree cimport Node
    2020-12-08T18:45:05.5522946Z     ^
    2020-12-08T18:45:05.5523652Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5524080Z     
    2020-12-08T18:45:05.5524712Z     skgarden/mondrian/tree/_utils.pxd:13:0: '_tree.pxd' not found
    2020-12-08T18:45:05.5525131Z     
    2020-12-08T18:45:05.5525440Z     Error compiling Cython file:
    2020-12-08T18:45:05.5526342Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5526681Z     ...
    2020-12-08T18:45:05.5526887Z     
    2020-12-08T18:45:05.5527126Z     # See _utils.pyx for details.
    2020-12-08T18:45:05.5527446Z     
    2020-12-08T18:45:05.5527833Z     import numpy as np
    2020-12-08T18:45:05.5528083Z     cimport numpy as np
    2020-12-08T18:45:05.5529211Z     from _tree cimport Node
    2020-12-08T18:45:05.5529396Z     ^
    2020-12-08T18:45:05.5530122Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5530353Z     
    2020-12-08T18:45:05.5530764Z     skgarden/mondrian/tree/_utils.pxd:13:0: '_tree/Node.pxd' not found
    2020-12-08T18:45:05.5530981Z     
    2020-12-08T18:45:05.5531160Z     Error compiling Cython file:
    2020-12-08T18:45:05.5531583Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5532182Z     ...
    2020-12-08T18:45:05.5532505Z         (DTYPE_t*)
    2020-12-08T18:45:05.5532658Z         (SIZE_t*)
    2020-12-08T18:45:05.5532819Z         (unsigned char*)
    2020-12-08T18:45:05.5532998Z         (DOUBLE_t*)
    2020-12-08T18:45:05.5533317Z         (DOUBLE_t**)
    2020-12-08T18:45:05.5533463Z         (Node*)
    2020-12-08T18:45:05.5533776Z         ^
    2020-12-08T18:45:05.5534606Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5534832Z     
    2020-12-08T18:45:05.5535279Z     skgarden/mondrian/tree/_utils.pxd:40:5: 'Node' is not a type identifier
    2020-12-08T18:45:05.5535495Z     
    2020-12-08T18:45:05.5535667Z     Error compiling Cython file:
    2020-12-08T18:45:05.5536072Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5536269Z     ...
    2020-12-08T18:45:05.5536412Z         (SIZE_t*)
    2020-12-08T18:45:05.5536563Z         (unsigned char*)
    2020-12-08T18:45:05.5536716Z         (DOUBLE_t*)
    2020-12-08T18:45:05.5536886Z         (DOUBLE_t**)
    2020-12-08T18:45:05.5537391Z         (Node*)
    2020-12-08T18:45:05.5537707Z         (Node**)
    2020-12-08T18:45:05.5538044Z         ^
    2020-12-08T18:45:05.5538465Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5538685Z     
    2020-12-08T18:45:05.5539141Z     skgarden/mondrian/tree/_utils.pxd:41:5: 'Node' is not a type identifier
    2020-12-08T18:45:05.5539387Z     
    2020-12-08T18:45:05.5539568Z     Error compiling Cython file:
    2020-12-08T18:45:05.5540047Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5540278Z     ...
    2020-12-08T18:45:05.5540425Z         (SIZE_t*)
    2020-12-08T18:45:05.5540614Z         (unsigned char*)
    2020-12-08T18:45:05.5540787Z         (DOUBLE_t*)
    2020-12-08T18:45:05.5540955Z         (DOUBLE_t**)
    2020-12-08T18:45:05.5541136Z         (Node*)
    2020-12-08T18:45:05.5541292Z         (Node**)
    2020-12-08T18:45:05.5542348Z        ^
    2020-12-08T18:45:05.5543040Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5543296Z     
    2020-12-08T18:45:05.5543543Z     skgarden/mondrian/tree/_utils.pxd:41:4: Type specified multiple times
    2020-12-08T18:45:05.5543813Z     
    2020-12-08T18:45:05.5544002Z     Error compiling Cython file:
    2020-12-08T18:45:05.5545000Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5545378Z     ...
    2020-12-08T18:45:05.5545593Z             self.sum_total = NULL
    2020-12-08T18:45:05.5545793Z             self.sum_left = NULL
    2020-12-08T18:45:05.5546153Z             self.sum_right = NULL
    2020-12-08T18:45:05.5546335Z             self.n_classes = NULL
    2020-12-08T18:45:05.5546497Z     
    2020-12-08T18:45:05.5546667Z             safe_realloc(&self.n_classes, n_outputs)
    2020-12-08T18:45:05.5546865Z                        ^
    2020-12-08T18:45:05.5547315Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5547510Z     
    2020-12-08T18:45:05.5547723Z     skgarden/mondrian/tree/_criterion.pyx:554:20: ambiguous overloaded method
    2020-12-08T18:45:05.5548409Z     
    2020-12-08T18:45:05.5548576Z     Error compiling Cython file:
    2020-12-08T18:45:05.5549057Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5549276Z     ...
    2020-12-08T18:45:05.5549426Z             self.sum_total = NULL
    2020-12-08T18:45:05.5549624Z             self.sum_left = NULL
    2020-12-08T18:45:05.5549804Z             self.sum_right = NULL
    2020-12-08T18:45:05.5549986Z             self.n_classes = NULL
    2020-12-08T18:45:05.5550157Z     
    2020-12-08T18:45:05.5550326Z             safe_realloc(&self.n_classes, n_outputs)
    2020-12-08T18:45:05.5550669Z            ^
    2020-12-08T18:45:05.5551087Z     ------------------------------------------------------------
    2020-12-08T18:45:05.5554072Z     
    2020-12-08T18:45:05.5554327Z     skgarden/mondrian/tree/_criterion.pyx:554:8: Invalid use of fused types, type cannot be specialized
    2020-12-08T18:45:05.5554676Z     Traceback (most recent call last):
    2020-12-08T18:45:05.5555071Z       File "<string>", line 1, in <module>
    2020-12-08T18:45:05.5555672Z       File "/tmp/pip-install-6sv7xy9u/scikit-garden/setup.py", line 61, in <module>
    2020-12-08T18:45:05.5555965Z         setup_requires=["cython"])
    2020-12-08T18:45:05.5556446Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/core.py", line 135, in setup
    2020-12-08T18:45:05.5556743Z         config = configuration()
    2020-12-08T18:45:05.5557200Z       File "/tmp/pip-install-6sv7xy9u/scikit-garden/setup.py", line 25, in configuration
    2020-12-08T18:45:05.5557649Z         config.add_subpackage('skgarden')
    2020-12-08T18:45:05.5558187Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 1020, in add_subpackage
    2020-12-08T18:45:05.5558478Z         caller_level = 2)
    2020-12-08T18:45:05.5558970Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 989, in get_subpackage
    2020-12-08T18:45:05.5559298Z         caller_level = caller_level + 1)
    2020-12-08T18:45:05.5559855Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 926, in _get_configuration_from_setup_py
    2020-12-08T18:45:05.5560384Z         config = setup_module.configuration(*args)
    2020-12-08T18:45:05.5560621Z       File "skgarden/setup.py", line 9, in configuration
    2020-12-08T18:45:05.5560845Z         config.add_subpackage("mondrian")
    2020-12-08T18:45:05.5561363Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 1020, in add_subpackage
    2020-12-08T18:45:05.5561912Z         caller_level = 2)
    2020-12-08T18:45:05.5562440Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 989, in get_subpackage
    2020-12-08T18:45:05.5562757Z         caller_level = caller_level + 1)
    2020-12-08T18:45:05.5563853Z       File "/opt/conda/lib/python3.6/site-packages/numpy/distutils/misc_util.py", line 926, in _get_configuration_from_setup_py
    2020-12-08T18:45:05.5564215Z         config = setup_module.configuration(*args)
    2020-12-08T18:45:05.5564480Z       File "skgarden/mondrian/setup.py", line 25, in configuration
    2020-12-08T18:45:05.5565080Z         config.ext_modules = cythonize(config.ext_modules)
    2020-12-08T18:45:05.5565735Z       File "/tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1110, in cythonize
    2020-12-08T18:45:05.5566245Z         cythonize_one(*args)
    2020-12-08T18:45:05.5566843Z       File "/tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Build/Dependencies.py", line 1277, in cythonize_one
    2020-12-08T18:45:05.5567320Z         raise CompileError(None, pyx_file)
    2020-12-08T18:45:05.5567718Z     Cython.Compiler.Errors.CompileError: skgarden/mondrian/tree/_criterion.pyx
    2020-12-08T18:45:05.5568031Z     Appending skgarden.mondrian.tree configuration to skgarden.mondrian
    2020-12-08T18:45:05.5568591Z     Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.tree')
    2020-12-08T18:45:05.5568923Z     Appending skgarden.mondrian.ensemble configuration to skgarden.mondrian
    2020-12-08T18:45:05.5569692Z     Ignoring attempt to set 'name' (from 'skgarden.mondrian' to 'skgarden.mondrian.ensemble')
    2020-12-08T18:45:05.5570465Z     Compiling skgarden/mondrian/tree/_tree.pyx because it depends on /tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Includes/cpython/weakref.pxd.
    2020-12-08T18:45:05.5571357Z     Compiling skgarden/mondrian/tree/_splitter.pyx because it depends on /tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Includes/cpython/type.pxd.
    2020-12-08T18:45:05.5572944Z     Compiling skgarden/mondrian/tree/_criterion.pyx because it depends on /tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Includes/cpython/type.pxd.
    2020-12-08T18:45:05.5573841Z     Compiling skgarden/mondrian/tree/_utils.pyx because it depends on /tmp/pip-install-6sv7xy9u/scikit-garden/.eggs/Cython-3.0a6-py3.6-linux-x86_64.egg/Cython/Includes/cpython/type.pxd.
    2020-12-08T18:45:05.5614691Z     [1/4] Cythonizing skgarden/mondrian/tree/_criterion.pyx
    

    I just ran "pip install scikit-garden". I'm on python 3.6.5. From what I understand, pxd files seem to be missing from the installation package. This issue looks like this one on scikit-learn: https://github.com/scikit-learn/scikit-learn/issues/2057

    Mark

    opened by Mark531 0
Releases(v0.1)
Machine-care - A simple python script to take care of simple maintenance tasks

Machine care An simple python script to take care of simple maintenance tasks fo

2 Jul 10, 2022
Visualize classified time series data with interactive Sankey plots in Google Earth Engine

sankee Visualize changes in classified time series data with interactive Sankey plots in Google Earth Engine Contents Description Installation Using P

Aaron Zuspan 76 Dec 15, 2022
Book Recommender System Using Sci-kit learn N-neighbours

Model-Based-Recommender-Engine I created a book Recommender System using Sci-kit learn's N-neighbours algorithm for my model and the streamlit library

1 Jan 13, 2022
2021 Machine Learning Security Evasion Competition

2021 Machine Learning Security Evasion Competition This repository contains code samples for the 2021 Machine Learning Security Evasion Competition. P

Fabrício Ceschin 8 May 01, 2022
Interactive Parallel Computing in Python

Interactive Parallel Computing with IPython ipyparallel is the new home of IPython.parallel. ipyparallel is a Python package and collection of CLI scr

IPython 2.3k Dec 30, 2022
A simple python program that draws a tree for incrementing values using the Collatz Conjecture.

Collatz Conjecture A simple python program that draws a tree for incrementing values using the Collatz Conjecture. Values which can be edited: Length

davidgasinski 1 Oct 28, 2021
PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows.

An open-source, low-code machine learning library in Python 🚀 Version 2.3.5 out now! Check out the release notes here. Official • Docs • Install • Tu

PyCaret 6.7k Jan 08, 2023
MooGBT is a library for Multi-objective optimization in Gradient Boosted Trees.

MooGBT is a library for Multi-objective optimization in Gradient Boosted Trees. MooGBT optimizes for multiple objectives by defining constraints on sub-objective(s) along with a primary objective. Th

Swiggy 66 Dec 06, 2022
PyTorch extensions for high performance and large scale training.

Description FairScale is a PyTorch extension library for high performance and large scale training on one or multiple machines/nodes. This library ext

Facebook Research 2k Dec 28, 2022
A Python-based application demonstrating various search algorithms, namely Depth-First Search (DFS), Breadth-First Search (BFS), and A* Search (Manhattan Distance Heuristic)

A Python-based application demonstrating various search algorithms, namely Depth-First Search (DFS), Breadth-First Search (BFS), and the A* Search (using the Manhattan Distance Heuristic)

17 Aug 14, 2022
Dieses Projekt ermöglicht es den Smartmeter der EVN (Netz Niederösterreich) über die Kundenschnittstelle auszulesen.

SmartMeterEVN Dieses Projekt ermöglicht es den Smartmeter der EVN (Netz Niederösterreich) über die Kundenschnittstelle auszulesen. Smart Meter werden

greenMike 43 Dec 04, 2022
A Pythonic framework for threat modeling

pytm: A Pythonic framework for threat modeling Introduction Traditional threat modeling too often comes late to the party, or sometimes not at all. In

Izar Tarandach 644 Dec 20, 2022
Predict profitability of trades based on indicator buy / sell signals

Predict profitability of trades based on indicator buy / sell signals Trade profitability analysis for trades based on various indicators signals: MAC

Tomasz Porzycki 1 Dec 15, 2021
Combines MLflow with a database (PostgreSQL) and a reverse proxy (NGINX) into a multi-container Docker application

Combines MLflow with a database (PostgreSQL) and a reverse proxy (NGINX) into a multi-container Docker application (with docker-compose).

Philip May 2 Dec 03, 2021
icepickle is to allow a safe way to serialize and deserialize linear scikit-learn models

icepickle It's a cooler way to store simple linear models. The goal of icepickle is to allow a safe way to serialize and deserialize linear scikit-lea

vincent d warmerdam 24 Dec 09, 2022
Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020)

Karate Club is an unsupervised machine learning extension library for NetworkX. Please look at the Documentation, relevant Paper, Promo Video, and Ext

Benedek Rozemberczki 1.8k Jan 03, 2023
The easy way to combine mlflow, hydra and optuna into one machine learning pipeline.

mlflow_hydra_optuna_the_easy_way The easy way to combine mlflow, hydra and optuna into one machine learning pipeline. Objective TODO Usage 1. build do

shibuiwilliam 9 Sep 09, 2022
Learn how to responsibly deliver value with ML.

Made With ML Applied ML · MLOps · Production Join 30K+ developers in learning how to responsibly deliver value with ML. 🔥 Among the top MLOps reposit

Goku Mohandas 32k Dec 30, 2022
CinnaMon is a Python library which offers a number of tools to detect, explain, and correct data drift in a machine learning system

CinnaMon is a Python library which offers a number of tools to detect, explain, and correct data drift in a machine learning system

Zelros 67 Dec 28, 2022
A Software Framework for Neuromorphic Computing

A Software Framework for Neuromorphic Computing

Lava 338 Dec 26, 2022