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

Related tags

Algorithms py-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
null
Resilient Adaptive Parallel sImulator for griD (rapid)

Rapid is an open-source software library that implements a novel “parallel-in-time” (Parareal) algorithm and semi-analytical solutions for co-simulation of integrated transmission and distribution systems.

Richard Lincoln 7 Sep 7, 2022
A lightweight, object-oriented finite state machine implementation in Python with many extensions

transitions A lightweight, object-oriented state machine implementation in Python with many extensions. Compatible with Python 2.7+ and 3.0+. Installa

null 4.7k Jan 1, 2023
A fast python implementation of the SimHash algorithm.

This Python package provides hashing algorithms for computing cohort ids of users based on their browsing history. As such, it may be used to compute cohort ids of users following Google's Federated Learning of Cohorts (FLoC) proposal.

Hybrid Theory 19 Dec 15, 2022
An implementation of ordered dithering algorithm in python as multimedia course project

One way of minimizing the size of an image is to simply reduce the number of bits you use to represent each pixel.

null 7 Dec 2, 2022
A python implementation of the Basic Photometric Stereo Algorithm

Photometric-Stereo A python implementation of the Basic Photometric Stereo Algorithm Result Usage run Photometric_Stereo.py Code Tree |data #原始数据,tga格

null 20 Dec 19, 2022
Implementation of Apriori algorithms via Python

Installing run bellow command for installing all packages pip install -r requirements.txt Data Put csv data under this directory "infrastructure/data

Mahdi Rezaei 0 Jul 25, 2022
This is a Python implementation of the HMRF algorithm on networks with categorial variables.

Salad Salad is an Open Source Python library to segment tissues into different biologically relevant regions based on Hidden Markov Random Fields. The

null 1 Nov 16, 2021
A simple python implementation of A* and bfs algorithm solving Eight-Puzzle

A simple python implementation of A* and bfs algorithm solving Eight-Puzzle

null 2 May 22, 2022
A fast, pure python implementation of the MuyGPs Gaussian process realization and training algorithm.

Fast implementation of the MuyGPs Gaussian process hyperparameter estimation algorithm MuyGPs is a GP estimation method that affords fast hyperparamet

Lawrence Livermore National Laboratory 13 Dec 2, 2022
This is an implementation of the QuickHull algorithm in Python. I

QuickHull This is an implementation of the QuickHull algorithm in Python. It randomly generates a set of points and finds the convex hull of this set

Anant Joshi 4 Dec 4, 2022
Python implementation of Aho-Corasick algorithm for string searching

Python implementation of Aho-Corasick algorithm for string searching

Daniel O'Sullivan 1 Dec 31, 2021
A minimal implementation of the IQRM interference flagging algorithm for radio pulsar and transient searches

A minimal implementation of the IQRM interference flagging algorithm for radio pulsar and transient searches. This module only provides the algorithm that infers a channel mask from some spectral statistic that measures the level of RFI contamination in a time-frequency data block. It should be useful as a reference implementation to developers who wish to integrate IQRM into an existing pipeline / search code.

Vincent Morello 6 Nov 29, 2022
A custom prime algorithm, implementation, and performance code & review

Colander A custom prime algorithm, implementation, and performance code & review Pseudocode Algorithm 1. given a number of primes to find, the followi

Finn Lancaster 3 Dec 17, 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 9, 2022
A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format.

TSP-Nearest-Insertion A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format. Instructions Load a txt file wi

sjas_Phantom 1 Dec 2, 2021
Implementation of an ordered dithering algorithm used in computer graphics

Ordered Dithering Project In this project, we use an ordered dithering method to turn an RGB image, first to a gray scale image and then, turn the gra

null 1 Oct 26, 2021
Implementation of Apriori Algorithm for Association Analysis

Implementation of Apriori Algorithm for Association Analysis

null 3 Nov 14, 2021
implementation of the KNN algorithm on crab biometrics dataset for CS16

crab-knn implementation of the KNN algorithm in Python applied to biometrics data of purple rock crabs (leptograpsus variegatus) to classify the sex o

Andrew W. Chen 1 Nov 18, 2021
Implementation of core NuPIC algorithms in C++

NuPIC Core This repository contains the C++ source code for the Numenta Platform for Intelligent Computing (NuPIC)

Numenta 270 Nov 19, 2022