Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature range parameter support - Unit Tests #1

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

CodeBeaverAI
Copy link
Owner

I started working from Feature range parameter support.

👋 I'm an AI agent who writes, runs, and maintains Unit Tests. I even highlight the bugs I spot! I'm free for open-source repos.
🔄 8 test files added and 12 test files updated to reflect recent changes.
🐛 Found 7 bugs
🛠️ 503/641 tests passed

🔄 Test Updates

I've added or updated 13 tests. They all pass ☑️
Updated Tests:

  • mlxtend/frequent_patterns/tests/test_association_rules.py 🩹

    Fixed: mlxtend/frequent_patterns/tests/test_association_rules.py::test_default

  • mlxtend/evaluate/tests/test_bias_variance_decomp.py 🩹

    Fixed: mlxtend/evaluate/tests/test_bias_variance_decomp.py::test_01_loss_bagging

  • mlxtend/evaluate/tests/test_bias_variance_decomp.py 🩹

    Fixed: mlxtend/evaluate/tests/test_bias_variance_decomp.py::test_mse_bagging

  • mlxtend/evaluate/tests/test_bias_variance_decomp.py 🩹

    Fixed: mlxtend/evaluate/tests/test_bias_variance_decomp.py::test_keras

  • mlxtend/feature_selection/tests/test_column_selector.py 🩹

    Fixed: mlxtend/feature_selection/tests/test_column_selector.py::test_ColumnSelector_with_dataframe

  • mlxtend/feature_selection/tests/test_column_selector.py 🩹

    Fixed: mlxtend/feature_selection/tests/test_column_selector.py::test_ColumnSelector_with_dataframe_and_int_columns

  • mlxtend/feature_selection/tests/test_column_selector.py 🩹

    Fixed: mlxtend/feature_selection/tests/test_column_selector.py::test_ColumnSelector_with_dataframe_drop_axis

  • mlxtend/feature_selection/tests/test_column_selector.py 🩹

    Fixed: mlxtend/feature_selection/tests/test_column_selector.py::test_ColumnSelector_with_dataframe_in_gridsearch

  • mlxtend/preprocessing/tests/test_transactionencoder.py 🩹

    Fixed: mlxtend/preprocessing/tests/test_transactionencoder.py::test_inverse_transform

  • mlxtend/classifier/tests/test_logistic_regression.py 🩹

    Fixed: mlxtend/classifier/tests/test_logistic_regression.py::test_invalid_labels_1

  • mlxtend/classifier/tests/test_perceptron.py 🩹

    Fixed: mlxtend/classifier/tests/test_perceptron.py::test_invalid_labels_1

  • mlxtend/classifier/tests/test_adaline.py 🩹

    Fixed: mlxtend/classifier/tests/test_adaline.py::test_invalid_labels_1

New Tests:

  • mlxtend/_base/tests/test_base_model.py

🐛 Bug Detection

Potential issues found in the following files:

  • mlxtend/classifier/multilayerperceptron.py

    The error message shows that np.float_ was removed in NumPy 2.0 and should be replaced with np.float64. The MLxtend code uses np.float_ inside the _fit method (when calling _one_hot), which causes the error regardless of the tests. This error is not due to the way the tests are written or the test settings; rather, it is due to the use of a deprecated/removed NumPy alias in the implementation code of MultiLayerPerceptron.

To fix the error, the dtype argument should be updated from np.float_ to np.float64 (or another appropriate float type). This change in the code is the necessary correction.
Thus, the error was caused by a bug in the code being tested.

