1
resposta

accuracy_score

Estou com um problema com a função accuracy_score.

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)

o meu código acima está retornando o erro a baixo.

ValueError                                Traceback (most recent call last)
<ipython-input-56-04eed5cd32e0> in <cell line: 8>()
      6 previsoes = modelo.predict(teste_x)
      7 
----> 8 accuracy_score(teste_y, previsoes)

2 frames
/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py in _check_targets(y_true, y_pred)
     93 
     94     if len(y_type) > 1:
---> 95         raise ValueError(
     96             "Classification metrics can't handle a mix of {0} and {1} targets".format(
     97                 type_true, type_pred

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

Oii, Maria, tudo bem?

Tem uma incompatibilidade nos tipos de dados que você está passando para a função de accuracy_score. O erro menciona uma mistura de multilabel-indicator e binary targets, o que sugere que os dados de teste_y ou previsoes podem não estar no formato esperado.

Uma coisa importante a verificar é se o treino_y e o teste_y estão sendo formatados corretamente como arrays unidimensionais. Isso porque a LinearSVC espera que o y seja um vetor de forma (n_samples,) e não como um dataframe ou matriz de forma (n_samples, 1).

E, por fim, quando você separa o y dos dados, tente garantir, por favor, que ele seja um array unidimensional. Com o pandas você pode fazer isso usando a .values.ravel() para transformar o y em um formato adequado.

Se outra dúvida surgir, estamos disponíveis aqui no fórum! :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.