Ejemplo n.º 1
0
def classificarNaiveDiscreto(base,classes,intervalos):
    for e in intervalos:
        try:
            b = discretizacao(base, e)
            m1,m2 = separarElementosPorClasse(b, classes)
            v1 = np.cov(np.array(m1).T)
            v2 = np.cov(np.array(m2).T)
            m1 = np.mean(m1, axis=0)
            m2 = np.mean(m2, axis=0)
            print("intervalo:%s - erro:%s"%(e,NaiveBayes.classificar(m1, m2, v1, v2, b, classes)))
            print(confusion_matrix(base.classes, b.classes,classes))
        except:
            print("não possivel para o intervalo:%s"%e)
Ejemplo n.º 2
0
print(confusion_matrix(certa,pred,["M","B"]))
erro,pred,certa = classicarKNN(baseWpdc)
print("erro base wpdc:%s"%erro)
print(confusion_matrix(certa,pred,["N","R"]))
print("---------------------Segunda Questao------------------------\n")
#Q2
baseCancer2 = Base(copy.deepcopy(cancerOri.classes),copy.deepcopy(cancerOri.atributos))
m1,m2 = separarElementosPorClasse(baseCancer2, ["2","4"])
v1 = np.cov(np.array(m1).T)
v2 = np.cov(np.array(m2).T)
#v1 = np.var(m1)
#v2 = np.var(m2)

m1 = np.mean(m1, axis=0)
m2 = np.mean(m2, axis=0)
print("erro naiveBayes cancer:%s"%NaiveBayes.classificar(m1, m2, v1, v2, baseCancer2, ["2","4"]))
print(confusion_matrix(cancerOri.classes, baseCancer2.classes,["2","4"]))
#Q3
print("---------------------Terceira Questao------------------------\n")
b = Base(copy.deepcopy(wbdcOri.classes),copy.deepcopy(wbdcOri.atributos))
m1,m2 = separarElementosPorClasse(b, ["M","B"])
v1 = np.cov(np.array(m1).T)
v2 = np.cov(np.array(m2).T)
m1 = np.mean(m1, axis=0)
m2 = np.mean(m2, axis=0)
print("Sem discretizacao wbdc- erro:%s"%(NaiveBayes.classificar(m1, m2, v1, v2, b, ["M","B"])))
print(confusion_matrix(wbdcOri.classes, b.classes,["M","B"]))
intervalos = [ 2, 4,8, 16, 32, 64, 128, 256]
print("erro discretizacao wbdc - NAIVEBAYES")
classificarNaiveDiscreto(wbdcOri, ["M","B"], intervalos)
#Wpdc sem discretizaçao      
Ejemplo n.º 3
0
    atributos = []
    classes = []
    novaLista = []
    for i in linhas[1:]:
        temp = []
        a = i.split(" ")
        for e in a:
            if (e != "" and e != "\n"):
                temp.append(float(e))
        novaLista.append(temp)
    arq.close()
    for e in novaLista:
        classes.append(e[len(e) - 1])
        atributos.append(e[2:len(e) - 1])
    return Base(classes, atributos)


baseClima = separaBaseClima()
p = [0] + list(range(1, 17, 2))

for k in p:
    baseClimePCA = pcaScore(baseClima, k)
    m1, m2 = separarElementosPorClasse(baseClimePCA, baseClimePCA.classes)
    v1 = np.cov(np.array(m1).T)
    v2 = np.cov(np.array(m2).T)
    m1 = np.mean(m1, axis=0)
    m2 = np.mean(m2, axis=0)
    print("acerto com k=%s - 1-nn:%s" % (k, 1 - classicarKNN(baseClimePCA, 1)))
    print("acerto com k=%s - naiveBayes:%s" % (k, 1 - NaiveBayes.classificar(
        m1, m2, v1, v2, baseClimePCA, baseClimePCA.classes)))