@@ -684,7 +684,7 @@ class TotalPosNeg {
684
684
quality = modifier .modifyQuality (quality , attr .getName (), p , toCover_p );
685
685
// prefer (gender = female) over (gender = !male) for boolean attributes
686
686
if (quality > best .quality ||
687
- (quality == best .quality && (p > best .covered || best .opposite ))) {
687
+ (quality == best .quality && (p > best .covered || ( p == best .covered && best . opposite ) ))) {
688
688
ElementaryCondition candidate =
689
689
new ElementaryCondition (attr .getName (), new SingletonSet ((double ) i , attr .getMapping ().getValues ()));
690
690
if (checkCandidate (candidate , classId , p , n , toCover_p , P , uncoveredPositives .size (), rule .getRuleOrderNum ())) {
@@ -741,7 +741,8 @@ class TotalPosNeg {
741
741
for (Future f : futures ) {
742
742
ConditionEvaluation eval = (ConditionEvaluation )f .get ();
743
743
744
- Logger .log ("\t Attribute best: " + eval .condition + ", quality=" + eval .quality + "\n " , Level .FINEST );
744
+ Logger .log ("\t Attribute best: " + eval .condition + ", quality=" + eval .quality
745
+ + ", p=" + eval .covered + "\n " , Level .FINEST );
745
746
746
747
if (best == null || eval .quality > best .quality || (eval .quality == best .quality && eval .covered > best .covered )) {
747
748
best = eval ;
@@ -755,7 +756,8 @@ class TotalPosNeg {
755
756
if (best .condition != null ) {
756
757
Attribute bestAttr = trainSet .getAttributes ().get (((ElementaryCondition )best .condition ).getAttribute ());
757
758
758
- Logger .log ("\t Final best: " + best .condition + ", quality=" + best .quality + "\n " , Level .FINEST );
759
+ Logger .log ("\t Final best: " + best .condition + ", quality=" + best .quality
760
+ + ", p=" + best .covered + "\n " , Level .FINEST );
759
761
760
762
if (bestAttr .isNominal ()) {
761
763
allowedAttributes .remove (bestAttr );
0 commit comments