A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines

Related tags

Algorithmspy-earth
Overview

py-earth Build Status

A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines algorithm, in the style of scikit-learn. The py-earth package implements Multivariate Adaptive Regression Splines using Cython and provides an interface that is compatible with scikit-learn's Estimator, Predictor, Transformer, and Model interfaces. For more information about Multivariate Adaptive Regression Splines, see the references below.

Now With Missing Data Support!

The py-earth package now supports missingness in its predictors. Just set allow_missing=True when constructing an Earth object.

Requesting Feedback

If there are other features or improvements you'd like to see in py-earth, please send me an email or open or comment on an issue. In particular, please let me know if any of the following are important to you:

  1. Improved speed
  2. Exporting models to additional formats
  3. Support for shared memory multiprocessing during fitting
  4. Support for cyclic predictors (such as time of day)
  5. Better support for categorical predictors
  6. Better support for large data sets
  7. Iterative reweighting during fitting

Installation

Make sure you have numpy and scikit-learn installed. Then do the following:

git clone git://github.com/scikit-learn-contrib/py-earth.git
cd py-earth
sudo python setup.py install

Usage

import numpy
from pyearth import Earth
from matplotlib import pyplot
    
#Create some fake data
numpy.random.seed(0)
m = 1000
n = 10
X = 80*numpy.random.uniform(size=(m,n)) - 40
y = numpy.abs(X[:,6] - 4.0) + 1*numpy.random.normal(size=m)
    
#Fit an Earth model
model = Earth()
model.fit(X,y)
    
#Print the model
print(model.trace())
print(model.summary())
    
#Plot the model
y_hat = model.predict(X)
pyplot.figure()
pyplot.plot(X[:,6],y,'r.')
pyplot.plot(X[:,6],y_hat,'b.')
pyplot.xlabel('x_6')
pyplot.ylabel('y')
pyplot.title('Simple Earth Example')
pyplot.show()

Other Implementations

