for prueba in range(CANTIDAD_PRUEBAS): shuffle(estudiantes) estudiantesTest = estudiantes[:cantEstTest] estudiantesEntrenamiento = estudiantes[cantEstTest + 1:] resultados1 = [] resultados3 = [] for i in range(CANT_BLOQUES): pos = i*largoBloque estTest = estudiantesEntrenamiento[pos:pos+largoBloque] estEntr = estudiantesEntrenamiento[:pos] + estudiantesEntrenamiento[pos+largoBloque:] knn = Knn(estEntr, "G3", atributos, operadores) resultados1.append(knn.validar(estTest,1)) resultados3.append(knn.validar(estTest, 3)) validacionCruzada1 += sum([r/CANT_BLOQUES for r in resultados1]) validacionCruzada3 += sum([r / CANT_BLOQUES for r in resultados3]) knn = Knn(estudiantesEntrenamiento, "G3", atributos, operadores) validacionFinal1 += knn.validar(estudiantesTest,1) validacionFinal3 += knn.validar(estudiantesTest, 3) print 'Porcentaje de aciertos:' print 'Validacion Cruzada n=1: ' + str(100*validacionCruzada1/CANTIDAD_PRUEBAS) print 'Evaluacion por defecto n=1: ' + str(100*validacionFinal1/CANTIDAD_PRUEBAS) print 'Validacion Cruzada n=3: ' + str(100*validacionCruzada3/CANTIDAD_PRUEBAS) print 'Evaluacion por defecto n=3: ' + str(100*validacionFinal3/CANTIDAD_PRUEBAS)
ponderaciones = None for prueba in range(CANTIDAD_PRUEBAS): shuffle(estudiantes) estudiantesTest = estudiantes[:cantEstTest] estudiantesEntrenamiento = estudiantes[cantEstTest + 1:] resultados1 = [] resultados3 = [] knn = Knn(estudiantesEntrenamiento, "G3", atributos, operadores, ponderaciones) knnSinPonderar = Knn(estudiantesEntrenamiento, "G3", atributos, operadores) if ponderaciones is None: knn.entrenarPonderaciones(10, 3, 0.01, 15) validacionFinal1 += knn.validar(estudiantesTest, 1) validacionFinal3 += knn.validar(estudiantesTest, 3) validacionFinal1SinPonderar += knnSinPonderar.validar(estudiantesTest, 1) validacionFinal3SinPonderar += knnSinPonderar.validar(estudiantesTest, 3) ponderaciones = knn.ponderaciones print ponderaciones '''for i in range(CANT_BLOQUES): pos = i*largoBloque estTest = estudiantesEntrenamiento[pos:pos+largoBloque] estEntr = estudiantesEntrenamiento[:pos] + estudiantesEntrenamiento[pos+largoBloque:] knn = Knn(estEntr, "G3", atributos, operadores) knn.ponderaciones = ponderaciones resultados1.append(knn.validar(estTest, 1))