Olá, estava desenvolvendo um algoritmo que classificasse frases em negativa e afirmativa a partir de uma base de dados. Tudo corria bem até que me deparei com o seguinte erro:
ValueError Traceback (most recent call last)
<ipython-input-58-8eaa1ece0b02> in <module>
13 le.fit(treino_x)
14 le.fit(treino_y)
---> 15 le.fit(teste_x)
16 le.fit(teste_y)
17
c:\python38\lib\site-packages\sklearn\preprocessing\_label.py in fit(self, y)
237 self : returns an instance of self.
238 """
--> 239 y = column_or_1d(y, warn=True)
240 self.classes_ = _encode(y)
241 return self
c:\python38\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
70 FutureWarning)
71 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 72 return f(**kwargs)
73 return inner_f
74
c:\python38\lib\site-packages\sklearn\utils\validation.py in column_or_1d(y, warn)
843 return np.ravel(y)
844
--> 845 raise ValueError(
846 "y should be a 1d array, "
847 "got an array of shape {} instead.".format(shape))
ValueError: y should be a 1d array, got an array of shape (5, 2) instead.
Busquei soluções na web e descobri a classe LabelEncoder()
, para padronizar o enconding da base de dados, e o método reshape
. Tentei aplicá-los mas não consegui que surtissem efeito, a exceção retornada foi a mesma, segue o código:
import pandas as pd
reviews = pd.read_csv("data.csv")
#reviews.head()
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
x = reviews[["text_en", "text_pt"]]
y = reviews["sentiment"]
SEED = 5
np.random.seed(SEED)
treino_x, teste_x, treino_y, teste_y = train_test_split(x, y, test_size = 0.0001,
stratify = y)
treino_y = treino_y.values.reshape(-1, 1)
treino_x = treino_x.values.reshape(-1, 1)
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(treino_x)
le.fit(treino_y)
le.fit(teste_x)
le.fit(teste_y)
model = LinearSVC()
model.fit(treino_x, treino_y)
Fiquei confuso ao ver que quando aplicava um primeiro a exceção lançada era diferente. Como não tenho um conhecimento muito aprofundado sobre essas classes, gostaria de saber se existe algum problema de compatibilidade entra elas, senão, como poderia resolver esse problema, agradeço.