1
resposta

[Bug] DataConversionWarning

Copiei o exemplo e está aparecendo um warning no resultado, mesmo quando eu tiro o "teste_y.shape":

/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py:1143: 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)

1 resposta

Olá, Antoniel! Tudo joia?

Isso geralmente ocorre quando o formato dos dados não é o esperado pelo método que você está usando. No seu caso, o aviso está dizendo que um vetor de coluna foi passado quando um array 1D era esperado.

No trecho de código que você está usando para treinar o modelo:

from sklearn.svm import LinearSVC

modelo = LinearSVC()
modelo.fit(treino_x, treino_y)

O método fit está esperando que treino_y seja um array 1D, mas atualmente ele é um vetor de coluna (ou seja, um array 2D). Você pode resolver isso transformando treino_y em um array 1D antes de passá-lo para o método fit.

A função ravel() do numpy pode ser usada para isso. Aqui está um exemplo de como você pode modificar seu código:

from sklearn.svm import LinearSVC

modelo = LinearSVC()
modelo.fit(treino_x, treino_y.values.ravel())

Neste exemplo, treino_y.values.ravel() transforma treino_y em um array 1D. O .values é usado para obter os valores do DataFrame do pandas como um array numpy, e então ravel() é usado para transformar esse array 2D em um array 1D.

Espero ter ajudado. Caso tenha mais problemas ou dúvidas referentes a este tópico, estarei à disposição para ajudá-lo.

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