I am aware of the following implementations of Multivariate Adaptive Regression Splines:

  1. The R package earth (coded in C by Stephen Millborrow): http://cran.r-project.org/web/packages/earth/index.html
  2. The R package mda (coded in Fortran by Trevor Hastie and Robert Tibshirani): http://cran.r-project.org/web/packages/mda/index.html
  3. The Orange data mining library for Python (uses the C code from 1): http://orange.biolab.si/
  4. The xtal package (uses Fortran code written in 1991 by Jerome Friedman): http://www.ece.umn.edu/users/cherkass/ee4389/xtalpackage.html
  5. MARSplines by StatSoft: http://www.statsoft.com/textbook/multivariate-adaptive-regression-splines/
  6. MARS by Salford Systems (also uses Friedman's code): http://www.salford-systems.com/products/mars
  7. ARESLab (written in Matlab by Gints Jekabsons): http://www.cs.rtu.lv/jekabsons/regression.html

The R package earth was most useful to me in understanding the algorithm, particularly because of Stephen Milborrow's thorough and easy to read vignette (http://www.milbo.org/doc/earth-notes.pdf).

References

  1. Friedman, J. (1991). Multivariate adaptive regression splines. The annals of statistics, 19(1), 1–67. http://www.jstor.org/stable/10.2307/2241837
  2. Stephen Milborrow. Derived from mda:mars by Trevor Hastie and Rob Tibshirani. (2012). earth: Multivariate Adaptive Regression Spline Models. R package version 3.2-3. http://CRAN.R-project.org/package=earth
  3. Friedman, J. (1993). Fast MARS. Stanford University Department of Statistics, Technical Report No 110. https://statistics.stanford.edu/sites/default/files/LCS%20110.pdf
  4. Friedman, J. (1991). Estimating functions of mixed ordinal and categorical variables using adaptive splines. Stanford University Department of Statistics, Technical Report No 108. http://media.salford-systems.com/library/MARS_V2_JHF_LCS-108.pdf
  5. Stewart, G.W. Matrix Algorithms, Volume 1: Basic Decompositions. (1998). Society for Industrial and Applied Mathematics.
  6. Bjorck, A. Numerical Methods for Least Squares Problems. (1996). Society for Industrial and Applied Mathematics.
  7. Hastie, T., Tibshirani, R., & Friedman, J. The Elements of Statistical Learning (2nd Edition). (2009).
    Springer Series in Statistics
  8. Golub, G., & Van Loan, C. Matrix Computations (3rd Edition). (1996). Johns Hopkins University Press.

References 7, 2, 1, 3, and 4 contain discussions likely to be useful to users of py-earth. References 1, 2, 6, 5, 8, 3, and 4 were useful during the implementation process.

Comments
  • adding  py-earth to a conda repository

    adding py-earth to a conda repository

    @fabianp @mblondel I think it could be nice to add py-earth to the conda repository you built for lightning in https://anaconda.org/scikit-learn-contrib. What do you think ? is there a way to access that account to upload new packages ? otherwise I can take care of compiling the code and send you the tarball if it is ok for you.

    opened by mehdidc 37
  • Installation of pyearth with python 3.8.10

    Installation of pyearth with python 3.8.10

    Good evening I tried to install pyearth with pip3 install sklearn-contrib-py-earth but I got errors. I have installed sklearn with pip3 install -U scikit-learn without problem. What can I do ? How can I install pyearth on python 3.8 ? Thank you to help me. Excuse my bad english (I am french). P. Grandeau

    opened by pgr123 26
  • Supporting multi-column regression

    Supporting multi-column regression

    PR for issue #49.

    To recall what I said in #49: In the earth R package (Check section 2.9, http://www.milbo.org/doc/earth-notes.pdf) , it is one model for each column of Y except that that they share the same set of basis functions and the models are optimized to minimize the overall GCV (the sum of GCVs of all the models). However they don't share the basis functions coeficients, each model has its own set of coeficients for basis functions.

    Example of fitting two sine functions here : http://imgur.com/cLlwpb9

    I modified the code in pyearth/_forward.pyx and pyearth/_pruning.pyx allowing multiple outputs but keeping the same "semantics".

    Some modifications that have been done as a consquence of this:

    • transform_deriv returns a 3D tensor (J in transform_deriv, file pyearth/_basis.pyx), we have one additional dimension because now we have multiple columns. As a result, predict_deriv will also return that 3D tensor. to handle multiple outputs.
    • in _scrub (pyearth/Earth.py) if the output y is a vector, it is transformed to a matrix with an additional dimension
    • I modified some tests to take into account that pyearth/_forward.pyx accepts only matrices for y
    • I added an example for fitting two sine functions in examples/plot_sine_wave_2d.py
    • in Earth (pyearth/earth.py) coef_ is now a matrix, the first dimension is the outputs, the second the coefficients.
    • in Earth (pyearth/earth.py) summary outputs only the coefficients of the first output, it must be extended to deal with multiple outputs
    • I had to modify export_python_function (in pyearth/export.py) to only take into account the coefficients of the first output, it must be further extended to deal with multiple outputs
    opened by mehdidc 19
  • Examples failing, or Not Compatible with Windows

    Examples failing, or Not Compatible with Windows

    Both of the usage examples result in the same error for me..

    import numpy import cProfile from pyearth import Earth from matplotlib import pyplot

    numpy.random.seed(2) m = 1000 n = 10 X = 80_numpy.random.uniform(size=(m,n)) - 40 y = numpy.abs(X[:,6] - 4.0) + 1_numpy.random.normal(size=m) model = Earth(max_degree = 1) model.fit(X,y) Traceback (most recent call last): File "", line 1, in File "C:\Python27\lib\site-packages\pyearth\earth.py", line 312, in fit self.forward_pass(X, y) File "C:\Python27\lib\site-packages\pyearth\earth.py", line 383, in forward_pass forward_passer = ForwardPasser(X, y, **args) File "_forward.pyx", line 67, in pyearth._forward.ForwardPasser.init (pyearth/_forward.c:3146) File "_forward.pyx", line 96, in pyearth._forward.ForwardPasser.init_linear_variables (pyearth/_forward.c:3698) ValueError: Buffer dtype mismatch, expected 'INT_t' but got 'long long'

    bug 
    opened by Jenders74 18
  • model dependent on dataset order

    model dependent on dataset order

    I have ran into a situation where it appears that simply reordering the input dataset changes the output model. I make sure that X,y are reordered jointly, of course. repeat training on the same order dataset reproduces the exact same results. So, this is not some general stochasticity, but rather changes with the samples order in the dataset.

    I have tried reading the knot_candidates and knot_search code to find if there is anywhere the data order could come into play, but was unable to follow the code well enough to detect such a place.

    I cannot share my actual data, so I will try to reproduce this with a demo dataset. In the mean time, I would be grateful to know if this is expected, or if it is surprising to others as it is to me. I would appreciate any direction for further testing this, or suggestions for how to prevent this from happening, if it can be done.

    bug wontfix 
    opened by odedbd 15
  • x5 missing value None when changing input file

    x5 missing value None when changing input file

    Hello,

    I have a very strange issue that has been bothering me all day. I am trying to train an Earth model with the values of a X.csv and Y.csv files, which I parse as follows: X = genfromtxt('X.csv', delimiter=',') into arrays. Then I run model.fit(X,y) and y_hat = model.predict(X) before plotting the predicted values vs the real ones(like in the most trivial example on README).

    The problem is that after changing my input files for another use case, I see this output:

    Earth Model

    Basis Function Pruned Coefficient 0 Coefficient 1 Coefficient 2

    (Intercept) No -2587.46 -3739.86 59.7551
    x0 No 28.3284 14.8212 0.0205887
    x5 Yes None None None
    x5 Yes None None None
    x5 Yes None None None
    x5 Yes None None None
    x5 Yes None None None
    x0 Yes None None None
    x5 Yes None None None

    and instead of the real values, I see a linear plot. The code still works with my original .csv files. I run my code in the following way:

    1. cython --embed -o hello.c hello.py
    2. gcc -Os -I /usr/include/python2.7/ -o hello hello.c -lpython2.7 -lpthread -lm -lutil -ldl
    3. ./hello

    I would be really grateful if someone could help

    bug 
    opened by florakarniav 10
  • Numerical problem in forward pass

    Numerical problem in forward pass

    There is a section of code in the rewrite_forward_pass branch starting here:

    https://github.com/scikit-learn-contrib/py-earth/blob/rewrite_forward_pass/pyearth/_knot_search.pyx#L585

    This section deals with a potential numerical problem that I have not entirely figured out how I want to deal with. What happens here is that the computed improvement in the squared error loss function is greater than the total squared error, so we end up with an impossible negative loss situation. This is obviously an issue of numerical stability, and is not unexpected because the math here is base on the cholesky decomposition. I had a look through Steve Milborrow's earth code recently and found some safeguards in place for similar problems, although I don't understand his code well enough to say exactly how his solution relates to mine.

    So, here's the issue: Given that this numerical problem sometimes happens, how should the program respond? Currently, it responds by correcting the calculation and printing a bunch of debugging related information that a user would find unintelligible and disturbing. Probably the best thing to do is just take out the print statements and leave it at that. However, since I don't fully understand the precise conditions that lead to the instability, I am unsure. I have yet to find a reliable way to reproduce the problem with a data set I can share or that is small enough to deal with easily.

    The first step in figuring out this issue would be to figure out exactly what conditions trigger it. However, this may be a post-release issue. The fix I have in place now seems to produce good results in every situation I've encountered.

    @mehdidc, do you have an opinion on any of this? I know you probably haven't looked at the branch much yet at all, but any thoughts are appreciated. If you want to investigate it at all, I would be glad to send you some of my notes.

    bug 
    opened by jcrudy 9
  • Meet scikit-learn-contrib requirements

    Meet scikit-learn-contrib requirements

    I think @mehdidc has already done everything necessary to meet the requirements of contrib. However, @mblondel, could you sign off on this? With confirmation from you, the next priority will be a tagged release and publication on pypi (see issue #76 ).

    @mehdidc I'm assigning this issue to you because I think you've basically already solved it. If there's more that needs to be done and you want to assign it back to me, please feel free. Not trying to push more work onto you than you want to take:).

    enhancement 
    opened by jcrudy 9
  • NameError: name 'np' is not defined

    NameError: name 'np' is not defined

    Been trying to use py-earth and this issue keeps popping up, here's a traceback:

    Traceback (most recent call last):
      File "analyze.py", line 264, in <module>
        dep.fit_transform(Data[ins].copy()))
      File "/home/mb/pylib/python2.7/site-packages/py_earth-0.1.0-py2.7-linux-x86_64.egg/pyearth/earth.py", line 597, in fit
        self.xlabels_, linvars, skip_scrub=True)
      File "/home/mb/pylib/python2.7/site-packages/py_earth-0.1.0-py2.7-linux-x86_64.egg/pyearth/earth.py", line 712, in forward_pass
        xlabels=self.xlabels_, linvars=linvars, **args)
      File "pyearth/_forward.pyx", line 70, in pyearth._forward.ForwardPasser.__init__ (pyearth/_forward.c:4111)
    NameError: name 'np' is not defined
    
    

    It might be related to another error I'm experiencing - an ImportError that I get the first time I try to import the module. Second time goes through, so I just catch the ImportError the first time, and then import again. Here's a traceback on that.

    Traceback (most recent call last):
      File "analyze.py", line 16, in <module>
        import pyearth
      File "/home/mb/pylib/python2.7/site-packages/py_earth-0.1.0-py2.7-linux-x86_64.egg/pyearth/__init__.py", line 8, in <module>
        from .earth import Earth
      File "/home/mb/pylib/python2.7/site-packages/py_earth-0.1.0-py2.7-linux-x86_64.egg/pyearth/earth.py", line 1, in <module>
        from ._forward import ForwardPasser
      File "pyearth/_qr.pxd", line 4, in init pyearth._forward (pyearth/_forward.c:27302)
      File "pyearth/_qr.pyx", line 1, in init pyearth._qr (pyearth/_qr.c:22630)
    ImportError: No module named cython_lapack
    
    
    opened by mattdbrown 7
  • Export function working?

    Export function working?

    Hi, I'm very interested in this Earth algorithm and the PY-Earth implementation. I'm working in a project where I would like to utilize something like the Earth algorithm to predict a result value based on four independent variables. I've been testing PY-earth and I got it working really well for my test dataset. Mostly the predicted results are within 2% of the real results when testing with that known dataset and the corresponding Dependent variable values. th

    I just have a problem that I'd like to use this in NodeJS. There are ways to run Python code from Javascript but in my project we would be doing lots of calculations and I think it would be really unefficient to always call Python for each individual calculation. It would also by default involve always the Earth model education steps which would again be unefficient. -

    I've been playing with the included Export functionality to export the model that has been fitted with my dataset. I wrote the exported function to javascript but somehow that is not giving nearly as accurate results as Py-Earth does eventhough I guess the exported function should be the same model as what Py-Earth is using when I'm getting the accurate results.

    Is there some fundamental problem when trying to use the exported function separately without the dynamic model creation and fitting? I've been checking for typos but there doesn't seem to be any.. I used the export_python_string() function to produce the exported model and then I rewrote that to JS.

    Appreciating a lot for any comments.

    Br, Mikko

    bug 
    opened by mikkookkim 7
  • "Using deprecated NumPy API" error

    Thanks for your work on this, looks like great stuff. I'm hitting an installation error:

    gcc -pthread -B /home/chad/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/chad/miniconda3/lib/python3.6/site-packages/numpy/core/include -I/home/chad/miniconda3/include/python3.6m -c pyearth/_util.c -o build/temp.linux-x86_64-3.6/pyearth/_util.o
    In file included from /home/chad/miniconda3/lib/python3.6/site-packages/numpy/core/include/numpy/ndarraytypes.h:1823,
                     from /home/chad/miniconda3/lib/python3.6/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
                     from /home/chad/miniconda3/lib/python3.6/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from pyearth/_util.c:495:
    /home/chad/miniconda3/lib/python3.6/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     #warning "Using deprecated NumPy API, disable it by " \
      ^~~~~~~
    gcc -pthread -shared -B /home/chad/miniconda3/compiler_compat -L/home/chad/miniconda3/lib -Wl,-rpath=/home/chad/miniconda3/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/pyearth/_util.o -o /home/chad/git/py-earth/pyearth/_util.cpython-36m-x86_64-linux-gnu.so
    /home/chad/miniconda3/compiler_compat/ld: build/temp.linux-x86_64-3.6/pyearth/_util.o: unable to initialize decompress status for section .debug_info
    /home/chad/miniconda3/compiler_compat/ld: build/temp.linux-x86_64-3.6/pyearth/_util.o: unable to initialize decompress status for section .debug_info
    /home/chad/miniconda3/compiler_compat/ld: build/temp.linux-x86_64-3.6/pyearth/_util.o: unable to initialize decompress status for section .debug_info
    /home/chad/miniconda3/compiler_compat/ld: build/temp.linux-x86_64-3.6/pyearth/_util.o: unable to initialize decompress status for section .debug_info
    build/temp.linux-x86_64-3.6/pyearth/_util.o: file not recognized: file format not recognized
    collect2: error: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1
    

    I haven't used Cython, so I'm not sure how to go about digging into this. Any suggestions?

    opened by cscherrer 6
  • Exporting a fitted Earth models as a sympy expression

    Exporting a fitted Earth models as a sympy expression

    Hi, please if my Resulting sympy expression is as follow: 10.09973960737218e-5H^2O + 1.000379617581785374HS^2O^2 - 3.010726723740426HSO (%)^3 + 5.0103148920221564HSO**2 + 9.00086824336123546HSO + 1.000583791144606651HWO - 6.000605250796458352HW - 4.000687835136935973HN+ 3.00187622749500295HO + 2.0238479599870805H + 1.0443106468205726

    can I simplifie the equation by putting in factor the basis function which are repeated to have the following form of equation which is more simple : 1.04+H(2.02+3.002O-6W-4N)+HO(1W+9S+10.1H)+HSO²(1S-3.01*O+5.01) is it correct ?

    opened by ASMAA9555 0
  • Installing pyearth with docker image python:3.10.8-slim fails

    Installing pyearth with docker image python:3.10.8-slim fails

    Docker file: FROM python:3.10.8-slim

    ARG requirements=/rainbow3/requirements.txt COPY requirements.production.txt $requirements

    RUN apt-get update -qq && apt-get install -qq git pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl build-essential gcc

    RUN pip install --upgrade pip && pip install -r $requirements

    RUN git clone -b issue191 https://github.com/scikit-learn-contrib/py-earth WORKDIR py-earth RUN python setup.py -q install --cythonize

    Log:

    => [5/7] RUN git clone -b issue191 https://github.com/scikit-learn-contrib/py-earth.git 38.9s

    => [6/7] WORKDIR /py-earth 0.0s => ERROR [7/7] RUN python setup.py install -qq --cythonize 13.6s

    [7/7] RUN python setup.py install -qq --cythonize: #11 0.862 /usr/local/lib/python3.10/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /py-earth/pyearth/_basis.pxd #11 0.862 tree = Parsing.p_module(s, pxd, full_module_name) #11 1.522 /usr/local/lib/python3.10/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /py-earth/pyearth/_forward.px d #11 1.522 tree = Parsing.p_module(s, pxd, full_module_name) #11 2.053 warning: pyearth/_knot_search.pxd:91:28: Declarations should not be declared inline. #11 2.605 /usr/local/lib/python3.10/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /py-earth/pyearth/_knot_searc h.pxd #11 2.605 tree = Parsing.p_module(s, pxd, full_module_name) #11 3.132 warning: pyearth/_knot_search.pxd:91:28: Declarations should not be declared inline. #11 3.865 /usr/local/lib/python3.10/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /py-earth/pyearth/_pruning.px d #11 3.865 tree = Parsing.p_module(s, pxd, full_module_name) #11 4.284 Compiling pyearth/_basis.pyx because it depends on ./pyearth/_util.pxd. #11 4.284 Compiling pyearth/_pruning.pyx because it depends on ./pyearth/_util.pxd. #11 4.284 Compiling pyearth/_forward.pyx because it depends on ./pyearth/_util.pxd. #11 4.284 Compiling pyearth/_knot_search.pyx because it depends on ./pyearth/_util.pxd. #11 4.284 [1/4] Cythonizing pyearth/_basis.pyx #11 4.284 [2/4] Cythonizing pyearth/_forward.pyx #11 4.284 [3/4] Cythonizing pyearth/_knot_search.pyx #11 4.284 [4/4] Cythonizing pyearth/_pruning.pyx #11 4.294 /usr/local/lib/python3.10/site-packages/setuptools/dist.py:771: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead #11 4.294 warnings.warn( #11 4.295 /usr/local/lib/python3.10/site-packages/setuptools/config/setupcfg.py:463: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. #11 4.295 warnings.warn(msg, warning_class) #11 4.320 running install #11 4.320 /usr/local/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. #11 4.320 warnings.warn( #11 4.345 /usr/local/lib/python3.10/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. #11 4.345 warnings.warn( #11 4.484 running bdist_egg #11 4.498 running egg_info #11 4.498 creating sklearn_contrib_py_earth.egg-info #11 4.502 writing sklearn_contrib_py_earth.egg-info/PKG-INFO #11 4.502 writing dependency_links to sklearn_contrib_py_earth.egg-info/dependency_links.txt #11 4.502 writing requirements to sklearn_contrib_py_earth.egg-info/requires.txt #11 4.502 writing top-level names to sklearn_contrib_py_earth.egg-info/top_level.txt #11 4.503 writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' #11 4.508 reading manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' #11 4.508 reading manifest template 'MANIFEST.in' #11 4.509 warning: no files found matching 'pyearth/test/pathological_data' #11 4.509 adding license file 'LICENSE.txt' #11 4.510 writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' #11 4.510 installing library code to build/bdist.linux-x86_64/egg #11 4.510 running install_lib #11 4.510 running build_py #11 4.517 creating build #11 4.518 creating build/lib.linux-x86_64-cpython-310 #11 4.518 creating build/lib.linux-x86_64-cpython-310/pyearth #11 4.518 copying pyearth/export.py -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.518 copying pyearth/earth.py -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.518 copying pyearth/_version.py -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.518 copying pyearth/init.py -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.519 creating build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.519 copying pyearth/test/test_forward.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.519 copying pyearth/test/test_export.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.519 copying pyearth/test/test_earth.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/test_qr.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/test_knot_search.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/test_pruning.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/init.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/test_util.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.520 copying pyearth/test/testing_utils.py -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.521 creating build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.521 copying pyearth/test/basis/test_hinge.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.521 copying pyearth/test/basis/test_basis.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.521 copying pyearth/test/basis/test_linear.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.521 copying pyearth/test/basis/base.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.522 copying pyearth/test/basis/test_missingness.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.522 copying pyearth/test/basis/test_constant.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.522 copying pyearth/test/basis/init.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.522 copying pyearth/test/basis/test_smoothed_hinge.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/basis #11 4.522 creating build/lib.linux-x86_64-cpython-310/pyearth/test/record #11 4.522 copying pyearth/test/record/test_pruning_pass.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/record #11 4.523 copying pyearth/test/record/test_forward_pass.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/record #11 4.523 copying pyearth/test/record/init.py -> build/lib.linux-x86_64-cpython-310/pyearth/test/record #11 4.524 copying pyearth/_basis.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.525 copying pyearth/_basis.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.525 copying pyearth/_forward.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.526 copying pyearth/_forward.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.526 copying pyearth/_knot_search.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.527 copying pyearth/_knot_search.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.527 copying pyearth/_pruning.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.528 copying pyearth/_pruning.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.528 copying pyearth/_qr.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.529 copying pyearth/_qr.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.529 copying pyearth/_record.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.530 copying pyearth/_record.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.530 copying pyearth/_types.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.531 copying pyearth/_types.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.531 copying pyearth/_util.c -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.531 copying pyearth/_util.pxd -> build/lib.linux-x86_64-cpython-310/pyearth #11 4.531 copying pyearth/test/earth_linvars_regress.txt -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.531 copying pyearth/test/earth_regress.txt -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.532 copying pyearth/test/earth_regress_missing_data.txt -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.532 copying pyearth/test/earth_regress_smooth.txt -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.532 copying pyearth/test/forward_regress.txt -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.532 copying pyearth/test/test_data.csv -> build/lib.linux-x86_64-cpython-310/pyearth/test #11 4.533 UPDATING build/lib.linux-x86_64-cpython-310/pyearth/_version.py #11 4.533 set build/lib.linux-x86_64-cpython-310/pyearth/_version.py to '0.1.0+1.gdde5f89.dirty' #11 4.533 running build_ext #11 4.536 building 'pyearth._util' extension #11 4.536 creating build/temp.linux-x86_64-cpython-310 #11 4.536 creating build/temp.linux-x86_64-cpython-310/pyearth #11 4.536 gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/lib/python3.10/site-packages/numpy/core/include -I/usr/local/include/python3.10 -c pyearth/_util.c -o build/temp.linux-x86_64- cpython-310/pyearth/_util.o #11 4.581 In file included from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948, #11 4.581 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12, #11 4.581 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5, #11 4.581 from pyearth/_util.c:625: #11 4.581 /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #11 4.581 #warning "Using deprecated NumPy API, disable it with "
    #11 4.581 ^~~~~~~ #11 4.606 pyearth/_util.c: In function ‘__Pyx_ParseOptionalKeywords’: #11 4.606 pyearth/_util.c:7935:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.606 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.606 ^ #11 4.606 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.606 from /usr/local/include/python3.10/Python.h:83, #11 4.606 from pyearth/_util.c:24: #11 4.606 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.606 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.606 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.606 pyearth/_util.c:7935:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 4.606 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.606 ^ #11 4.606 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.606 from /usr/local/include/python3.10/Python.h:83, #11 4.606 from pyearth/_util.c:24: #11 4.606 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 4.606 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 4.606 ^~~~~~~~~~~~~~~~~~~ #11 4.607 pyearth/_util.c:7935:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.607 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.607 ^ #11 4.607 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.607 from /usr/local/include/python3.10/Python.h:83, #11 4.607 from pyearth/_util.c:24: #11 4.607 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.607 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.607 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.607 pyearth/_util.c:7935:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.607 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.607 ^ #11 4.607 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.607 from /usr/local/include/python3.10/Python.h:83, #11 4.607 from pyearth/_util.c:24: #11 4.607 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.607 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.607 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.607 pyearth/_util.c:7935:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 4.607 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.607 ^ #11 4.607 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.607 from /usr/local/include/python3.10/Python.h:83, #11 4.607 from pyearth/_util.c:24: #11 4.607 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 4.607 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 4.607 ^~~~~~~~~~~~~~~~~~~ #11 4.608 pyearth/_util.c:7935:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.608 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.608 ^ #11 4.608 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.608 from /usr/local/include/python3.10/Python.h:83, #11 4.608 from pyearth/_util.c:24: #11 4.608 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.608 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.608 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.608 pyearth/_util.c:7951:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.608 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.608 ^ #11 4.608 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.608 from /usr/local/include/python3.10/Python.h:83, #11 4.608 from pyearth/_util.c:24: #11 4.608 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.608 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.608 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.609 pyearth/_util.c:7951:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 4.609 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.609 ^ #11 4.609 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.609 from /usr/local/include/python3.10/Python.h:83, #11 4.609 from pyearth/_util.c:24: #11 4.609 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 4.609 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 4.609 ^~~~~~~~~~~~~~~~~~~ #11 4.609 pyearth/_util.c:7951:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.609 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.609 ^ #11 4.609 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.609 from /usr/local/include/python3.10/Python.h:83, #11 4.609 from pyearth/_util.c:24: #11 4.609 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.609 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.609 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.609 pyearth/_util.c:7951:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.609 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.609 ^ #11 4.609 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.609 from /usr/local/include/python3.10/Python.h:83, #11 4.609 from pyearth/_util.c:24: #11 4.609 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.609 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.609 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 4.610 pyearth/_util.c:7951:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 4.610 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.610 ^ #11 4.610 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.610 from /usr/local/include/python3.10/Python.h:83, #11 4.610 from pyearth/_util.c:24: #11 4.610 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 4.610 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 4.610 ^~~~~~~~~~~~~~~~~~~ #11 4.610 pyearth/_util.c:7951:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 4.610 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 4.610 ^ #11 4.610 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 4.610 from /usr/local/include/python3.10/Python.h:83, #11 4.610 from pyearth/_util.c:24: #11 4.610 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 4.610 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 4.610 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 6.069 gcc -pthread -shared build/temp.linux-x86_64-cpython-310/pyearth/_util.o -L/usr/local/lib -o build/lib.linux-x86_64-cpython-310/pyearth/_util.cpython-310-x86_64-linux-gnu.so #11 6.085 building 'pyearth._basis' extension #11 6.085 gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/lib/python3.10/site-packages/numpy/core/include -I/usr/local/include/python3.10 -c pyearth/_basis.c -o build/temp.linux-x86_64 -cpython-310/pyearth/_basis.o #11 6.126 In file included from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948, #11 6.126 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12, #11 6.126 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5, #11 6.126 from pyearth/_basis.c:770: #11 6.126 /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #11 6.126 #warning "Using deprecated NumPy API, disable it with "
    #11 6.126 ^~~~~~~ #11 13.06 gcc -pthread -shared build/temp.linux-x86_64-cpython-310/pyearth/_basis.o -L/usr/local/lib -o build/lib.linux-x86_64-cpython-310/pyearth/_basis.cpython-310-x86_64-linux-gnu.so #11 13.09 building 'pyearth._record' extension #11 13.09 gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/lib/python3.10/site-packages/numpy/core/include -I/usr/local/include/python3.10 -c pyearth/_record.c -o build/temp.linux-x86_6 4-cpython-310/pyearth/_record.o #11 13.13 In file included from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948, #11 13.13 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12, #11 13.13 from /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5, #11 13.13 from pyearth/_record.c:625: #11 13.13 /usr/local/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #11 13.13 #warning "Using deprecated NumPy API, disable it with "
    #11 13.13 ^~~~~~~ #11 13.17 pyearth/_record.c: In function ‘__Pyx_modinit_type_init_code’: #11 13.18 pyearth/_record.c:15613:39: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_Record.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15628:50: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_PruningPassRecord.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15640:50: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_ForwardPassRecord.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15651:42: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_Iteration.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15664:53: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_PruningPassIteration.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15675:58: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_FirstPruningPassIteration.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15688:53: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_ForwardPassIteration.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.18 pyearth/_record.c:15700:58: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’; did you mean ‘tp_dict’? #11 13.18 __pyx_type_7pyearth_7_record_FirstForwardPassIteration.tp_print = 0; #11 13.18 ^~~~~~~~ #11 13.18 tp_dict #11 13.20 pyearth/_record.c: In function ‘__Pyx_ParseOptionalKeywords’: #11 13.20 pyearth/_record.c:16858:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16858:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 13.20 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 13.20 ^~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16858:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16858:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16858:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 13.20 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 13.20 ^~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16858:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 13.20 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 13.20 ^~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here #11 13.20 Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( #11 13.20 ^~~~~~~~~~~~~~~~~~~ #11 13.20 pyearth/_record.c:16874:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] #11 13.20 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #11 13.20 ^ #11 13.20 In file included from /usr/local/include/python3.10/unicodeobject.h:1046, #11 13.20 from /usr/local/include/python3.10/Python.h:83, #11 13.20 from pyearth/_record.c:24: #11 13.20 /usr/local/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here #11 13.20 static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { #11 13.20 ^~~~~~~~~~~~~~~~~~~~~~~~~~ #11 13.27 error: command '/usr/bin/gcc' failed with exit code 1


    executor failed running [/bin/sh -c python setup.py install -qq --cythonize]: exit code: 1

    opened by akanarik 0
  • Can't Install on Mac OSX 11.x (Big Sur)

    Can't Install on Mac OSX 11.x (Big Sur)

    Assuming I understand the below error correctly, could you please add support for installation on Mac OSX 11 (Big Sur)? Thanks for all you do!

    running install running bdist_egg running egg_info writing requirements to sklearn_contrib_py_earth.egg-info/requires.txt writing sklearn_contrib_py_earth.egg-info/PKG-INFO writing top-level names to sklearn_contrib_py_earth.egg-info/top_level.txt writing dependency_links to sklearn_contrib_py_earth.egg-info/dependency_links.txt reading manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'pyearth/test/pathological_data' writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' installing library code to build/bdist.macosx-11.2-x86_64/egg running install_lib running build_py UPDATING build/lib.macosx-11.2-x86_64-2.7/pyearth/_version.py set build/lib.macosx-11.2-x86_64-2.7/pyearth/_version.py to '0.1.0' running build_ext building 'pyearth._util' extension cc -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -iwithsysroot /usr/local/libressl/include -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c pyearth/_util.c -o build/temp.macosx-11.2-x86_64-2.7/pyearth/_util.o clang: error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.2' error: command 'cc' failed with exit status 1

    opened by bxg682 2
  • Fit() function throwing a TypeError

    Fit() function throwing a TypeError

    Package version i am using:

    Name: sklearn-contrib-py-earth Version: 0.1.0

    Here's the call trace from where the issue is originating.

    File "C:\Users\NikhilVeeresh\anaconda3\envs\KP-2269-Formula\lib\site-packages\sklearn\cluster_kmeans.py", line 1035, in fit self._check_params(X) File "C:\Users\NikhilVeeresh\anaconda3\envs\KP-2269-Formula\lib\site-packages\sklearn\cluster_kmeans.py", line 943, in _check_params self._n_threads = _openmp_effective_n_threads(self._n_threads) File "sklearn\utils_openmp_helpers.pyx", line 18, in sklearn.utils._openmp_helpers._openmp_effective_n_threads File "sklearn\utils_openmp_helpers.pyx", line 54, in sklearn.utils._openmp_helpers._openmp_effective_n_threads TypeError: '<' not supported between instances of 'tuple' and 'int'

    opened by NikhilVeeresh 2
