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

Getters for hyperparameters of models #260

Closed
lars-reimann opened this issue May 3, 2023 · 1 comment · Fixed by #306
Closed

Getters for hyperparameters of models #260

lars-reimann opened this issue May 3, 2023 · 1 comment · Fixed by #306
Assignees
Labels
enhancement 💡 New feature or request good first issue Good for newcomers released Included in a release

Comments

@lars-reimann
Copy link
Member

lars-reimann commented May 3, 2023

Is your feature request related to a problem?

It's currently not possible to check the values of hyperparameters of a classifier or regressor using the public API. Since they can only be created by calling the constructor this is not a major issue, yet. However, in the future we might also add capabilities to load pre-trained models. Then the values of their hyperparameters are no longer obvious.

Desired solution

For each hyperparameter of a classifier or regressor add a @property method (a getter). We do NOT want setters in order to maintain immutability. The name of the method should be the same as the name of the attribute with the leading underscore removed.

Example (AdaBoost):

class AdaBoost(Classifier):
    def __init__(self, learning_rate: float = 1.0) -> None:
        # ...
        self._learning_rate = learning_rate

    @property
    def learning_rate(self) -> float:
        return self._learning_rate

Possible alternatives (optional)

No response

Screenshots (optional)

No response

Additional Context (optional)

To test the getters, use them in the existing tests instead of directly accessing the internal attributes (i.e. replace classifier._learning_rate with classifier.learning_rate.

@lars-reimann lars-reimann added enhancement 💡 New feature or request good first issue Good for newcomers labels May 3, 2023
@PhilipGutberlet PhilipGutberlet self-assigned this May 12, 2023
lars-reimann pushed a commit that referenced this issue Jun 1, 2023
## [0.13.0](v0.12.0...v0.13.0) (2023-06-01)

### Features

* add `Choice` class for possible values of hyperparameter ([#325](#325)) ([d511c3e](d511c3e)), closes [#264](#264)
* Add `RangeScaler` transformer ([#310](#310)) ([f687840](f687840)), closes [#141](#141)
* Add methods that tell which columns would be affected by a transformer ([#304](#304)) ([3933b45](3933b45)), closes [#190](#190)
* Getters for hyperparameters of Regression and Classification models ([#306](#306)) ([5c7a662](5c7a662)), closes [#260](#260)
* improve error handling of table ([#308](#308)) ([ef87cc4](ef87cc4)), closes [#147](#147)
* Remove warnings thrown in new `Transformer` methods ([#324](#324)) ([ca046c4](ca046c4)), closes [#323](#323)
@lars-reimann
Copy link
Member Author

🎉 This issue has been resolved in version 0.13.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label Jun 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 💡 New feature or request good first issue Good for newcomers released Included in a release
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants