Пример #1
0
  /** Returns True if the rule is perfect for the data set. */
  public boolean perfectRule(Complejo regla, Dataset train) {
    ConjDatos datosTrain;
    datosTrain = new ConjDatos();
    datosTrain = creaConjunto(train);
    boolean perfecta = false;

    /*Muestra m = datosTrain.getDato(3);//la primera instancia basicamente
    System.out.println(m.getClase());*/

    Muestra m;
    ConjDatos cubiertas;
    cubiertas = new ConjDatos();

    /*todas las instancias que cubra la regla las metemos en un conjunto*/
    for (int i = 0; i < train.getndatos(); i++) {
      m = datosTrain.getDato(i);
      if (regla.cubre(m)) {
        cubiertas.addDato(m);
      }
    }
    /*perfecta sera true si todos los ejemplos del conjunto 'cubiertas' tienen la misma clase que predice la regla*/
    for (int i = 0; i < cubiertas.size(); i++) {
      if (cubiertas.getDato(i).getClase() != regla.getClase()) {
        perfecta = false;
        return perfecta;
      } else perfecta = true;
    }
    return perfecta;
  }
Пример #2
0
 /**
  * Creates a set of data(attribute/class)
  *
  * @param mis_datos Must be a set of data readen from the file (see doc Dataset.java)
  * @return The set of data created, a list of examples (see ConjDatos.java and Muestra.java)
  */
 private ConjDatos creaConjunto(Dataset mis_datos) {
   ConjDatos datos = new ConjDatos(); // Creo un nuevo conjunto de datos
   int tam =
       mis_datos
           .getnentradas(); // Pillo el nmero de atributos de entrada (suponemos una sola salida
                            // [clase])
   double[] vars =
       new double
           [tam]; // Creamos el vector que guardar�los valores de los atributos (aun siendo
                  // enteros o enum)
   double[][] X;
   int[] C;
   int clase = 0; // Variable que contendr�el valor para la clase
   X = mis_datos.getX();
   C = mis_datos.getC();
   for (int i = 0; i < mis_datos.getndatos(); i++) {
     // System.out.print("\n"+i+":");
     for (int j = 0; (j < tam); j++) {
       // System.out.print(" "+X[i][j]);
       if (mis_datos.isMissing(i, j)) {
         vars[j] = mis_datos.masComun(j);
       } else { // CAMBIAR POR OTROS METODOS DE MANEJO DE VALORES PERDIDOS (15-NN).
         vars[j] =
             X[i][
                 j]; // Double.parseDouble(mis_datos.getDatosIndex(i, j)); //pillo el valor del
                     // atributo j para el ejemplo i
       }
     }
     // if (!salir) {
     clase = C[i]; // Integer.parseInt(mis_datos.getDatosIndex(i, tam));
     Muestra m =
         new Muestra(
             vars, clase,
             tam); // Creo un nuevo dato del conjunto con sus variables, su clase y el num
                   // variables
     m.setPosFile(i);
     datos.addDato(m);
     // }
   }
   return datos;
 }