mi-erasmusmc / Explore

Finding a short and accurate decision rule in disjunctive normal form by exhaustive search
https://mi-erasmusmc.github.io/Explore/
1 stars 1 forks source link

Improvement cutoff sets continuous data #17

Closed AniekMarkus closed 1 month ago

AniekMarkus commented 2 months ago

Reduction in rules possible for continuous data for repeated features across terms with different operators:

For example for 1>AND2>OR2<= these rules are generated -> Candidatemodel:'sepallength'>4.936AND'sepalwidth'>2.604OR'sepalwidth'<=2.604 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'>2.604OR'sepalwidth'<=3.03 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'>2.604OR'sepalwidth'<=3.528 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.03OR'sepalwidth'<=2.604 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.03OR'sepalwidth'<=3.03 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.03OR'sepalwidth'<=3.528 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.528OR'sepalwidth'<=2.604 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.528OR'sepalwidth'<=3.03 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'>3.528OR'sepalwidth'<=3.528 X

But all rules with X can be skipped, only keeping V.

-> Needs changes in NextCutoffSet(). -> Difficulty: NonSoloIncluded/SoloIncluded work per feature-operator instead of per feature?

Opposite example: Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=2.604OR'sepalwidth'>2.604 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=2.604OR'sepalwidth'>3.03 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=2.604OR'sepalwidth'>3.528 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.03OR'sepalwidth'>2.604 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.03OR'sepalwidth'>3.03 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.03OR'sepalwidth'>3.528 V Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.528OR'sepalwidth'>2.604 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.528OR'sepalwidth'>3.03 X Candidatemodel:'sepallength'>4.936AND'sepalwidth'<=3.528OR'sepalwidth'>3.528 X

AniekMarkus commented 2 months ago

For continuous term tuple 1 1 all rules below are generated, but only the bold ones are relevant to keep:

1 > OR 1 <= Candidate model: 'sepallength' > 4.936 OR  'sepallength' <= 4.936 ~ Candidate model: 'sepallength' > 4.936 OR  'sepallength' <= 5.81 ~ Candidate model: 'sepallength' > 4.936 OR  'sepallength' <= 6.784 ~ Candidate model: 'sepallength' > 5.81 OR  'sepallength' <= 4.936 Candidate model: 'sepallength' > 5.81 OR  'sepallength' <= 5.81 ~ Candidate model: 'sepallength' > 5.81 OR  'sepallength' <= 6.784 ~ Candidate model: 'sepallength' > 6.784 OR  'sepallength' <= 4.936 Candidate model: 'sepallength' > 6.784 OR  'sepallength' <= 5.81 Candidate model: 'sepallength' > 6.784 OR  'sepallength' <= 6.784 ~

AniekMarkus commented 2 months ago

Outputs after code update:

1 > AND 2 > OR 2 <= -> CORRECT Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03

1 > AND 2 <= OR 2 > -> CORRECT Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.03 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.528 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' > 3.528 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.03 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.528 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' > 3.528 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.03 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' > 3.528 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' > 3.528

1 > AND 1 <= -> CORRECT Candidate model: 'sepallength' > 4.936 AND 'sepallength' <= 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepallength' <= 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepallength' <= 6.784

1 > OR 1 <= -> CORRECT Candidate model: 'sepallength' > 5.81 OR 'sepallength' <= 4.936 Candidate model: 'sepallength' > 6.784 OR 'sepallength' <= 4.936 Candidate model: 'sepallength' > 6.784 OR 'sepallength' <= 5.81

AniekMarkus commented 2 months ago

Incorrect: 1>AND2<=OR1> Candidatemodel:'sepallength'>5.81AND'sepalwidth'<=2.604OR'sepallength'>5.81 Candidatemodel:'sepallength'>5.81AND'sepalwidth'<=2.604OR'sepallength'>6.784 Candidatemodel:'sepallength'>5.81AND'sepalwidth'<=3.03OR'sepallength'>6.784 Candidatemodel:'sepallength'>5.81AND'sepalwidth'<=3.528OR'sepallength'>6.784 Candidatemodel:'sepallength'>6.784AND'sepalwidth'<=2.604OR'sepallength'>4.936 Candidatemodel:'sepallength'>6.784AND'sepalwidth'<=3.03OR'sepallength'>5.81 Candidatemodel:'sepallength'>6.784AND'sepalwidth'<=3.528OR'sepallength'>6.784

