/** * Returns the fraction of correct instances of the instance's set for the rule 'regla' * * @param i Number of the rule * @return Fraction of correct instances of the instance's set for the rule 'regla' */ private double getAccuracy(int i) { Instance instancia; double Accuracy; num_cubiertas = 0; num_correctas = 0; for (int k = 0; k < instancias.getNumInstances(); k++) { instancia = instancias.getInstance(k); cubierta = regla.reglaCubreInstancia(instancia); if (cubierta) { num_cubiertas++; clase = instancia.getOutputNominalValuesInt(0); if (clase == i) num_correctas++; } } Accuracy = (double) num_correctas / (double) num_cubiertas; if (num_cubiertas == 0) Accuracy = 0; return Accuracy; }
/** * Removes from the instance's set those instances that matches with the rule * * @param i Numebr of the rule */ private void removeInstancesCovered(int i) { for (int k = 0; k < instancias.getNumInstances(); k++) { instancia = instancias.getInstance(k); /*System.out.print(k+" "); instancia.print(); System.out.println();*/ cubierta = regla.reglaCubreInstancia(instancia); if (cubierta) { // System.out.println("CUBIERTA"); clase = instancia.getOutputNominalValuesInt(0); // if(clase==i){ instancias.removeInstance(k); instancia.print(); System.out.println(); k = k - 1; // } } } }