1
resposta

[Dúvida] Seed do sklearn não está funcionando

Estou vendo o curso de machine learning, porém na hora de testar meu código, ele não funciona como deveria e sempre retorna resultados diferentes

import pandas as pd
from sklearn.svm import LinearSVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
uri = "https://gist.githubusercontent.com/guilhermesilveira/1b7d5475863c15f484ac495bd70975cf/raw/16aff7a0aee67e7c100a2a48b676a2d2d142f646/projects.csv"
dados = pd.read_csv(uri)
dados.head()
a_renomear = {
    'expected_hours':'horas_esperadas',
    'price' : 'preco',
    'unfinished' : 'nao_finalizado'
}
dados = dados.rename(columns = a_renomear)
troca = {
    0:1,
    1:0
}
dados['finalizado'] = dados.nao_finalizado.map(troca)

SEED = 2
x = dados[['horas_esperadas','preco']]
y = dados['finalizado']
treino_x, teste_x, treino_y, teste_y = train_test_split(x, y,random_state = SEED, test_size = 0.25,stratify = y)
model = LinearSVC()
model.fit(treino_x,treino_y)
predict = model.predict(teste_x)
acuracia = accuracy_score(teste_y,predict) * 100
print("Acuracia foi de %.2f%%" % acuracia)

aula : https://cursos.alura.com.br/course/machine-learning-introducao-a-classificacao-com-sklearn/task/46779

1 resposta

Olá, João, tudo bem?

O que está acontecendo é que o modelo LinearSVC() pode encontrar diferentes resultados durante o processo de treinamento, mesmo quando os dados de entrada e o código são os mesmos.

Para garantir a consistência dos resultados e tornar seu código mais previsível, você pode utilizar o parâmetro "random_state" ao criar o modelo LinearSVC(), como demonstrado abaixo:

model = LinearSVC(random_state = SEED)

Isso fará com que o modelo seja inicializado com uma semente aleatória fixa (SEED), o que resultará em resultados consistentes sempre que você executar o código.

Lembre-se de que a aleatoriedade desempenha um papel importante em muitos algoritmos de machine learning, mas ao definir um "random_state", você controla essa aleatoriedade para fins de consistência.

Espero ter ajudado.

Abraços e bons estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software