prediccion = clasificador.classifyInstance(instance) #print "clase: " + str(clase) + " prediccion: " + str(prediccion) if prediccion != clase: error += 1.0 procentajeError = error / float(instances.getNumeroInstances()) return procentajeError if __name__ == '__main__': #random.seed(2) lector = LectorARFF() instances = lector.leerFichero("../data/entrenamiento.arff") instances.normaliza() porcentajeParticionado = float(0.50) particionado = DivisionPorcentual() particionado.setPorcentajeTrain(porcentajeParticionado) particion = particionado.generaParticionesProporcional(instances) print "Multilayer Perceptron" clasificador = RedNeuronalBlist() clasificador.setParameters('nNeuronas=' + str(50)) clasificador.setParameters('alpha=' + str(0.01)) clasificador.setParameters('nEpocas=500') clasificador.setDebug(False)
import os, sys lib_path = os.path.abspath('../') sys.path.append(lib_path) from Clasificadores.NaiveBayes import NaiveBayes from Clasificadores.RedNeuronal import RedNeuronal from Particionado.DivisionPorcentual import DivisionPorcentual from Particionado.Particion import Particion from RW.LectorARFF import LectorARFF from Instance import Instance from Instances import Instances import json """pruebas unitarias""" if __name__ == '__main__': lector = LectorARFF() instances = lector.leerFichero('test.arff') particionado = DivisionPorcentual() particionado.setPortcentajeTrain(0.7) particion = particionado.generaParticionesProporcional(instances) clasificador = RedNeuronal() clasificador.buildClassifier(particion.getTrain()) error = 0 erroresPorClase = {} aciertosPorClase = {} for clase in instances.getClases(): erroresPorClase[clase] = 0 aciertosPorClase[clase] = 0
if prediccion != clase: erroresPorClase[clase] += 1 error += 1.0 else: aciertosPorClase[clase] += 1 procentajeError = error / float(instances.getNumeroInstances()) print 'Error medio: ' + str(procentajeError) for clase in instances.getClases(): sumaAux = float(erroresPorClase[clase] + aciertosPorClase[clase]) print '\t'+ clase + ' fallos: ' + str(erroresPorClase[clase]) + ' aciertos: ' + str(aciertosPorClase[clase]) + ' porcentaje: ' + str(erroresPorClase[clase] / sumaAux) if __name__ == '__main__': lector = LectorARFF() instances = lector.leerFichero("../data/spam.arff") instances.normaliza() porcentajeParticionado = float(0.66) particionado = DivisionPorcentual() particionado.setPorcentajeTrain(porcentajeParticionado) particion = particionado.generaParticionesProporcional(instances) print "Multilayer genetic" clasificador = GeneticECM() clasificador.buildClassifier(particion.getTrain()) print "Error TRAIN:" calculaError(clasificador, particion.getTrain()) if porcentajeParticionado != 1.0:
if __name__ == '__main__': if len(sys.argv) != 6: print "Error en la llamada. Se esperan los siguientes argumentos:" print "\t1.- Nombre del fichero con los datos del problema." print "\t2.- El porcentaje del conjunto de train. Expresar como un numero entre 0 y 1 utilizando el punto como divisor decimal." print "\t3.- La tasa de aprendizaje." print "\t4.- El numero de neuronas de la capa oculta." print "\t5.- El nombre del fichero donde debe escribirse el error cuadratico medio en cada epoca. Se borrara el fichero si ya existe." print "Ejemplo de llamada: python main.py xor.txt 1 0.1 2 xor_error.txt" sys.exit(-1) #random.seed(2) lector = LectorARFF() instances = lector.leerFichero(sys.argv[1]) #instances.normaliza() porcentajeParticionado = float(sys.argv[2]) particionado = DivisionPorcentual() particionado.setPorcentajeTrain(porcentajeParticionado) particion = particionado.generaParticionesProporcional(instances) print "Multilayer Perceptron aleatorio" clasificador = RandomNeuralNetwork() clasificador.setParameters('nNeuronas=' + sys.argv[4]) clasificador.setParameters('alpha=' + sys.argv[3]) clasificador.setParameters('nEpocas=500') clasificador.setParameters('debugFile=' + sys.argv[5])