Releases(0.1.0)
Owner
scikit-learn compatible projects
With this algorithm you can see all best positions for a Team.

Best Positions Imagine that you have a favorite team, and you want to know until wich position your team can reach With this algorithm you can see all

darlyn 4 Jan 28, 2022
This repository explores an implementation of Grover's Algorithm for knights on a chessboard.

Grover Knights Welcome to my Knights project! Project Description: I explore an implementation of a quantum oracle for knights on a chessboard.

Will Sun 8 Feb 22, 2022
Ralebel is an interpreted, Haitian Creole programming language that aims to help Haitians by starting with the fundamental algorithm

Ralebel is an interpreted, Haitian Creole programming language that aims to help Haitians by starting with the fundamental algorithm

Lub Lorry Lamysère 5 Dec 01, 2022
An open source algorithm and dataset for finding poop in pictures.

The shitspotter module is where I will be work on the "shitspotter" poop-detection algorithm and dataset. The primary goal of this work is to allow for the creation of a phone app that finds where yo

Jon Crall 29 Nov 29, 2022
A tictactoe where you never win, implemented using minimax algorithm

Unbeatable_TicTacToe A tictactoe where you never win, implemented using minimax algorithm Requirements Make sure you have the pygame module along with

Jessica Jolly 3 Jul 28, 2022
Leveraging Unique CPS Properties to Design Better Privacy-Enhancing Algorithms