Correction in initialisation: 1 > AND 2 <= OR 1 > Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 4.936 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 6.784

Correction in increment/max cutoff: Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 5.81 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 2.604 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.03 OR 'sepallength' > 6.784 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.528 OR 'sepallength' > 6.784

AniekMarkus commented 2 months ago

Incorrect: 1<=AND4>OR4> Candidatemodel:'sepallength'<=4.936AND'petalwidth'>0.244OR'petalwidth'>1.312 Candidatemodel:'sepallength'<=4.936AND'petalwidth'>0.244OR'petalwidth'>2.04 Candidatemodel:'sepallength'<=4.936AND'petalwidth'>1.312OR'petalwidth'>2.04 Candidatemodel:'sepallength'<=5.81AND'petalwidth'>1.312OR'petalwidth'>2.04 Candidatemodel:'sepallength'<=6.784AND'petalwidth'>1.312OR'petalwidth'>2.04

Correction in increment/max cutoff: 1 <= AND 4 > OR 4 > Candidate model: 'sepallength' <= 4.936 AND 'petalwidth' > 0.244 OR 'petalwidth' > 1.312 Candidate model: 'sepallength' <= 4.936 AND 'petalwidth' > 0.244 OR 'petalwidth' > 2.04 Candidate model: 'sepallength' <= 4.936 AND 'petalwidth' > 1.312 OR 'petalwidth' > 2.04 Candidate model: 'sepallength' <= 5.81 AND 'petalwidth' > 0.244 OR 'petalwidth' > 1.312 Candidate model: 'sepallength' <= 5.81 AND 'petalwidth' > 0.244 OR 'petalwidth' > 2.04 Candidate model: 'sepallength' <= 5.81 AND 'petalwidth' > 1.312 OR 'petalwidth' > 2.04 Candidate model: 'sepallength' <= 6.784 AND 'petalwidth' > 0.244 OR 'petalwidth' > 1.312 Candidate model: 'sepallength' <= 6.784 AND 'petalwidth' > 0.244 OR 'petalwidth' > 2.04 Candidate model: 'sepallength' <= 6.784 AND 'petalwidth' > 1.312 OR 'petalwidth' > 2.04

Special cases: 1 > AND 1 <= OR 1 > Candidate model: 'sepallength' > 4.936 AND 'sepallength' <= 5.81 OR 'sepallength' > 6.784 V 1 > AND 1 <= OR 1 <= Candidate model: 'sepallength' > 5.81 AND 'sepallength' <= 6.784 OR 'sepallength' <= 4.936 V

Check case: 1 > AND 2 > OR 2 <= Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 2.604 OR 'sepalwidth' <= 2.604 X Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 2.604 OR 'sepalwidth' <= 2.604 X Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' > 3.528 OR 'sepalwidth' <= 3.03

Check case: 1 > AND 2 <= OR 2 <= Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 2.604 OR 'sepalwidth' <= 2.604 X Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 4.936 AND 'sepalwidth' <= 3.528 OR 'sepalwidth' <= 2.604 ??? -> increment last cutoff Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 5.81 AND 'sepalwidth' <= 3.528 OR 'sepalwidth' <= 2.604 ??? -> increment last cutoff Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 3.03 OR 'sepalwidth' <= 2.604 Candidate model: 'sepallength' > 6.784 AND 'sepalwidth' <= 3.528 OR 'sepalwidth' <= 2.604 ??? -> increment last cutoff

