Oii Jose, tudo bem por ai?
Então, o que aconteceu no seu código que é você precisa utilizar a SEED no LinearSVC() também, dessa forma aqui:
modelo = LinearSVC(random_state = SEED)
Então seu código ficaria dessa forma:
from sklearn.model_selection import train_test_split #faz as divisões de treino e teste com base no size
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
SEED = 5 #define a ordem de numeros aleatorios para que não varie o resultado
treino_x, teste_x, treino_y, teste_y = train_test_split(x,y, random_state = SEED, test_size = 0.25,
stratify = y)
print("Treinaremos com %d elementos e testaremos com %d elementos" % (len(treino_x), len(teste_x)))
modelo = LinearSVC(random_state = SEED)
modelo.fit(treino_x, treino_y) #treinar com valores
previsoes = modelo.predict(teste_x) #testar previsoes
acuracia = accuracy_score(teste_y, previsoes) * 100
print("A acuracia foi %.2f%%" % acuracia)
Para que você não precise colocar a SEED durante o código, você pode definir que todos os comandos que utilizam o random_state recebam a mesma SEED, dessa forma:
SEED = 5
np.random.seed(SEED)
Ai o seu código ficaria assim:
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
SEED = 5
np.random.seed(SEED)
treino_x, teste_x, treino_y, teste_y = train_test_split(x, y, test_size = 0.25,
stratify = y)
print("Treinaremos com %d elementos e testaremos com %d elementos" % (len(treino_x), len(teste_x)))
modelo = LinearSVC()
modelo.fit(treino_x, treino_y)
previsoes = modelo.predict(teste_x)
acuracia = accuracy_score(teste_y, previsoes) * 100
print("A acurácia foi %.2f%%" % acuracia)
Se você tiver mais alguma dúvida, estou por aqui!
Bons estudos ^^