The world's cleanest AutoML library ✨ - Do hyperparameter tuning with the right pipeline abstractions to write clean deep learning production pipelines. Let your pipeline steps have hyperparameter spaces. Design steps in your pipeline like components. Compatible with Scikit-Learn, TensorFlow, and most other libraries, frameworks and MLOps environments.
Mostly, a new file called reporting.py in the AutoML module, allowing to generate statistics on optimisation rounds and other related objects.
A report contains a dataclass of the same subclass-level of itself, so as to be able to
dig into the dataclass so as to observe it, such as to generate statistics and query its information.
The dataclasses represent the results of an AutoML optimization round, even multiple rounds.
These AutoML reports are used to get information from the nested dataclasses, such as to create visuals.
How it works
Just pass the dataclass to the reporting class, and do function calls.
Example usage
Here is how you can use this new code as a end-user:
BaseReport.from_dc(some_auto_ml_dataclass)
Then call the methods for the statistics you want to compute for reporting.
[x] Your local Git username is set to your GitHub username, and your local Git email is set to your GitHub email. This is important to avoid breaking the cla-bot and for your contributions to be linked to your profile. More info: https://github.com/settings/emails
[x] Argument's dimensions and types are specified for new steps (important), with examples in docstrings when needed.
[x] Class names and argument / API variables are very clear: there is no possible ambiguity. They also respect the existing code style (avoid duplicating words for the same concept) and are intuitive.
[x] Use typing like variable: Typing = ... as much as possible. Also use typing for function arguments and return values like def my_func(self, my_list: Dict[int, List[str]]) -> 'OrderedDict[int, str]':.
[x] Classes are documented: their behavior is explained beyond just the title of the class. You may even use the description written in your pull request above to fill some docstrings accurately.
[x] If a numpy array is used, it is important to remember that these arrays are a special type that must be documented accordingly, and that numpy array should not be abused. This is because Neuraxle is a library that is not only limited to transforming numpy arrays. To this effect, numpy steps should probably be located in the existing numpy python files as much as possible, and not be all over the place. The same applies to Pandas DataFrames.
[x] Code coverage is above 90% for the added code for the unit tests.
[x] The above description of the pull request in natural language was used to document the new code inside the code's docstrings so as to have complete documentation, with examples.
[x] Respect the Unit Testing status check
[x] Respect the Codacy status check
[x] Respect the cla-bot status check (unless the cla-bot is truly broken - please try to debug it first)
[x] Code files that were edited were reformatted automatically using PyCharm's Ctrl+Alt+L shortcut. You may have reorganized imports as well.
AutoML Results Visualizations Update
What it is
Mostly, a new file called reporting.py in the AutoML module, allowing to generate statistics on optimisation rounds and other related objects.
A report contains a dataclass of the same subclass-level of itself, so as to be able to dig into the dataclass so as to observe it, such as to generate statistics and query its information. The dataclasses represent the results of an AutoML optimization round, even multiple rounds. These AutoML reports are used to get information from the nested dataclasses, such as to create visuals.
How it works
Just pass the dataclass to the reporting class, and do function calls.
Example usage
Here is how you can use this new code as a end-user:
Then call the methods for the statistics you want to compute for reporting.
Checklist before merging PR.
Things to check each time you contribute:
variable: Typing = ...
as much as possible. Also use typing for function arguments and return values likedef my_func(self, my_list: Dict[int, List[str]]) -> 'OrderedDict[int, str]':
.Ctrl+Alt+L
shortcut. You may have reorganized imports as well.