-
-
Notifications
You must be signed in to change notification settings - Fork 0
sonar_tutorial_part4
Manlio Morini edited this page Jun 12, 2024
·
3 revisions
Ultra comes with different pre-packaged evaluators: for classification tasks the default one is based on Gaussian distributions.
Usually, it's a good and versatile evaluator since it can handle multiclass classification problems.
However the sonar problem is a binary classification problem and could benefit from a specific evaluator: the binary_evaluator
.
Now, consider another variant of the original source code:
src::basic_search<alps_es, src::binary_evaluator<gp::individual>> s(prob);
s.validation_strategy<src::holdout_validation>(prob);
const auto result(s.run(5));
std::cout << "\nCANDIDATE SOLUTION\n"
<< out::c_language << result.best_individual
<< "\n\nACCURACY\n" << *result.best_measurements.accuracy * 100.0
<< '%'
<< "\n\nFITNESS\n" << *result.best_measurements.fitness << '\n';
(full example in examples/sonar05.cc)
Here we use the src::basic_search
class (instead of the usual src::search
) because we want to specify the evaluator.
src::basic_search
also allows specifying the evolution strategy. In this case, we use alps_es
, which is the same strategy used by src::search
and generally shouldn't be altered.