Repository navigation
Ex-Fuzzy 3.3.0
Ex-Fuzzy 3.3.0 changes what the genetic search optimizes and adds a Pareto search. Seeded fits differ from 3.2.0.
pip install --upgrade ex-fuzzy
Added
- Pareto search:
BaseFuzzyRulesClassifier(algorithm='nsga2')runs
pymoo's NSGA-II on two objectives, the macro F1 with the class-coverage
penalty and the share of conditions used, and keeps the Pareto front in
pareto_front_.fitselects its most accurate solution and
select_pareto_solutionswitches to another. On 61 KEEL datasets, in a
prototype comparison with the MCC objective, the most accurate NSGA-II
solution had 46% fewer conditions and 37% fewer rules than the genetic
algorithm's, for 0.010 lower test accuracy. It needs the pymoo backend and
the built-in loss, and also selects from candidate rules
Changed
- Genetic objective: the search maximizes the macro F1 of the pruned rule
base on the training data instead of its Matthews correlation coefficient,
minus two small penalties:betatimes the share of classes without rules
(default 0.05) andalphatimes the share of the possible antecedent
conditions,nRules * nAnts, that the rule base uses (default 0.03).
reparametrize_loss(alpha, beta)sets these two weights; the rule-length
and effective-rule terms it used to add are gone. On the 43 KEEL datasets
with at most 2,500 samples, optimizing macro F1 instead of MCC raised the
mean test macro F1 by 0.020 and halved how often a class was left without
rules, while the mean test MCC fell by 0.018. With the default penalties,
rule bases on the same datasets had 21% fewer conditions and 14% fewer rules
than without them, at the same test macro F1. Rule selection from mined
candidates (fitwithcandidate_rules) optimizes the same objective and
now prunes rules during the search. Seeded fits, fitted models and
performancediffer from earlier versions, and a rule base without rules
scores-betainstead of 0 - Tournament selection: the pymoo backend runs tournaments of
tournament_sizecandidates (default 3). pymoo's GA ignored the setting
and always ran binary tournaments, so seeded fits of the classifier and of
the regressor, which asks for tournaments of 3, change. Ties go to the first
candidate of a tournament, whose candidates are drawn at random
Fixed
- The core concepts guide described a multi-objective search and a two-stage
workflow through functions that do not exist; it now shows the objective,
reparametrize_lossand rule selection throughfit - The extending guide named a
new_lossmethod; it iscustomized_loss