DistrictDataLabs / yellowbrick

Visual analysis and diagnostic tools to facilitate machine learning model selection.
http://www.scikit-yb.org/
Apache License 2.0
4.3k stars 559 forks source link

include a progress indicator for methods which iterates through multiple params #1222

Closed vikramsoni2 closed 2 years ago

vikramsoni2 commented 2 years ago

Describe the solution you'd like Add a tqdm progressbar for the methods to get an indicator/estimation of time for gridsearch or paramsearch. we can add a default parameter "verbose" or "progress" which can enable/disable progressbar and provides compatiblity.

Is your feature request related to a problem? Please describe. When fitting the VIsualizer with my model to try multiple parameters where the fit method uses for loop to iterate and collect the returned metric, if I try a range of parameters, it takes a lot of time processing and there is no indicator of the progress. Adding a tqdm progressbar would give an idea about how much is completed and how many to go.

Examples for example: KElbowVisualizer fit method when I want to find the optimal number of cluster takes a lot of time. adding a progressbar would be a good idea.

vikramsoni2 commented 2 years ago

found duplicate. However, it looks like it was gone stale. I think its a good idea to add tqdm as optional dependency which is only required when needed.

rebeccabilbro commented 2 years ago

Hello @vikramsoni2 and thanks for checking out Yellowbrick! Thank you also for searching through the history of our issues and PRs to look for duplicates; that was very considerate! Indeed, the question of integrating something like tqdm has come up before.

Ultimately, we opted not to include it. Adding tqdm would increase Yellowbrick's dependencies and make it more difficult to use Yellowbrick in deployed contexts as well as more challenging for us to maintain. You can read more about our decision here. That thread does include some alternatives that you could consider; for instance if you'd like to open a PR that makes tqdm an optional dependency, we'd be happy to review it.

For now I'll close this issue, but let us know if you have any novel ideas for integrating a progress bar in a way that would not complicate Yellowbrick's usage in deployments and from a maintenance perspective. Thank you again for using Yellowbrick!