Differential_Privacy_CPS Python implementation of the research paper Leveraging Unique CPS Properties to Design Better Privacy-Enhancing Algorithms Re

Shubhesh Anand 2 Dec 14, 2022
Greedy Algorithm-Problem Solving

MAX-MIN-Hackrrank-Python-Solution Greedy Algorithm-Problem Solving You will be given a list of integers, , and a single integer . You must create an a

Mahesh Nagargoje 3 Jul 13, 2021
Dynamic Programming-Join Optimization Algorithm

DP-JOA Join optimization is the process of optimizing the joining, or combining, of two or more tables in a database. Here is a simple join optimizati

Haoze Zhou 3 Feb 03, 2022
All algorithms implemented in Python for education

The Algorithms - Python All algorithms implemented in Python - for education Implementations are for learning purposes only. As they may be less effic

1 Oct 20, 2021
causal-learn: Causal Discovery for Python

causal-learn: Causal Discovery for Python Causal-learn is a python package for causal discovery that implements both classical and state-of-the-art ca

589 Dec 29, 2022
Sign data using symmetric-key algorithm encryption.

Sign data using symmetric-key algorithm encryption. Validate signed data and identify possible validation errors. Uses sha-(1, 224, 256, 385 and 512)/hmac for signature encryption. Custom hash algori

