3
respostas

Aula 2 - Machine Learning - Erro no calculo da taxa de acerto

O código abaixo quando executado baseado no arquivo csv fornecido com os dados e marcações, não roda. Ocorre um erro na linha 18, parece ocorrer uma falha pois uma variavel é um array e a outra é array de arrays.

Alguém passou por algo parecido?

from dados import carregar_acessos
X,Y = carregar_acessos()

treino_dados = X[:90]
treino_marcacoes = Y[:90]

teste_dados = X[-9:]
teste_marcacoes = Y[-9:]

from sklearn.naive_bayes import MultinomialNB
modelo = MultinomialNB()
modelo.fit(treino_dados, treino_marcacoes)

resultado = modelo.predict(teste_dados)

diferencas = resultado - teste_marcacoes

acertos = [d for d in diferencas if d == 0]
total_de_acertos = len(acertos)
total_de_elementos = len(teste_dados)

taxa_de_acerto = 100.0 * total_de_acertos / total_de_elementos

print(taxa_de_acerto)
print(total_de_elementos)

Obrigado

3 respostas

O erro que ocorre é:

/Library/Python/2.7/site-packages/sklearn/utils/validation.py:526: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). y = column_or_1d(y, warn=True) Traceback (most recent call last): File "classifica_acesso2.py", line 18, in acertos = [d for d in diferencas if d == 0] ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Bom dia Leandro,

Pode imprimir sua variavel diferencas para conferirmos?

[]s

ps: como guia, o resultado deveria ser esse: https://github.com/alura-cursos/machine-learning-introducao-a-classificacao/blob/master/classifica_acessos.py

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software