After update: 1 > AND 2 <= OR 2 <= Candidatemodel:'sepallength'>4.936OR'sepalwidth'>3.03OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>4.936OR'sepalwidth'>3.528OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>4.936OR'sepalwidth'>3.528OR'sepalwidth'<=3.03 Candidatemodel:'sepallength'>5.81OR'sepalwidth'>2.604OR'sepalwidth'<=2.604 X Candidatemodel:'sepallength'>5.81OR'sepalwidth'>3.03OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>5.81OR'sepalwidth'>3.528OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>5.81OR'sepalwidth'>3.528OR'sepalwidth'<=3.03 Candidatemodel:'sepallength'>6.784OR'sepalwidth'>2.604OR'sepalwidth'<=2.604 X Candidatemodel:'sepallength'>6.784OR'sepalwidth'>3.03OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>6.784OR'sepalwidth'>3.528OR'sepalwidth'<=2.604 Candidatemodel:'sepallength'>6.784OR'sepalwidth'>3.528OR'sepalwidth'<=3.03

=> In below update should all be correct (up to rule length 3).

AniekMarkus commented 1 month ago

Repeated continuous variables:

5 > AND 5 <= Candidate model: 'age' > 20 AND 'age' <= 30 Candidate model: 'age' > 20 AND 'age' <= 40 Candidate model: 'age' > 20 AND 'age' <= 50 Candidate model: 'age' > 20 AND 'age' <= 60 Candidate model: 'age' > 20 AND 'age' <= 70 Candidate model: 'age' > 20 AND 'age' <= 80 Candidate model: 'age' > 30 AND 'age' <= 40 Candidate model: 'age' > 30 AND 'age' <= 50 Candidate model: 'age' > 30 AND 'age' <= 60 Candidate model: 'age' > 30 AND 'age' <= 70 Candidate model: 'age' > 30 AND 'age' <= 80 Candidate model: 'age' > 40 AND 'age' <= 50 Candidate model: 'age' > 40 AND 'age' <= 60 Candidate model: 'age' > 40 AND 'age' <= 70 Candidate model: 'age' > 40 AND 'age' <= 80 Candidate model: 'age' > 50 AND 'age' <= 60 Candidate model: 'age' > 50 AND 'age' <= 70 Candidate model: 'age' > 50 AND 'age' <= 80 Candidate model: 'age' > 60 AND 'age' <= 70 Candidate model: 'age' > 60 AND 'age' <= 80 Candidate model: 'age' > 70 AND 'age' <= 80 Cutoff sets: 21 -> CORRECT

5 > AND 5 <= OR 5 > Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 40 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 50 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 60 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 70 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 80 Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 30 X ??? -> (Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 50 etc.) Candidate model: 'age' > 20 AND 'age' <= 50 OR 'age' > 30 X ??? -> IDEM Candidate model: 'age' > 20 AND 'age' <= 60 OR 'age' > 30 X ??? -> IDEM Candidate model: 'age' > 20 AND 'age' <= 70 OR 'age' > 30 X ??? -> IDEM Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 40 X ??? -> (Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 50 etc.) Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 50 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 60 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 70 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 80 Candidate model: 'age' > 30 AND 'age' <= 50 OR 'age' > 40 X Candidate model: 'age' > 30 AND 'age' <= 60 OR 'age' > 40 X Candidate model: 'age' > 30 AND 'age' <= 70 OR 'age' > 40 X Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 50 X Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 60 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 70 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 80 Candidate model: 'age' > 40 AND 'age' <= 60 OR 'age' > 50 X Candidate model: 'age' > 40 AND 'age' <= 70 OR 'age' > 50 X Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' > 60 X Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' > 70 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' > 80 Candidate model: 'age' > 50 AND 'age' <= 70 OR 'age' > 60 X Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' > 70 X Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' > 80 Cutoff sets: 29

