def construcao_patamar2(data):

    classe0_data = []
    classe1_data = []
    classe2_data = []

    for x in data:

        if features.pixels_por_imagem(x[0]) == 0:
            classe0_data.append(x)

        elif features.pixels_por_imagem(x[0]) == 1:
            classe1_data.append(x)

        else:
            classe2_data.append(x)

    print '---O ganho de informacao no ramo classe0 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe0_data))
    print '---O ganho de informacao no ramo classe0 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe0_data))
    print '---O ganho de informacao no ramo classe0 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe0_data))
    print '---O ganho de informacao no ramo classe1 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe1_data))
    print '---O ganho de informacao no ramo classe1 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe1_data))
    print '---O ganho de informacao no ramo classe1 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe1_data))
    print '---O ganho de informacao no ramo classe2 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe2_data))
    print '---O ganho de informacao no ramo classe2 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe2_data))
    print '---O ganho de informacao no ramo classe2 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe2_data))
Beispiel #2
0
def pixels_por_imagem_gain(data):
    """funcao de ganho de informacao para o atributo "amount_per_image" """
    class0_counter = 0
    class1_counter = 0
    class2_counter = 0
    class0_data = []
    class1_data = []
    class2_data = []
    class0_entropia = 0
    class1_entropia = 0
    class2_entropia = 0
    gain = 0

    if len(data) == 0:
        return 0

    for x in data:
        if features.pixels_por_imagem(x[0]) == 0:
            class0_counter = class0_counter + 1
            class0_data.append(x)
        elif features.pixels_por_imagem(x[0]) == 1:
            class1_counter = class1_counter + 1
            class1_data.append(x)
        else:
            class2_counter = class2_counter + 1
            class2_data.append(x)

    data_entropia = calc_entropia(data)
    class0_entropia = calc_entropia(class0_data)
    class1_entropia = calc_entropia(class1_data)
    class2_entropia = calc_entropia(class2_data)
    p_class0 = float(class0_counter) / float(len(data))
    p_class1 = float(class1_counter) / float(len(data))
    p_class2 = float(class2_counter) / float(len(data))
    gain = data_entropia - p_class0 * class0_entropia - p_class1 * class1_entropia - p_class2 * class2_entropia
    return gain