Test Error Log ``` mlxtend/classifier/tests/test_multilayerperceptron.py::test_multiclass_gd_acc: def test_multiclass_gd_acc(): mlp = MLP(epochs=20, eta=0.05, hidden_layers=[10], minibatches=1, random_seed=1) > mlp.fit(X, y) mlxtend/classifier/tests/test_multilayerperceptron.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ mlxtend/_base/_classifier.py:81: in fit self._fit(X=X, y=y, init_params=init_params) mlxtend/classifier/multilayerperceptron.py:147: in _fit y_enc = self._one_hot(y=y, n_labels=self.n_classes, dtype=np.float_) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attr = 'float_' def __getattr__(attr): # Warn for expired attributes import warnings
    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_progress_1: def test_progress_1():
mlp = MLP(
epochs=1,
eta=0.05,
hidden_layers=[10],
minibatches=1,
print_progress=1,
random_seed=1,
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:43:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_progress_2: def test_progress_2():
mlp = MLP(
epochs=1,
eta=0.05,
hidden_layers=[10],
minibatches=1,
print_progress=2,
random_seed=1,
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:55:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_progress_3: def test_progress_3():
mlp = MLP(
epochs=1,
eta=0.05,
hidden_layers=[10],
minibatches=1,
print_progress=3,
random_seed=1,
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:67:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_predict_proba: def test_predict_proba():
mlp = MLP(epochs=20, eta=0.05, hidden_layers=[10], minibatches=1, random_seed=1)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:72:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_multiclass_sgd_acc: def test_multiclass_sgd_acc():
mlp = MLP(
epochs=20, eta=0.05, hidden_layers=[25], minibatches=len(y), random_seed=1
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:83:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_multiclass_minibatch_acc: def test_multiclass_minibatch_acc():
mlp = MLP(epochs=20, eta=0.05, hidden_layers=[25], minibatches=5, random_seed=1)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:90:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_binary_gd: def test_binary_gd():
mlp = MLP(epochs=20, eta=0.05, hidden_layers=[25], minibatches=5, random_seed=1)

  mlp.fit(X_bin, y_bin)

mlxtend/classifier/tests/test_multilayerperceptron.py:109:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_score_function: def test_score_function():
mlp = MLP(epochs=20, eta=0.05, hidden_layers=[25], minibatches=5, random_seed=1)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:115:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_decay_function: def test_decay_function():
mlp = MLP(
epochs=20,
eta=0.05,
decrease_const=0.01,
hidden_layers=[25],
minibatches=5,
random_seed=1,
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:130:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_momentum_1: def test_momentum_1():
mlp = MLP(
epochs=20,
eta=0.05,
momentum=0.1,
hidden_layers=[25],
minibatches=len(y),
random_seed=1,
)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:146:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_multilayerperceptron.py::test_retrain: def test_retrain():
mlp = MLP(epochs=5, eta=0.05, hidden_layers=[10], minibatches=len(y), random_seed=1)

  mlp.fit(X, y)

mlxtend/classifier/tests/test_multilayerperceptron.py:154:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/multilayerperceptron.py:147: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError

</details>
- `mlxtend/classifier/softmax_regression.py`
  > The error originates from the fact that the source code uses “np.float_” as the dtype in the _one_hot call. In NumPy 2.0, np.float_ was removed (or redefined) and replaced by np.float64. This change in NumPy’s API causes an AttributeError when the code still references np.float_. The tests trigger this error when they call SoftmaxRegression.fit(), but the test itself is not erroneous; instead, it’s the underlying library code (the implementation of SoftmaxRegression) that is using the outdated attribute. Therefore, the error is due to a bug in the code being tested, which needs to be updated to use np.float64 instead of np.float_.
  <details><summary>Test Error Log</summary>

mlxtend/classifier/tests/test_softmax_regression.py::test_binary_logistic_regression_gd: def test_binary_logistic_regression_gd():
t = np.array([[0.13, -0.12], [-3.07, 3.05]])
lr = SoftmaxRegression(epochs=200, eta=0.005, minibatches=1, random_seed=1)

  lr.fit(X_bin, y_bin)

mlxtend/classifier/tests/test_softmax_regression.py:43:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/softmax_regression.py:145: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_softmax_regression.py::test_refit_weights: def test_refit_weights():
t = np.array([[0.13, -0.12], [-3.07, 3.05]])
lr = SoftmaxRegression(epochs=100, eta=0.005, minibatches=1, random_seed=1)

  lr.fit(X_bin, y_bin)

mlxtend/classifier/tests/test_softmax_regression.py:52:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/softmax_regression.py:145: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_softmax_regression.py::test_binary_logistic_regression_sgd: def test_binary_logistic_regression_sgd():
t = np.array([[0.13, -0.12], [-3.06, 3.05]])
lr = SoftmaxRegression(epochs=200, eta=0.005, minibatches=len(y_bin), random_seed=1)

  lr.fit(X_bin, y_bin)  # 0, 1 class

mlxtend/classifier/tests/test_softmax_regression.py:66:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/softmax_regression.py:145: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_softmax_regression.py::test_progress_1: def test_progress_1():
lr = SoftmaxRegression(
epochs=1, eta=0.005, minibatches=1, print_progress=1, random_seed=1
)

  lr.fit(X_bin, y_bin)  # 0, 1 class

mlxtend/classifier/tests/test_softmax_regression.py:76:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/softmax_regression.py:145: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib
        return ctypeslib
    elif attr == "exceptions":
        import numpy.exceptions as exceptions
        return exceptions
    elif attr == "testing":
        import numpy.testing as testing
        return testing
    elif attr == "matlib":
        import numpy.matlib as matlib
        return matlib
    elif attr == "f2py":
        import numpy.f2py as f2py
        return f2py
    elif attr == "typing":
        import numpy.typing as typing
        return typing
    elif attr == "rec":
        import numpy.rec as rec
        return rec
    elif attr == "char":
        import numpy.char as char
        return char
    elif attr == "array_api":
        raise AttributeError("`numpy.array_api` is not available from "
                             "numpy 2.0 onwards", name=None)
    elif attr == "core":
        import numpy.core as core
        return core
    elif attr == "strings":
        import numpy.strings as strings
        return strings
    elif attr == "distutils":
        if 'distutils' in __numpy_submodules__:
            import numpy.distutils as distutils
            return distutils
        else:
            raise AttributeError("`numpy.distutils` is not available from "
                                 "Python 3.12 onwards", name=None)

    if attr in __future_scalars__:
        # And future warnings for those that will change, but also give
        # the AttributeError
        warnings.warn(
            f"In the future `np.{attr}` will be defined as the "
            "corresponding NumPy scalar.", FutureWarning, stacklevel=2)

    if attr in __former_attrs__:
        raise AttributeError(__former_attrs__[attr], name=None)

    if attr in __expired_attributes__:
      raise AttributeError(
            f"`np.{attr}` was removed in the NumPy 2.0 release. "
            f"{__expired_attributes__[attr]}",
            name=None
        )

E AttributeError: np.float_ was removed in the NumPy 2.0 release. Use np.float64 instead.
/usr/local/lib/python3.11/site-packages/numpy/init.py:400: AttributeError
mlxtend/classifier/tests/test_softmax_regression.py::test_progress_2: def test_progress_2():
lr = SoftmaxRegression(
epochs=1, eta=0.005, minibatches=1, print_progress=2, random_seed=1
)

  lr.fit(X_bin, y_bin)  # 0, 1 class

mlxtend/classifier/tests/test_softmax_regression.py:84:


mlxtend/_base/_classifier.py:81: in fit
self._fit(X=X, y=y, init_params=init_params)
mlxtend/classifier/softmax_regression.py:145: in _fit
y_enc = self.one_hot(y=y, n_labels=self.n_classes, dtype=np.float)


attr = 'float_'
def getattr(attr):
# Warn for expired attributes
import warnings

    if attr == "linalg":
        import numpy.linalg as linalg
        return linalg
    elif attr == "fft":
        import numpy.fft as fft
        return fft
    elif attr == "dtypes":
        import numpy.dtypes as dtypes
        return dtypes
    elif attr == "random":
        import numpy.random as random
        return random
    elif attr == "polynomial":
        import numpy.polynomial as polynomial
        return polynomial
    elif attr == "ma":
        import numpy.ma as ma
        return ma
    elif attr == "ctypeslib":
        import numpy.ctypeslib as ctypeslib

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant