Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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))