Fixed version: 5 > AND 5 <= OR 5 > Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 40 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 50 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 60 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 70 Candidate model: 'age' > 20 AND 'age' <= 30 OR 'age' > 80 Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 50 Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 60 Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 70 Candidate model: 'age' > 20 AND 'age' <= 40 OR 'age' > 80 Candidate model: 'age' > 20 AND 'age' <= 50 OR 'age' > 60 Candidate model: 'age' > 20 AND 'age' <= 50 OR 'age' > 70 Candidate model: 'age' > 20 AND 'age' <= 50 OR 'age' > 80 Candidate model: 'age' > 20 AND 'age' <= 60 OR 'age' > 70 Candidate model: 'age' > 20 AND 'age' <= 60 OR 'age' > 80 Candidate model: 'age' > 20 AND 'age' <= 70 OR 'age' > 80 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 50 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 60 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 70 Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' > 80 Candidate model: 'age' > 30 AND 'age' <= 50 OR 'age' > 60 Candidate model: 'age' > 30 AND 'age' <= 50 OR 'age' > 70 Candidate model: 'age' > 30 AND 'age' <= 50 OR 'age' > 80 Candidate model: 'age' > 30 AND 'age' <= 60 OR 'age' > 70 Candidate model: 'age' > 30 AND 'age' <= 60 OR 'age' > 80 Candidate model: 'age' > 30 AND 'age' <= 70 OR 'age' > 80 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 60 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 70 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' > 80 Candidate model: 'age' > 40 AND 'age' <= 60 OR 'age' > 70 Candidate model: 'age' > 40 AND 'age' <= 60 OR 'age' > 80 Candidate model: 'age' > 40 AND 'age' <= 70 OR 'age' > 80 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' > 70 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' > 80 Candidate model: 'age' > 50 AND 'age' <= 70 OR 'age' > 80 Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' > 80 Cutoff sets: 35

5 > AND 5 <= OR 5 <= Candidate model: 'age' > 30 AND 'age' <= 40 OR 'age' <= 20 Candidate model: 'age' > 30 AND 'age' <= 50 OR 'age' <= 20 Candidate model: 'age' > 30 AND 'age' <= 60 OR 'age' <= 20 Candidate model: 'age' > 30 AND 'age' <= 70 OR 'age' <= 20 Candidate model: 'age' > 30 AND 'age' <= 80 OR 'age' <= 20 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' <= 20 Candidate model: 'age' > 40 AND 'age' <= 50 OR 'age' <= 30 Candidate model: 'age' > 40 AND 'age' <= 60 OR 'age' <= 20 Candidate model: 'age' > 40 AND 'age' <= 60 OR 'age' <= 30 Candidate model: 'age' > 40 AND 'age' <= 70 OR 'age' <= 20 Candidate model: 'age' > 40 AND 'age' <= 70 OR 'age' <= 30 Candidate model: 'age' > 40 AND 'age' <= 80 OR 'age' <= 20 Candidate model: 'age' > 40 AND 'age' <= 80 OR 'age' <= 30 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' <= 20 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' <= 30 Candidate model: 'age' > 50 AND 'age' <= 60 OR 'age' <= 40 Candidate model: 'age' > 50 AND 'age' <= 70 OR 'age' <= 20 Candidate model: 'age' > 50 AND 'age' <= 70 OR 'age' <= 30 Candidate model: 'age' > 50 AND 'age' <= 70 OR 'age' <= 40 Candidate model: 'age' > 50 AND 'age' <= 80 OR 'age' <= 20 Candidate model: 'age' > 50 AND 'age' <= 80 OR 'age' <= 30 Candidate model: 'age' > 50 AND 'age' <= 80 OR 'age' <= 40 Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' <= 20 Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' <= 30 Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' <= 40 Candidate model: 'age' > 60 AND 'age' <= 70 OR 'age' <= 50 Candidate model: 'age' > 60 AND 'age' <= 80 OR 'age' <= 20 Candidate model: 'age' > 60 AND 'age' <= 80 OR 'age' <= 30 Candidate model: 'age' > 60 AND 'age' <= 80 OR 'age' <= 40 Candidate model: 'age' > 60 AND 'age' <= 80 OR 'age' <= 50 Candidate model: 'age' > 70 AND 'age' <= 80 OR 'age' <= 20 Candidate model: 'age' > 70 AND 'age' <= 80 OR 'age' <= 30 Candidate model: 'age' > 70 AND 'age' <= 80 OR 'age' <= 40 Candidate model: 'age' > 70 AND 'age' <= 80 OR 'age' <= 50 Candidate model: 'age' > 70 AND 'age' <= 80 OR 'age' <= 60 Cutoff sets: 35 -> CORRECT