Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre SEED

Olá! Eu usei o seed padronizado com o intuito de obter sempre o mesmo valor de acurácia, correto? Porém, cada vez que eu rodo esse valor da acurácia muda. Não entendi o que pode ser. Segue o código que usei abaixo.

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

# startify = y é para ser proporcional

SEED = 20
treino_x, teste_x, treino_y, teste_y = train_test_split(x, y, random_state=SEED, test_size=0.25, stratify = y)
print(f'Treinaremos com {len(treino_x)} e testaremos com {len(teste_x)}')

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

acurácia = accuracy_score(teste_y, previsoes)
print(f'A acurácia será de {acurácia}')
1 resposta
solução!

Olá, Ederson! Tudo bom? Espero que sim!

Você definiu a variável SEED = 20, mas em nenhum momento chegou a utilizá-la.

Dentro de cada instância dos modelos no Sklearn, existe um parâmetro chamado random_state que deve receber o valor da SEED que você está utilizando, exatamente da mesma maneira que você utilizou no train_test_split. Então para cada modelo precisaríamos identificá-lo como:

model = LinearSVC(random_state=SEED)

Nós também podemos definir uma SEED do Numpy, que na ausência dos parâmetros random_state nos modelos que a utilizam, o valor padrão utilizado será a SEED definida no Numpy, exemplo:

np.random.seed(20)

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

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