Skip to content

Releases: DistrictDataLabs/yellowbrick

Version 1.5

21 Aug 12:49
223a252
Compare
Choose a tag to compare

Deployed: Sunday, August 21, 2022
Current Contributors: @stefmolin, @pdamodaran, @SangamSwadiK, @davidgilbertson, @lwgray, @bbengfort, @admo1, @charlesincharge, @uricod, @pdeziel, @rebeccabilbro

Major:

  • Added WordCorrelationPlot Visualizer
  • Built tests for using sklearn pipeline with visualizers
  • Allowed Marker Style to be specified in Validation Curve Visualizer
  • Fixed get_params for estimator wrapper to prevent AttributeError
  • Updated missing values visualizer to handle multiple data types and work on both numpy arrays and pandas data frames.
  • Added pairwise distance metrics to scoring metrics in KElbowVisualizer

Minor

  • Pegged Numba to v0.55.2
  • Updated Umap to v0.5.3
  • Fixed Missing labels in classification report visualizer
  • Updated Numpy to v1.22.0

Documentation

  • The Spanish language Yellowbrick docs are now live: https://www.scikit-yb.org/es/latest/
  • Added Dropping curve documentation
  • Added new example Notebook for Regression Visualizers
  • Fixed Typo in PR section of getting started docs
  • Fixed Typo in rank docs
  • Updated docstring in kneed.py utility file
  • Clarified how to run make html in PR template

Infrastructure

  • Added ability to run linting Actions on PRs
  • Implemented black code formatting as pre-commit hook

Version 1.4

19 Feb 22:49
cbac5e3
Compare
Choose a tag to compare

Deployed: Saturday, February 19, 2022
Current Contributors: @lwgray, @bbengfort, @falcaopetri, @pkaf, @akx, @pdamodaran, @emarkou, @ndanielsen, @rebeccabilbro, @pdeziel, @busFred, @charlesincharge, @wagner2010

