-
Notifications
You must be signed in to change notification settings - Fork 0
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
Multi armed bandits, solving some issues, and more #59
base: master
Are you sure you want to change the base?
Conversation
… api Now brush can work with different metrics, as long as they are implemented in the cpp library. you can set them with the scorer parameter
But we currently only have the dummy bandit (that does nothing)
…est cases for bandits. Boost as dependence
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it should be based on the type of the SplitBest
child argument. The threshold could be zero for a continuous variable, in which case you don't want to hide it.
I’ll add a new attribute to the split nodes to store the data type of the split feature. This seems to be the most straightforward way to quickly access the dtype of the split feature. |
the type of the attribute for wait, you already have the logic for
|
FYI there are three signatures for brush/src/program/signatures.h Line 354 in ee44ac3
|
… fit Also fixed a python interface problem when setting the scorer for regression problems
This PR implements multi-armed bandits to learn sampling probabilities for terminals, operators, and variation operations.
It also implements an archive (Issue #58).
A new classification metric, average_precision_score, is also implemented (partially solving Issue #57), which was hard to do, especially because I needed it to work with lexicase selection based on single-test evaluations. Currently, lexicase is still based on log loss, but the survival, archive, and final individuals are picked with the average precision score.
It also implements complexity and linear complexity.
I added a feature to abide by feature types from pandas data frames on the Python side (Issue #56). However, this feature has caused me to notice some undesired conversions. Sometimes, I find myself using X.values to avoid copying datatypes from pandas.
There is a progress bar now (Issue #20) and different verbosity levels.
I fixed the mean label so it is no longer weighted, and there have also been many improvements in the logistic nodes for classification problems.
Some new unit tests (mainly in cpp) were implemented.
Performance is not my main concern right now, and I recognize several new TODOs and improvements, but I will focus on that later.