示例#1
0
def gerarSolucao(nProts):
    variaveisConsideradas = random.rand(shape(treinamento)[1])    
    [prototipos,classes] = slvq.iniciarPrototiposPorSelecao(treinamento, classesTreinamento, nProts)
        
    fonte = ajustarMinsMaxs(ajustarVariaveisConsideradas(append([variaveisConsideradas],prototipos,axis=0)))    
    [pesos,fonte[1:],removidos] = calcularPesosPrototipos(fonte[1:], classes, fonte[0,:pa])
    return [fonte, classes, pesos, removidos]
示例#2
0
def rodarValidacaoCruzada(dados, classes, nMedias, montecarlo, nFolds):
    erros = zeros(montecarlo * nFolds)
    n = size(classes)
    for i in range(montecarlo):
        indices = arange(n)
        random.shuffle(indices)
        dadosEmbaralhados = dados[indices, :]
        classesEmbaralhadas = classes[indices]
        folds = slvq.separarFolds(dadosEmbaralhados, classesEmbaralhadas,
                                  nFolds)
        for fold in range(nFolds):
            print i * nFolds + fold
            [treinamento, classesTreinamento, teste,
             classesTeste] = slvq.separarConjuntos(folds, dadosEmbaralhados,
                                                   classesEmbaralhadas, fold)
            preds = zeros((30, len(classesTeste)))
            from tqdm import tqdm
            for l in tqdm(arange(30)):
                [prototipos, classesPrototipos
                 ] = slvq.iniciarPrototiposPorSelecao(treinamento,
                                                      classesTreinamento,
                                                      nMedias)
                [prototipos, pesos,
                 _] = old.fcm.treinar(treinamento, classesTreinamento,
                                      prototipos, classesPrototipos, 500)
                # print testar(teste, classesTeste, prototipos, classesPrototipos, pesos)
                [prototipos,
                 pesos] = treinar(treinamento, classesTreinamento, prototipos,
                                  classesPrototipos, pesos, 0.3)
                preds[l] = testar(teste, classesTeste, prototipos,
                                  classesPrototipos, pesos)
            predictions = around(mean(preds, axis=0))
            print_confusion_matrix(classesTeste, predictions)
            exit()
            # erros[i*nFolds + fold] = testar(teste, classesTeste, prototipos, classesPrototipos, pesos)
            # print erros[i*nFolds + fold]
    print erros
    print mean(erros)
    print std(erros)
示例#3
0
def gerarSolucao(nProts):  
    [prototipos,classes] = slvq.iniciarPrototiposPorSelecao(treinamento, classesTreinamento, nProts)
          
    return [prototipos, classes]