1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
private List<PrismRule> Add1(PrismRule r, Instances data) throws Exception {
PrismRule CR_rules = addRule(null , new PrismRule(data, 0));
int cl=r.m_classification; // possible value of theClass
Instances E, ruleE;
Test test = null, oldTest = null;
int bestCorrect, bestCovers, attUsed;
Enumeration enumAtt;
getCapabilities().testWithFail(data); // can classifier handle the data?
data = new Instances(data);
data.deleteWithMissingClass();// remove instances with missing class
E = data; // initialize E to the instance set
ruleE = E; // examples covered by this rule
test = new Test();
CR_rules.m_test=test;
// for every attribute not mentioned in the rule
enumAtt = ruleE.enumerateAttributes();
while (enumAtt.hasMoreElements())
{
Attribute attr = (Attribute) enumAtt.nextElement();
if (isMentionedIn(attr, r.m_test)) {continue;}
int M = attr.numValues();
for (int val = 0; val < M; val ++) // ... for each value of this attribute
{
PrismRule cr = addRule(null , new PrismRule(data, r.m_classification));
if (r.m_test == null) {
Test Tst3 =new Test() ;
Tst3.m_attr=attr.index();
Tst3.m_val=val;
cr.m_ruleSize=cr.m_ruleSize+1;
cr.m_test=Tst3;
} else {
int y = r.m_ruleSize;
Test Tstold =new Test() ;
Tstold.m_attr = r.m_test.m_attr;
Tstold.m_val = r.m_test.m_val;
cr.m_test=Tstold;
Test Tst3 =new Test() ;
Tst3.m_attr=attr.index();
Tst3.m_val=val;
cr.m_test.m_next=Tst3;
cr.m_ruleSize=y;
cr.m_ruleSize++;
}
CR.add(cr);
// System.out.println("new added "+cr);
}
}
List<PrismRule> CR1= new ArrayList<PrismRule>();
CR1=CR;
return CR ;
} |
Partager