Beispiel #3
0
def tree(data):

    folha4_0_0_data = []
    folha4_0_1_data = []
    folha4_0_2_data = []
    folha4_0_3_data = []
    folha4_0_4_data = []
    folha4_0_5_data = []
    folha4_0_6_data = []
    folha4_0_7_data = []
    folha4_0_8_data = []
    folha4_0_9_data = []
    folha4_0_10_data = []
    folha4_0_11_data = []
    folha4_0_12_data = []
    folha4_0_13_data = []
    folha4_0_14_data = []
    folha4_0_15_data = []

    folha4_1_0_data = []
    folha4_1_1_data = []
    folha4_1_2_data = []
    folha4_1_3_data = []
    folha4_1_4_data = []
    folha4_1_5_data = []
    folha4_1_6_data = []
    folha4_1_7_data = []
    folha4_1_8_data = []
    folha4_1_9_data = []
    folha4_1_10_data = []
    folha4_1_11_data = []
    folha4_1_12_data = []
    folha4_1_13_data = []
    folha4_1_14_data = []
    folha4_1_15_data = []

    folha4_2_0_data = []
    folha4_2_1_data = []
    folha4_2_2_data = []
    folha4_2_3_data = []
    folha4_2_4_data = []
    folha4_2_5_data = []
    folha4_2_6_data = []
    folha4_2_7_data = []
    folha4_2_8_data = []
    folha4_2_9_data = []
    folha4_2_10_data = []
    folha4_2_11_data = []
    folha4_2_12_data = []
    folha4_2_13_data = []
    folha4_2_14_data = []
    folha4_2_15_data = []

    for x in data:

        #raiz
        if features.pixels_por_imagem(x[0]) == 0:

            #patamar 2
            if features.pixels_em_cima(x[0]) == 0:

                #patamar 3
                if features.quantidade_por_quadrante(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_0
                        folha4_0_0_data.append(x)
                    else:
                        #fola4_0_1
                        folha4_0_1_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_2
                        folha4_0_2_data.append(x)
                    else:
                        #folha4_0_3
                        folha4_0_3_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 2:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_4
                        folha4_0_4_data.append(x)
                    else:
                        #folha4_0_5
                        folha4_0_5_data.append(x)

                #else quer dizer que retorna o quadrante 3
                else:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_6
                        folha4_0_6_data.append(x)
                    else:
                        #folha4_0_7
                        folha4_0_7_data.append(x)

            #patamar 2
            elif features.pixels_em_cima(x[0]) == 1:

                #patamar 3
                if features.quantidade_por_quadrante(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_8
                        folha4_0_8_data.append(x)
                    else:
                        #folha4_0_9
                        folha4_0_9_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_10
                        folha4_0_10_data.append(x)
                    else:
                        #folha4_0_11
                        folha4_0_11_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 2:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_12
                        folha4_0_12_data.append(x)
                    else:
                        #folha4_0_13
                        folha4_0_13_data.append(x)

                #else quer dizer que retorna o quadrante 3
                else:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_0_14
                        folha4_0_14_data.append(x)
                    else:
                        #folha4_0_15
                        folha4_0_15_data.append(x)

        #raiz
        elif features.pixels_por_imagem(x[0]) == 1:

            #patamar 2
            if features.pixels_em_cima(x[0]) == 0:

                #patamar 3
                if features.quantidade_por_quadrante(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_0
                        folha4_1_0_data.append(x)
                    else:
                        #folha4_1_1
                        folha4_1_1_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_2
                        folha4_1_2_data.append(x)
                    else:
                        #folha4_1_3
                        folha4_1_3_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 2:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_4
                        folha4_1_4_data.append(x)
                    else:
                        #folha4_1_5
                        folha4_1_5_data.append(x)

                #else quer dizer que retorna o quadrante 3
                else:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_6
                        folha4_1_6_data.append(x)
                    else:
                        #folha4_1_7
                        folha4_1_7_data.append(x)

            #patamar 2
            elif features.pixels_em_cima(x[0]) == 1:

                #patamar 3
                if features.quantidade_por_quadrante(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_8
                        folha4_1_8_data.append(x)
                    else:
                        #folha4_1_9
                        folha4_1_9_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_10
                        folha4_1_10_data.append(x)
                    else:
                        #folha4_1_11
                        folha4_1_11_data.append(x)

                elif features.quantidade_por_quadrante(x[0]) == 2:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_12
                        folha4_1_12_data.append(x)
                    else:
                        #folha4_1_13
                        folha4_1_13_data.append(x)

                #else quer dizer que retorna o quadrante 3
                else:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_1_14
                        folha4_1_14_data.append(x)
                    else:
                        #folha4_1_15
                        folha4_1_15_data.append(x)

        #raiz
        #else quando retorna 2
        else:

            #patamar 2
            if features.quantidade_por_quadrante(x[0]) == 0:
                #nao chegam dados aqui
                #patamar 3
                if features.pixels_em_cima(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_0
                        folha4_2_0_data.append(x)
                    else:
                        #folha4_2_1
                        folha4_2_1_data.append(x)

                elif features.pixels_em_cima(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_2
                        folha4_2_2_data.append(x)
                    else:
                        #folha4_2_3
                        folha4_2_3_data.append(x)

            #patamar 2
            elif features.quantidade_por_quadrante(x[0]) == 1:

                #patamar 3
                if features.pixels_em_cima(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_4
                        folha4_2_4_data.append(x)
                    else:
                        #folha4_2_5
                        folha4_2_5_data.append(x)

                elif features.pixels_em_cima(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_6
                        folha4_2_6_data.append(x)
                    else:
                        #folha4_2_7
                        folha4_2_7_data.append(x)

            #patamar 2
            elif features.quantidade_por_quadrante(x[0]) == 2:

                #patamar 3
                if features.side_pixels(x[0]) == 0:
                    #mais informacao do lado esquerdo

                    if features.pixels_em_cima(x[0]) == 0:
                        #folha4_2_8
                        folha4_2_8_data.append(x)

                    else:
                        #folha4_2_9
                        folha4_2_9_data.append(x)

                elif features.side_pixels(x[0]) == 1:
                    #mais informacao do lado direito
                    if features.pixels_em_cima(x[0]) == 0:
                        #folha4_2_10
                        folha4_2_10_data.append(x)

                    else:
                        #folha4_2_11
                        folha4_2_11_data.append(x)

            #patamar 2
            #else quer dizer que retorna o quadrante 3
            else:

                #patamar 3
                if features.pixels_em_cima(x[0]) == 0:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_12
                        folha4_2_12_data.append(x)
                    else:
                        #folha4_2_13
                        folha4_2_13_data.append(x)

                elif features.pixels_em_cima(x[0]) == 1:

                    if features.side_pixels(x[0]) == 0:
                        #folha4_2_14
                        folha4_2_14_data.append(x)
                    else:
                        #folha4_2_15
                        folha4_2_15_data.append(x)

    print 'O numero que sai mais para a folha 4_0_0 : '
    contador_num_folha(folha4_0_0_data)

    print 'O numero que sai mais para a folha 4_0_1 : '
    contador_num_folha(folha4_0_1_data)

    print 'O numero que sai mais para a folha 4_0_2 : '
    contador_num_folha(folha4_0_2_data)

    print 'O numero que sai mais para a folha 4_0_3 : '
    contador_num_folha(folha4_0_3_data)

    print 'O numero que sai mais para a folha 4_0_4 : '
    contador_num_folha(folha4_0_4_data)

    print 'O numero que sai mais para a folha 4_0_5 : '
    contador_num_folha(folha4_0_5_data)

    print 'O numero que sai mais para a folha 4_0_6 : '
    contador_num_folha(folha4_0_6_data)

    print 'O numero que sai mais para a folha 4_0_7 : '
    contador_num_folha(folha4_0_7_data)

    print 'O numero que sai mais para a folha 4_0_8 : '
    contador_num_folha(folha4_0_8_data)

    print 'O numero que sai mais para a folha 4_0_9 : '
    contador_num_folha(folha4_0_9_data)

    print 'O numero que sai mais para a folha 4_0_10 : '
    contador_num_folha(folha4_0_10_data)

    print 'O numero que sai mais para a folha 4_0_11 : '
    contador_num_folha(folha4_0_11_data)

    print 'O numero que sai mais para a folha 4_0_12 : '
    contador_num_folha(folha4_0_12_data)

    print 'O numero que sai mais para a folha 4_0_13 : '
    contador_num_folha(folha4_0_13_data)

    print 'O numero que sai mais para a folha 4_0_14 : '
    contador_num_folha(folha4_0_14_data)

    print 'O numero que sai mais para a folha 4_0_15 : '
    contador_num_folha(folha4_0_15_data)

    print 'O numero que sai mais para a folha 4_1_0 : '
    contador_num_folha(folha4_1_0_data)

    print 'O numero que sai mais para a folha 4_1_1 : '
    contador_num_folha(folha4_1_1_data)

    print 'O numero que sai mais para a folha 4_1_2 : '
    contador_num_folha(folha4_1_2_data)

    print 'O numero que sai mais para a folha 4_1_3 : '
    contador_num_folha(folha4_1_3_data)

    print 'O numero que sai mais para a folha 4_1_4 : '
    contador_num_folha(folha4_1_4_data)

    print 'O numero que sai mais para a folha 4_1_5 : '
    contador_num_folha(folha4_1_5_data)

    print 'O numero que sai mais para a folha 4_1_6 : '
    contador_num_folha(folha4_1_6_data)

    print 'O numero que sai mais para a folha 4_1_7 : '
    contador_num_folha(folha4_1_7_data)

    print 'O numero que sai mais para a folha 4_1_8 : '
    contador_num_folha(folha4_1_8_data)

    print 'O numero que sai mais para a folha 4_1_9 : '
    contador_num_folha(folha4_1_9_data)

    print 'O numero que sai mais para a folha 4_1_10 : '
    contador_num_folha(folha4_1_10_data)

    print 'O numero que sai mais para a folha 4_1_11 : '
    contador_num_folha(folha4_1_11_data)

    print 'O numero que sai mais para a folha 4_1_12 : '
    contador_num_folha(folha4_1_12_data)

    print 'O numero que sai mais para a folha 4_1_13 : '
    contador_num_folha(folha4_1_13_data)

    print 'O numero que sai mais para a folha 4_1_14 : '
    contador_num_folha(folha4_1_14_data)

    print 'O numero que sai mais para a folha 4_1_15 : '
    contador_num_folha(folha4_1_15_data)

    print 'O numero que sai mais para a folha 4_2_0 : '
    contador_num_folha(folha4_2_0_data)

    print 'O numero que sai mais para a folha 4_2_1 : '
    contador_num_folha(folha4_2_1_data)

    print 'O numero que sai mais para a folha 4_2_2 : '
    contador_num_folha(folha4_2_2_data)

    print 'O numero que sai mais para a folha 4_2_3 : '
    contador_num_folha(folha4_2_3_data)

    print 'O numero que sai mais para a folha 4_2_4 : '
    contador_num_folha(folha4_2_4_data)

    print 'O numero que sai mais para a folha 4_2_5 : '
    contador_num_folha(folha4_2_5_data)

    print 'O numero que sai mais para a folha 4_2_6 : '
    contador_num_folha(folha4_2_6_data)

    print 'O numero que sai mais para a folha 4_2_7 : '
    contador_num_folha(folha4_2_7_data)

    print 'O numero que sai mais para a folha 4_2_8 : '
    contador_num_folha(folha4_2_8_data)

    print 'O numero que sai mais para a folha 4_2_9 : '
    contador_num_folha(folha4_2_9_data)

    print 'O numero que sai mais para a folha 4_2_10 : '
    contador_num_folha(folha4_2_10_data)

    print 'O numero que sai mais para a folha 4_2_11 : '
    contador_num_folha(folha4_2_11_data)

    print 'O numero que sai mais para a folha 4_2_12 : '
    contador_num_folha(folha4_2_12_data)

    print 'O numero que sai mais para a folha 4_2_13 : '
    contador_num_folha(folha4_2_13_data)

    print 'O numero que sai mais para a folha 4_2_14 : '
    contador_num_folha(folha4_2_14_data)

    print 'O numero que sai mais para a folha 4_2_15 : '
    contador_num_folha(folha4_2_15_data)
def construcao_patamar3(data):

    classe0_0_data = []
    classe0_1_data = []
    classe1_0_data = []
    classe1_1_data = []
    classe2_0_data = []
    classe2_1_data = []
    classe2_2_data = []
    classe2_3_data = []

    for x in data:

        if features.pixels_por_imagem(x[0]) == 0:

            if features.pixels_em_cima(x[0]) == 0:
                classe0_0_data.append(x)

            #else quer dizer que faz return de 1
            else:
                classe0_1_data.append(x)

        elif features.pixels_por_imagem(x[0]) == 1:

            if features.pixels_em_cima(x[0]) == 0:
                classe1_0_data.append(x)

            else:
                classe1_1_data.append(x)

        else:

            if features.quantidade_por_quadrante(x[0]) == 0:
                classe2_0_data.append(x)

            elif features.quantidade_por_quadrante(x[0]) == 1:
                classe2_1_data.append(x)

            elif features.quantidade_por_quadrante(x[0]) == 2:
                classe2_2_data.append(x)

            #else quer dizer que fez return de 3
            else:
                classe2_3_data.append(x)

    print 'O ganho de informacao no ramo classe0_0 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe0_0_data))
    print 'O ganho de informacao no ramo classe0_0 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe0_0_data))

    print 'O ganho de informacao no ramo classe0_1 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe0_1_data))
    print 'O ganho de informacao no ramo classe0_1 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe0_1_data))

    print 'O ganho de informacao no ramo classe1_0 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe1_0_data))
    print 'O ganho de informacao no ramo classe1_0 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe1_0_data))

    print 'O ganho de informacao no ramo classe1_1 do atributo quantidade_por_quadrante: ' + str(
        features_gain.quantidade_por_quadrante_gain(classe1_1_data))
    print 'O ganho de informacao no ramo classe1_1 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe1_1_data))

    print 'O ganho de informacao no ramo classe2_0 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe2_0_data))
    print 'O ganho de informacao no ramo classe2_0 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe2_0_data))

    print 'O ganho de informacao no ramo classe2_1 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe2_1_data))
    print 'O ganho de informacao no ramo classe2_1 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe2_1_data))

    print 'O ganho de informacao no ramo classe2_2 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe2_2_data))
    print 'O ganho de informacao no ramo classe2_2 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe2_2_data))

    print 'O ganho de informacao no ramo classe2_3 do atributo pixels_em_cima: ' + str(
        features_gain.pixels_em_cima_gain(classe2_3_data))
    print 'O ganho de informacao no ramo classe2_3 do atributo side_pixels: ' + str(
        features_gain.side_pixels_gain(classe2_3_data))