Artur Barseghyan 39 Jun 10, 2022
FLIght SCheduling OPTimization - a simple optimization library for flight scheduling and related problems in the discrete domain

Fliscopt FLIght SCheduling OPTimization 🛫 or fliscopt is a simple optimization library for flight scheduling and related problems in the discrete dom

33 Dec 17, 2022
Algorithms and utilities for SAR sensors

WARNING: THIS CODE IS NOT READY FOR USE Sarsen Algorithms and utilities for SAR sensors Objectives Be faster and simpler than ESA SNAP and cloud nativ

B-Open 201 Dec 27, 2022
Xor encryption and decryption algorithm

Folosire: Pentru encriptare: python encrypt.py parola fișier pentru criptare fișier encriptat(de tip binar) Pentru decriptare: python decrypt.p

2 Dec 05, 2021
This project is an implementation of a simple K-means algorithm

Simple-Kmeans-Clustering-Algorithm Abstract K-means is a centroid-based algorithm, or a distance-based algorithm, where we calculate the distances to

Saman Khamesian 7 Aug 09, 2022
Implementation for Evolution of Strategies for Cooperation

Moraliser Implementation for Evolution of Strategies for Cooperation Dependencies You will need a python3 (= 3.8) environment to run the code. Before

1 Dec 21, 2021
RRT algorithm and its optimization

RRT-Algorithm-Visualisation This is a project that aims to develop upon the RRT

Sarannya Bhattacharya 7 Mar 06, 2022
A library for benchmarking, developing and deploying deep learning anomaly detection algorithms

A library for benchmarking, developing and deploying deep learning anomaly detection algorithms Key Features • Getting Started • Docs • License Introd

OpenVINO Toolkit 1.5k Jan 04, 2023
TikTok X-Gorgon & X-Khronos Generation Algorithm

TikTok X-Gorgon & X-Khronos Generation Algorithm X-Gorgon and X-Khronos headers are required to call tiktok api. I will provide you API as rental or s

TikTokMate 31 Dec 01, 2022
Pathfinding visualizer in pygame: A*

Pathfinding Visualizer A* What is this A* algorithm ? Simply put, it is an algorithm that aims to find the shortest possible path between two location

0 Feb 26, 2022