List of usage examples for weka.core Instances setClassIndex
public void setClassIndex(int classIndex)
From source file:cezeri.utils.FactoryInstance.java
public static Instances getSubsetData(Instances data, String[] attList) { Instances temp = new Instances(data); for (int i = 0; i < data.numAttributes(); i++) { if (!temp.attribute(0).equals(temp.classAttribute())) { temp.deleteAttributeAt(0);//from w ww . j a v a2s. c o m } } double[][] m = new double[attList.length + 1][data.numInstances()]; for (int i = 0; i < attList.length; i++) { int n = attList.length - 1 - i; String str = attList[n]; Attribute t = data.attribute(str); double[] d = data.attributeToDoubleArray(t.index()); m[n] = d; temp.insertAttributeAt(t, 0); } m[attList.length] = data.attributeToDoubleArray(data.classIndex()); m = CMatrix.getInstance(m).transpose().get2DArrayDouble(); FastVector att = new FastVector(); for (int i = 0; i < temp.numAttributes(); i++) { att.addElement(temp.attribute(i)); } Instances ret = new Instances(temp.relationName(), att, m.length); for (int i = 0; i < m.length; i++) { Instance ins = new Instance(m[0].length); for (int j = 0; j < m[0].length; j++) { ins.setValue(j, m[i][j]); } ret.add(ins); } ret.setClassIndex(temp.classIndex()); return ret; }
From source file:clases.GestorFichero.java
public static void asignarClase(Instances data) { for (int i = 0; i < data.numAttributes(); i++) { System.out.println(data.attribute(i).name()); if (data.attribute(i).name().equals(" class")) { data.setClassIndex(i); break; }// w w w .ja v a 2 s.c o m } }
From source file:Clases.RedNeuronal.RedNeuronal.java
public void redNeuronal(int puntaje, int tiempo, int error) throws Exception { //si puntaje >= 200 entonces aprendido //si tiempo <= 240 (4 minutos) entonces aprendido //si errores <= 3 entonces aprendido String[] dato = { obtnerPuntaje(puntaje), obtenerTiempo(tiempo), obtenerErrores(error) }; ConverterUtils.DataSource con = new ConverterUtils.DataSource( "C:\\Users\\USUARIO\\Documents\\SILVIIS\\10 Modulo\\2.ANTEPROYECTOS DE TESIS\\Proyecto\\Aplicacion\\redeAprendizaje.arff"); // ConverterUtils.DataSource con = new ConverterUtils.DataSource("E:\\Unl\\10 Modulo\\2.ANTEPROYECTOS DE TESIS\\Proyecto\\Aplicacion\\redeAprendizaje.arff"); Instances instances = con.getDataSet(); System.out.println(instances); instances.setClassIndex(instances.numAttributes() - 1); MultilayerPerceptron mp = new MultilayerPerceptron(); mp.buildClassifier(instances);// w w w. j a va 2 s .c o m Evaluation evalucion = new Evaluation(instances); evalucion.evaluateModel(mp, instances); System.out.println(evalucion.toSummaryString()); System.out.println(evalucion.toMatrixString()); String datosEntrada = null; String datosSalida = "no se puede predecir"; for (int i = 0; i < instances.numInstances(); i++) { double predecido = mp.classifyInstance(instances.instance(i)); datosEntrada = dato[0] + " " + dato[1] + " " + dato[2]; if ((int) instances.instance(i).value(0) == Integer.parseInt(dato[0]) && (int) instances.instance(i).value(1) == Integer.parseInt(dato[1]) && (int) instances.instance(i).value(2) == Integer.parseInt(dato[2])) { datosSalida = instances.classAttribute().value((int) predecido); } } System.out.println("DATOS DE ENTRADA: " + datosEntrada); System.out.println("SALIDA PREDECIDA: " + datosSalida); switch (datosSalida) { case "0": resultado = "Excelente ha aprendido"; imgResultado = "Excelente.jpg"; imgREDneuronal = "0.png"; System.out.println("Excelente ha aprendido"); break; case "1": resultado = "Disminuir Errores"; imgResultado = "Bueno.jpg"; imgREDneuronal = "1.png"; System.out.println("Disminuir Errores"); break; case "2": resultado = "Disminuir Tiempo"; imgResultado = "Bueno.jpg"; imgREDneuronal = "2.png"; System.out.println("Disminuir Tiempo"); break; case "3": resultado = "Disminuir Errores y tiempo"; imgResultado = "Bueno.jpg"; imgREDneuronal = "3.png"; System.out.println("Disminuir Errores y tiempo"); break; case "4": resultado = "Subir Puntaje"; imgResultado = "pensando.jpg"; imgREDneuronal = "4.png"; System.out.println("Subir Puntaje"); break; case "5": resultado = "Subir Puntaje y disminuir Errores"; imgResultado = "pensando.jpg"; imgREDneuronal = "5.png"; System.out.println("Subir Puntaje y disminuir Errores"); break; case "6": resultado = "Subir Puntaje y disminuir Tiempo"; imgResultado = "pensando.jpg"; imgREDneuronal = "6.png"; System.out.println("Subir Puntaje y disminuir Tiempo"); break; case "7": resultado = "Ponle mas Empeo"; imgResultado = "pensando.jpg"; imgREDneuronal = "7.png"; System.out.println("Ponle mas Empeo"); break; default: resultado = "Verifique entradas, no se puede predecir"; imgResultado = "Error.jpg"; System.out.println("Verifique entradas, no se puede predecir"); break; } }
From source file:clasificacion.Clasificacion.java
public String clasificar(String[] testCases) throws Exception { String ruta = "nursery_model.model"; InputStream classModelStream; classModelStream = getClass().getResourceAsStream(ruta); //classModel = (Classifier)SerializationHelper.read(classModelStream); Classifier clasify = (Classifier) SerializationHelper.read(classModelStream); FastVector parents = new FastVector(); parents.addElement("usual"); parents.addElement("pretentious"); parents.addElement("great_pret"); Attribute _parent = new Attribute("parents", parents); FastVector nurs = new FastVector(); nurs.addElement("proper"); nurs.addElement("less_proper"); nurs.addElement("improper"); nurs.addElement("critical"); nurs.addElement("very_crit"); Attribute _has_nurs = new Attribute("has_nurs", nurs); FastVector form = new FastVector(); form.addElement("complete"); form.addElement("completed"); form.addElement("incomplete"); form.addElement("foster"); Attribute _form = new Attribute("form", form); FastVector children = new FastVector(); children.addElement("1"); children.addElement("2"); children.addElement("3"); children.addElement("more"); Attribute _children = new Attribute("children", children); FastVector housing = new FastVector(); housing.addElement("convenient"); housing.addElement("less_conv"); housing.addElement("critical"); Attribute _housing = new Attribute("housing", housing); FastVector finance = new FastVector(); finance.addElement("convenient"); finance.addElement("inconv"); Attribute _finance = new Attribute("finance", finance); FastVector social = new FastVector(); social.addElement("nonprob"); social.addElement("slightly_prob"); social.addElement("problematic"); Attribute _social = new Attribute("social", social); FastVector health = new FastVector(); health.addElement("recommended"); health.addElement("priority"); health.addElement("not_recom"); Attribute _health = new Attribute("health", health); FastVector Class = new FastVector(); Class.addElement("not_recom"); Class.addElement("recommend"); Class.addElement("very_recom"); Class.addElement("priority"); Class.addElement("spec_prior"); Attribute _Class = new Attribute("class", Class); FastVector atributos = new FastVector(9); atributos.addElement(_parent);/* w w w .j ava 2 s . co m*/ atributos.addElement(_has_nurs); atributos.addElement(_form); atributos.addElement(_children); atributos.addElement(_housing); atributos.addElement(_finance); atributos.addElement(_social); atributos.addElement(_health); atributos.addElement(_Class); ArrayList<Attribute> atributs = new ArrayList<>(); atributs.add(_parent); atributs.add(_has_nurs); atributs.add(_form); atributs.add(_children); atributs.add(_housing); atributs.add(_finance); atributs.add(_social); atributs.add(_health); atributs.add(_Class); //Aqu se crea la instacia, que tiene todos los atributos del modelo Instances dataTest = new Instances("TestCases", atributos, 1); dataTest.setClassIndex(8); Instance setPrueba = new Instance(9); int index = -1; for (int i = 0; i < 8; i++) { index = atributs.get(i).indexOfValue(testCases[i]); //System.out.println(i + " " + atributs.get(i) + " " + index + " " + testCases[i]); setPrueba.setValue(atributs.get(i), index); } //Agregando el set que se desea evaluar. dataTest.add(setPrueba); //Realizando la Prediccin //La instancia es la 0 debido a que es la unica que se encuentra. double valorP = clasify.classifyInstance(dataTest.instance(0)); //get the name of the class value String prediccion = dataTest.classAttribute().value((int) valorP); return prediccion; }
From source file:clasificador.Perceptron.java
public void perceptron_multicapa() { try {/*w w w . j a v a2 s. c om*/ //INSTANCIAS PARA ENTRENAMIENTO DEL CLASIFICADOR ConverterUtils.DataSource converU = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro.arff"); Instances instancias = converU.getDataSet(); instancias.setClassIndex(instancias.numAttributes() - 1); //INSTANCIAS PARA EL TEST DEL MODELO ConverterUtils.DataSource convertest = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro5.arff"); Instances testInstance = convertest.getDataSet(); testInstance.setClassIndex(testInstance.numAttributes() - 1); //CONTRUCCIN DEL CLASIFICADOR MultilayerPerceptron perceptron = new MultilayerPerceptron(); perceptron.buildClassifier(instancias); //Evaluar las instancias Evaluation ev = new Evaluation(instancias); //EVALUAR MODELO DE ENTRENAMIENTO ev.evaluateModel(perceptron, instancias); //System.out.println(instancias); System.out.println("\n\nENTRENAMIENTO DEL MODELO PERCEPTRN MULTICAPA\n\n"); System.out.println(ev.toSummaryString("_____RESULTADO_____", true)); System.out.println(ev.toMatrixString("_____Matriz confusion___")); //EVALUACIN DEL MODELO ev.evaluateModel(perceptron, testInstance); //System.out.println(instancias); System.out.println("\n\nTEST DEL MODELO PERCEPTRN MULTICAPA\n\n"); System.out.println(ev.toSummaryString("_____RESULTADO_____", true)); System.out.println(ev.toMatrixString("_____Matriz confusion___")); //MOSTRAR VALORES for (int i = 0; i < ev.evaluateModel(perceptron, testInstance).length; i++) { System.out.println("Se clasifica como: " + ev.evaluateModel(perceptron, testInstance)[i]); } } catch (Exception ex) { Logger.getLogger(Perceptron.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:clasificador.Perceptron.java
public void naive_Bayes() { try {// w w w . j a v a 2 s .c o m //INSTANCIAS PARA ENTRENAMIENTO DEL CLASIFICADOR ConverterUtils.DataSource converU = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro.arff"); Instances instancias = converU.getDataSet(); instancias.setClassIndex(instancias.numAttributes() - 1); //INSTANCIAS PARA EL TEST DEL MODELO ConverterUtils.DataSource convertest = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro5.arff"); Instances testInstance = convertest.getDataSet(); testInstance.setClassIndex(testInstance.numAttributes() - 1); //CONTRUCCIN DEL CLASIFICADOR NaiveBayes perceptron = new NaiveBayes(); perceptron.buildClassifier(instancias); //Evaluar las instancias Evaluation ev = new Evaluation(instancias); //EVALUAR MODELO DE ENTRENAMIENTO ev.evaluateModel(perceptron, instancias); //System.out.println(instancias); System.out.println("\n\nENTRENAMIENTO DEL MODELO NAIVE BAYES\n\n"); System.out.println(ev.toSummaryString("_____RESULTADO_____", true)); System.out.println(ev.toMatrixString("_____Matriz confusion___")); //EVALUACIN DEL MODELO ev.evaluateModel(perceptron, testInstance); //System.out.println(instancias); System.out.println("\n\nTEST DEL MODELO NAIVE BAYES\n\n"); System.out.println(ev.toSummaryString("_____RESULTADO_____", true)); System.out.println(ev.toMatrixString("_____Matriz confusion___")); //MOSTRAR VALORES for (int i = 0; i < ev.evaluateModel(perceptron, testInstance).length; i++) { System.out.println("Se clasifica como: " + ev.evaluateModel(perceptron, testInstance)[i]); } } catch (Exception ex) { Logger.getLogger(Perceptron.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:clasificador.Perceptron.java
public void J48() { try {/*w ww .java 2 s .c om*/ //INSTANCIAS PARA ENTRENAMIENTO DEL CLASIFICADOR ConverterUtils.DataSource converU = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro.arff"); Instances instancias = converU.getDataSet(); instancias.setClassIndex(instancias.numAttributes() - 1); //INSTANCIAS PARA TEST DEL MODELO ConverterUtils.DataSource convertest = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro5.arff"); Instances testInstance = convertest.getDataSet(); testInstance.setClassIndex(testInstance.numAttributes() - 1); //INSTANCIAS PARA PREDICCIN ConverterUtils.DataSource converPredict = new ConverterUtils.DataSource( "C:\\Users\\Kathy\\Documents\\tutorial perl\\libro1.arff"); Instances predictInstance = converPredict.getDataSet(); predictInstance.setClassIndex(predictInstance.numAttributes() - 1); //CONTRUCCIN DEL CLASIFICADOR J48 perceptron = new J48(); perceptron.buildClassifier(instancias); //Evaluar las instancias Evaluation ev = new Evaluation(instancias); //EVALUAR MODELO DE ENTRENAMIENTO ev.evaluateModel(perceptron, instancias); //System.out.println(instancias); System.out.println("\n\nENTRENAMIENTO DEL MODELO ?RBOL DE DECISIN J48\n\n"); System.out.println(ev.toSummaryString("_____RESULTADO_____", true)); System.out.println(ev.toMatrixString("_____Matriz confusion___")); //PREDECIR CON EL MODELO Evaluation evPredict = new Evaluation(instancias); evPredict.evaluateModel(perceptron, predictInstance); //System.out.println(instancias); System.out.println("\n\nPREDICCIN DEL MODELO ?RBOL DE DECISIN J48\n\n"); System.out.println(evPredict.toSummaryString("_____RESULTADO_____", false)); System.out.println(evPredict.toMatrixString("_____Matriz confusion___")); //MOSTRAR VALORES for (int i = 0; i < evPredict.evaluateModel(perceptron, predictInstance).length; i++) { resultado = evPredict.evaluateModel(perceptron, predictInstance)[i]; polaridad += polaridad(resultado) + "\n"; //System.out.println("Se clasifica como: "+resultado + "que es: " + polaridad(resultado)); } archivoResultados(polaridad); //TEST DEL MODELO CON LOS DATOS DEL CLASIFICADOR Evaluation evtesting = new Evaluation(instancias); evtesting.evaluateModel(perceptron, testInstance); //System.out.println(instancias); System.out.println("\n\nTEST DEL MODELO ?RBOL DE DECISIN J48\n\n"); System.out.println(evtesting.toSummaryString("_____RESULTADO_____", false)); System.out.println(evtesting.toMatrixString("_____Matriz confusion___")); } catch (Exception ex) { Logger.getLogger(Perceptron.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:clasificador.RedNeuronal.java
public void Entrenamiento(String paramNN) { try {/*from w w w. ja v a 2 s . c o m*/ //aqui va a anetrenar la red neuronal con parametros para la red FileReader trainReader = new FileReader( new File(System.getProperty("user.dir") + "\\src\\clasificador\\archivos\\libro.arff")); //FileReader trainReader = new FileReader("aqui va la ruta"); //intancias //lo que vamoas a hacer en agarrar ese objeto y cargarlo dentro de nuestra clase instancias Instances trainInstance = new Instances(trainReader); trainInstance.setClassIndex(trainInstance.numAttributes() - 1);//esta fijando las etiquetas en el archivo las clases estan en el final es decir el total -1 esto es xk es un ambiento controlado //construccion de la red perceptron multicapa MultilayerPerceptron mlp = new MultilayerPerceptron(); // creo un objeto de perceptron multicapaa mlp.setOptions(Utils.splitOptions(paramNN)); //fijar los parametros de la red perceptron util es para q reciba toda la confiuguracion es proipio de weka mlp.buildClassifier(trainInstance);// la construccion se hace ya basadao en los parametron configurado //Guardar el mlp en un archivo Debug.saveToFile("TrainMLP.train", mlp); //evaluacion del entrenamiento despies solo se ocupa el trainMLp SerializedClassifier sc = new SerializedClassifier(); sc.setModelFile(new File("TrainMLP.train")); Evaluation evaluarEntrenamiento = new Evaluation(trainInstance); evaluarEntrenamiento.evaluateModel(mlp, trainInstance);//evaluando el modelo System.out.println(evaluarEntrenamiento.toSummaryString("resultado", false)); System.out.println(evaluarEntrenamiento.toMatrixString("*****************Matriz de confusion*******")); trainReader.close(); } catch (FileNotFoundException ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:clasificador.RedNeuronal.java
public void testing() { try {/*from w ww.j av a2 s.c o m*/ FileReader testReader = new FileReader( new File(System.getProperty("user.dir") + "\\src\\clasificador\\archivos\\librotest.arff")); Instances testInstance = new Instances(testReader); testInstance.setClassIndex(testInstance.numAttributes() - 1); Evaluation evalTest = new Evaluation(testInstance); SerializedClassifier clasificador = new SerializedClassifier(); clasificador.setModelFile(new File("TrainMLP.train")); //CLASIFICADOR ESTANDAR Classifier clasificadorEstandar = clasificador.getCurrentModel(); evalTest.evaluateModel(clasificadorEstandar, testInstance); System.out.println(evalTest.toSummaryString("resultado:", false)); System.out.println(evalTest.toMatrixString("*****************Matriz de confusion*******")); //vamos a predecir el numero q voy a usar // evalTest.toMatrixString(); } catch (IOException e) { e.printStackTrace(); } catch (Exception ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:clasificador.RedNeuronal.java
public void prediccion() { FileReader testReader = null; try {// w ww . ja va 2 s .c om testReader = new FileReader( new File(System.getProperty("user.dir") + "\\src\\clasificador\\archivos\\libro1.arff")); Instances testInstance = new Instances(testReader); testInstance.setClassIndex(testInstance.numAttributes() - 1); Evaluation evalTest = new Evaluation(testInstance); SerializedClassifier clasificador = new SerializedClassifier(); clasificador.setModelFile(new File("TrainMLP.train")); //CLASIFICADOR ESTANDAR Classifier clasificadorEstandar = clasificador.getCurrentModel(); evalTest.evaluateModel(clasificadorEstandar, testInstance); double[] valores = evalTest.evaluateModel(clasificadorEstandar, testInstance); for (int i = 0; i < valores.length; i++) { System.out.println("se predice: " + valores[i] + "\n"); } } catch (FileNotFoundException ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } finally { try { testReader.close(); } catch (IOException ex) { Logger.getLogger(RedNeuronal.class.getName()).log(Level.SEVERE, null, ex); } } }