2
respostas

Erro ao chamar o accuracy_score

Quando tento utilizar o accuracy_score, o código me retorna o erro:

ValueError: Classification metrics can't handle a mix of multilabel-indicator and binary targets

Tentei revisar a aula inteira e aparentemente até o momento que chamo o accuracy_score o código parece exatamente igual ao do professor, não consegui identificar algum erro, quando tento dar um print no previsoes ele me retorna isso:

[0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0]

Sem divisões nem nada

Meu código:

import pandas as pd

uri = "https://gist.githubusercontent.com/guilhermesilveira/2d2efa37d66b6c84a722ea627a897ced/raw/10968b997d885cbded1c92938c7a9912ba41c615/tracking.csv"
dados = pd.read_csv(uri)

mapa = {
    "home" : "principal",
    "how_it_works" : "como_funciona",
    "contact" : "contato",
    "bought" : "comprou"
}
dados = dados.rename(columns = mapa)

x = dados[["principal", "como_funciona", "contato"]]
y = dados["comprou"]

treino_x = x[:75]
treino_y = y[:75]

teste_x = x[75:]
teste_y = x[75:]

print("Treinaremos com %d elementos e testaremos com %d elementos" % (len(treino_x), len(teste_x)))

from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score

modelo = LinearSVC()
modelo.fit(treino_x, treino_y)
previsoes = modelo.predict(teste_x)

accuracy_score(teste_y, previsoes)
2 respostas

========= RESOLVIDO ==========

Na hora da declaração da variável teste_y chamei o x[75:] ao invés do y[75:]

Oi, Jonas, tudo certo?

Obrigada por compartilhar o seu código e, também, compartilhar o local do bug de seu erro. Mais estudantes que passarem pela mesma situação podem ter ajuda pelo seu tópico, caso vejam ele.

Se alguma outra dúvida surgir, estou à disposição para te auxiliar.

Continue com os bons estudos! Abraços.

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