Major:

  • Upgrade dependencies to support sklearn v1.0, Numpy 1.20+, Scipy 1.6, nltk 3.6.7, and Matplotlib 3.4.1
  • Implement new set_params and get_params on ModelVisualizers to ensure wrapped estimator is being correctly accessed via the new Estimator methods.
  • Fix the test dependencies to prevent variability in CI (must periodically review dependencies to ensure we're testing what our users are experiencing).
  • Change model param to estimator param to ensure that Visualizer arguments match their property names so that inspect works with get and set params and other scikit-learn utility functions.

Minor

  • Improved argmax handling in DiscriminationThreshold Visualizer
  • Improved error handling in FeatureImportances Visualizer
  • Gave option to remove colorer from ClassificationReport Visualizer
  • Allowed for more flexible KElbow colors that use default palette by default
  • Import scikit-learn private API _safe_indexing without error.
  • Remove any calls to set_params in Visualizer __init__ methods.
  • Modify test fixtures and baseline images to accommodate new sklearn implementation
  • Temporarily set the numpy dependency to be less than 1.20 because this is causing Pickle issues with joblib and umap
  • Add shuffle=True argument to any CV class that uses a random seed.
  • Set our CI matrix to Python and Miniconda 3.7 and 3.8

Bugs

  • Fixed score label display in PredictionError Visualizer
  • Fixed axes limit in PredictionError Visualizer
  • Fixed KElbowVisualizer to handle null cluster encounters
  • Fixed broken url to pytest fixtures
  • Fixed random_state to be in sync with PCA transformer
  • Fixed the inability to place FeatureCorrelations into subplots
  • Fixed hanging printing impacting model visualizers
  • Fixed error handling when decision function models encounter binary data
  • Fixed missing code in README.md

Infrastructure/Housekeeping/documentation

  • Updated status badges for build result and code coverage
  • Removed deprecated pytest-runner from testing
  • Replaced Travis with Github Actions
  • Changed our master branch to the main branch
  • Created a release issue template
  • Updated our CI to test Python 3.8 and 3.9
  • Managed test warnings
  • Adds .gitattributes to fix handle white space changes
  • Updated to use add_css_file for documentation because of deprecation of add_stylesheet
  • Added a Sphinx build to GitHub Actions for ensuring that the docs build correctly
  • Switched to a YB-specific data lake for datasets storage

Version 1.3.post1

13 Feb 20:31
Compare
Choose a tag to compare

Deployed: Saturday, February 13, 2021
Current Contributors: @rebeccabilbro, @bbengfort, @Viveckh

Fixes hanging print impacting ModelVisualizers.

Version 1.3

09 Feb 15:02
Compare
Choose a tag to compare

Deployed: Tuesday, February 9, 2021
Current Contributors: @bbengfort, @rebeccabilbro, @Paulj1989, @phbillet, @pdamodaran, @pdeziel

This version primarily repairs the dependency issues we faced with scipy 1.6, scikit-learn 0.24 and Python 3.6 (or earlier). As part of the rapidly changing Python library landscape, we've been forced to react quickly to dependency changes, even where those libraries have been responsibly issuing future and deprecation warnings in our code base.

Major Changes:

  • Implement new set_params and get_params on ModelVisualizers to ensure wrapped estimator is being correctly accessed via the new Estimator methods.
  • Fix the test dependencies to prevent variability in CI (must periodically review dependencies to ensure we're testing what our users are experiencing).
  • Change model param to estimator param to ensure that Visualizer arguments match their property names so that inspect works with get and set params and other scikit-learn utility functions.

Minor Changes:

  • Import scikit-learn private API _safe_indexing without error.
  • Remove any calls to set_params in Visualizer __init__ methods.
  • Modify test fixtures and baseline images to accommodate new sklearn implementation
  • Set the numpy dependency to be less than 1.20 because this is causing Pickle issues with joblib and umap
  • Add shuffle=True argument to any CV class that uses a random seed.
  • Set our CI matrix to Python and Miniconda 3.7 and 3.8

Hotfix 1.2.1

15 Jan 19:35
d58ab34
Compare
Choose a tag to compare

Deployed: Friday, January 15, 2021
Current Contributors: @rebeccabilbro, @bbengfort, @Paulj1989, @mattharrison

On December 22, 2020, scikit-learn released version 0.24 which deprecated the external use of scikit-learn's internal utilities such as safe_indexing. Unfortunately, Yellowbrick depends on a few of these utilities and must refactor our internal code base to port this functionality or work around it. To ensure that Yellowbrick continues to work when installed via pip, we have temporarily changed our scikit-learn dependency to be less than 0.24. We will update our dependencies on the v1.3 release when we have made the associated fixes.

Version 1.2

09 Oct 19:34
Compare
Choose a tag to compare

Deployed: Friday, October 9, 2020
Current Contributors: @rebeccabilbro, @lwgray, @VladSkripniuk, @Express50, @pdamodaran, @aldermartinez, @tktran, @bbengfort, @melonhead901, @Kautumn06, @ojedatony1616, @eschmier, @wagner2010, @ndanielsen

Major Changes:

  • Added Q-Q plot as side-by-side option to the ResidualsPlot visualizer.
  • More robust handling of binary classification in ROCAUC visualization, standardizing the way that classifiers with predict_proba and decision_function methods are handling. A binary hyperparameter was added to the visualizer to ensure correct interpretation of binary ROCAUC plots.
  • Fixes to ManualAlphaSelection to move it from prototype to prime time including documentation, tests, and quick method. This method allows users to perform alpha selection visualization on non-CV estimators.
  • Removal of AppVeyor from the CI matrix after too many out-of-core (non-Yellowbrick) failures with setup and installation on the VisualStudio images. Yellowbrick CI currently omits Windows and Miniconda from the test matrix and we are actively looking for new solutions.
  • Third party estimator wrapper in contrib to provide enhanced support for non-scikit-learn estimators such as those in Keras, CatBoost, and cuML.

Minor Changes:

  • Allow users to specify colors for the PrecisionRecallCurve.
  • Update ClassificationScoreVisualizer base class to have a class_colors_ learned attribute instead of a colors property; additional polishing of multi-class colors in PrecisionRecallCurve, ROCAUC, and ClassPredictionError.
  • Update KElbowVisualizer fit method and quick method to allow passing sample_weight parameter through the visualizer.
  • Enhancements to classification documentation to better discuss precision and recall and to diagnose with PrecisionRecallCurve and ClassificationReport visualizers.
  • Improvements to CooksDistance visualizer documentation.
  • Corrected KElbowVisualizer label and legend formatting.
  • Typo fixes to ROCAUC documentation, labels, and legend. Typo fix to Manifold documentation.
  • Use of tight_layout accessing the Visualizer figure property to finalize images and resolve discrepancies in plot directive images in documentation.
  • Add get_param_names helper function to identify keyword-only parameters that belong to a specific method.
  • Splits package namespace for yellowbrick.regressor.residuals to move PredictionError to its own module, yellowbrick.regressor.prediction_error.
  • Update tests to use SVC instead of LinearSVC and correct KMeans scores based on updates to scikit-learn v0.23.
  • Continued maintenance and management of baseline images following dependency updates; removal of mpl.cbook dependency.
  • Explicitly include license file in source distribution via MANIFEST.in.
  • Fixes to some deprecation warnings from sklearn.metrics.
  • Testing requirements depends on Pandas v1.0.4 or later.
  • Reintegrates pytest-spec and verbose test logging, updates pytest dependency to v0.5.0 or later.
  • Added Pandas v0.20 or later to documentation dependencies.

Version 1.1

26 Feb 00:11
682b352
Compare
Choose a tag to compare

Deployed: Wednesday, February 12, 2020
Contributors: @rebeccabilbro @bbengfort @Kautumn06 @lwgray @pdamodaran @wagner2010 @mchestnut91, @mgarod, @shivendra90, @naresh-bachwani, @percygautam, @navarretedaniel, @mmorrison1670, @ekwska, @sjainit

Major Changes:

  • Quick methods (aka Oneliners), which return a fully fitted finalized visualizer object in only a single line, are now implemented for all Yellowbrick Visualizers. Test coverage has been added for all quick methods. The documentation has been updated to document and demonstrate the usage of the quick methods.
  • Added Part of Speech tagging for raw text using spaCy and NLTK to POSTagVisualizer.

Minor Changes:

  • Adds Board of Directors minutes for Spring meeting.
  • Miscellaneous documentation corrections and fixes.
  • Miscellaneous CI and testing corrections and fixes.

Hotfix 1.0.1

06 Oct 14:28
dd795b4
Compare
Choose a tag to compare

Deployed: Sunday, October 6, 2019
Contributors: @rebeccabilbro @Kautumn06 @bbengfort

Major API change: the poof() method is now deprecated, please use show() instead. After a significant discussion with community members, we have deprecated our original "make the magic happen" method due to concerns about the usage of the word. We've renamed the original method to and created a stub method with the original name that issues a deprecation warning and calls show().

Major Changes:

  • Changes poof() to show().
  • Updated clustering and regression example notebooks.
  • Fixes a syntax error in Python 3.5 and earlier.
  • Updated Manifold documentation to fix example bug.
  • Added advisors names to the release changelog.
  • Adds advisory board minutes for Fall 2019.
  • Updates our Travis-CI semi-secure token for Slack integration.

Version 1.0

29 Aug 01:14
a27c290
Compare
Choose a tag to compare

Deployed: Wednesday, August 28, 2019
Contributors: @rebeccabilbro @bbengfort @Kautumn06 @lwgray @pdamodaran @naresh-bachwani @ndanielsen @MrDawson @navarretedaniel @fdion @haleemason @discdiver @joeyzhang823 @jimmyshah @jc-healy @justinormont @arvkevi @mgarod @mike-curry00 @naba7 @nickpowersys @percygautam @pswaldia @rohit-ganapathy @rwhitt2049 @Sangarshanan @souravsingh @thomasjpfan @zjpoh @xingularity

Note: Python 2 Deprecation: Please note that this release deprecates Yellowbrick's support for Python 2.7. After careful consideration and following the lead of our primary dependencies (NumPy, scikit-learn, and Matplolib), we have chosen to move forward with the community and support Python 3.4 and later.

Major Changes:

  • New JointPlot visualizer that is specifically designed for machine learning. The new visualizer can compare a feature to a target, features to features, and even feature to feature to target using color. The visualizer gives correlation information at a glance and is designed to work on ML datasets.
  • New PosTagVisualizer is specifically designed for diagnostics around natural language processing and grammar-based feature extraction for machine learning. This new visualizer shows counts of different parts-of-speech throughout a tagged corpus.
  • New datasets module that provide greater support for interacting with Yellowbrick example datasets including support for Pandas, npz, and text corpora.
  • Management repository for Yellowbrick example data, yellowbrick-datasets.
  • Add support for matplotlib 3.0.1 or greater.
  • UMAPVisualizer as an alternative manifold to TSNE for corpus visualization that is fast enough to not require preprocessing PCA or SVD decomposition and preserves higher order similarities and distances.
  • Added ..plot:: directives to the documentation to automatically build the images along with the docs and keep them as up to date as possible. The directives also include the source code making it much simpler to recreate examples.
  • Added target_color_type functionality to determine continuous or discrete color representations based on the type of the target variable.
  • Added alpha param for both test and train residual points in ResidualsPlot.
  • Added frameon param to Manifold.
  • Added frequency sort feature to PosTagVisualizer.
  • Added elbow detection using the "kneedle" method to the KElbowVisualizer.
  • Added governance document outlining new Yellowbrick structure.
  • Added CooksDistance regression visualizer.
  • Updated DataVisualizer to handle target type identification.
  • Extended DataVisualizer and updated its subclasses.
  • Added ProjectionVisualizer base class.
  • Restructured yellowbrick.target, yellowbrick.features, and yellowbrick.model_selection API.
  • Restructured regressor and classifier API.

Minor Changes:

  • Updated Rank2D to include Kendall-Tau metric.
  • Added user specification of ISO F1 values to PrecisionRecallCurve and updated the quick method to accept train and test splits.
  • Added code review checklist and conventions to the documentation and expanded the contributing docs to include other tricks and tips.
  • Added polish to missing value visualizers code, tests, and documentation.
  • Improved RankD tests for better coverage.
  • Added quick method test for DispersionPlot visualizer.
  • BugFix: fixed resolve colors bug in TSNE and UMAP text visualizers and added regression tests to prevent future errors.
  • BugFix: Added support for Yellowbrick palettes to return colormap.
  • BugFix: fixed PrecisionRecallCurve visual display problem with multi-class labels.
  • BugFix: fixed the RFECV step display bug.
  • BugFix: fixed error in distortion score calculation.
  • Extended FeatureImportances documentation and tests for stacked importances and added a warning when stack should be true.
  • Improved the documentation readability and structure.
  • Refreshed the README.md and added testing and documentation READMEs.
  • Updated the gallery to generate thumbnail-quality images.
  • Updated the example notebooks and created a quickstart notebook.
  • Fixed broken links in the documentation.
  • Enhanced the SilhouetteVisualizer with legend and color parameter, while also move labels to the y-axis.
  • Extended FeatureImportances docs/tests for stacked importances.
  • Documented the yellowbrick.download script.
  • Added JOSS citation for "Yellowbrick: Visualizing the Scikit-Learn Model Selection Process".
  • Added new pull request (PR) template.
  • Added alpha param to PCA Decomposition Visualizer.
  • Updated documentation with affiliations.
  • Added a windows_tol for the visual unittest suite.
  • Added stacked barchart to PosTagVisualizer.
  • Let users set colors for FreqDistVisualizer and other ax_bar visualizers.
  • Updated Manifold to extend ProjectionVisualizer.
  • Check if an estimator is already fitted before calling fit method.
  • Ensure poof returns ax.

Compatibility Notes:

  • This version provides support for matplotlib 3.0.1 or greater and drops support for matplotlib versions less than 2.0.
  • This version drops support for Python 2

Hotfix 0.9.1

06 Feb 02:52
d9f4bed
Compare
Choose a tag to compare

This hotfix adds matplotlib3 support by requiring any version of matplotlib except for 3.0.0 which had a backend bug that affected Yellowbrick. Note that this hotfix includes changes to tests that will need to be resolved when merging from develop (see #725).