Skip to content

yellowbrick is incompatible with sklearn v1.7.0 #1327

@jakevdp

Description

@jakevdp
$ pip list | grep scikit-learn
scikit-learn                          1.7.0

$ git clone https://github.com/DistrictDataLabs/yellowbrick.git
Cloning into 'yellowbrick'...
remote: Enumerating objects: 10868, done.
remote: Counting objects: 100% (292/292), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 10868 (delta 223), reused 149 (delta 148), pack-reused 10576 (from 3)
Receiving objects: 100% (10868/10868), 78.95 MiB | 13.57 MiB/s, done.
Resolving deltas: 100% (6621/6621), done.

$ cd yellowbrick && pytest . -k test_wrapper --tb=short
============================= test session starts ==============================
platform linux -- Python 3.11.13, pytest-8.4.0, pluggy-1.6.0
rootdir: /content
plugins: flakes-4.0.5, langsmith-0.3.44, typeguard-4.4.2, anyio-4.9.0
collected 1158 items / 1139 deselected / 19 selected                           

yellowbrick/tests/test_contrib/test_wrapper.py ....FF.F...ss             [ 68%]
yellowbrick/tests/test_utils/test_wrapper.py ......                      [100%]

=================================== FAILURES ===================================
_________________ TestContribWrapper.test_wraps_is_classifier __________________
yellowbrick/yellowbrick/contrib/wrapper.py:129: in __getattr__
    return getattr(self.estimator, attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   AttributeError: 'ThirdPartyEstimator' object has no attribute '__sklearn_tags__'

During handling of the above exception, another exception occurred:
yellowbrick/tests/test_contrib/test_wrapper.py:116: in test_wraps_is_classifier
    assert sk_is_classifier(tpe)
           ^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/base.py:1211: in is_classifier
    return get_tags(estimator).estimator_type == "classifier"
           ^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/utils/_tags.py:325: in get_tags
    tags = estimator.__sklearn_tags__()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
yellowbrick/yellowbrick/contrib/wrapper.py:131: in __getattr__
    raise YellowbrickAttributeError((
E   yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the '__sklearn_tags__' attribute, which is required for this visualizer - please see the third party estimators documentation.
__________________ TestContribWrapper.test_wraps_is_regressor __________________
yellowbrick/yellowbrick/contrib/wrapper.py:129: in __getattr__
    return getattr(self.estimator, attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   AttributeError: 'ThirdPartyEstimator' object has no attribute '__sklearn_tags__'

During handling of the above exception, another exception occurred:
yellowbrick/tests/test_contrib/test_wrapper.py:124: in test_wraps_is_regressor
    assert sk_is_regressor(tpe)
           ^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/base.py:1251: in is_regressor
    return get_tags(estimator).estimator_type == "regressor"
           ^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/utils/_tags.py:325: in get_tags
    tags = estimator.__sklearn_tags__()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
yellowbrick/yellowbrick/contrib/wrapper.py:131: in __getattr__
    raise YellowbrickAttributeError((
E   yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the '__sklearn_tags__' attribute, which is required for this visualizer - please see the third party estimators documentation.
______________ TestContribWrapper.test_wraps_is_outlier_detector _______________
yellowbrick/yellowbrick/contrib/wrapper.py:129: in __getattr__
    return getattr(self.estimator, attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   AttributeError: 'ThirdPartyEstimator' object has no attribute '__sklearn_tags__'

During handling of the above exception, another exception occurred:
yellowbrick/tests/test_contrib/test_wrapper.py:138: in test_wraps_is_outlier_detector
    assert sk_is_outlier_detector(tpe)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/base.py:1318: in is_outlier_detector
    return get_tags(estimator).estimator_type == "outlier_detector"
           ^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.11/dist-packages/sklearn/utils/_tags.py:325: in get_tags
    tags = estimator.__sklearn_tags__()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
yellowbrick/yellowbrick/contrib/wrapper.py:131: in __getattr__
    raise YellowbrickAttributeError((
E   yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the '__sklearn_tags__' attribute, which is required for this visualizer - please see the third party estimators documentation.
=========================== short test summary info ============================
FAILED yellowbrick/tests/test_contrib/test_wrapper.py::Third party ContribEstimator wrapper::Assert a wrapped estimator passes is_classifier check - yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the ...
FAILED yellowbrick/tests/test_contrib/test_wrapper.py::Third party ContribEstimator wrapper::Assert a wrapped estimator passes is_regressor check - yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the ...
FAILED yellowbrick/tests/test_contrib/test_wrapper.py::Third party ContribEstimator wrapper::Assert a wrapped estimator passes is_outlier_detector check - yellowbrick.exceptions.YellowbrickAttributeError: estimator is missing the ...
=========== 3 failed, 14 passed, 2 skipped, 1139 deselected in 9.46s ===========

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions