Do jeito que está na aula, o SEED não está sendo útil para fixar os resultados. Para fixar, temos que fazer isso:
SEED = 4121988
np.random.seed(SEED)
Assim, o clf_arvore.score(x_test, y_test) vai dar 0.7239583333333334
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Do jeito que está na aula, o SEED não está sendo útil para fixar os resultados. Para fixar, temos que fazer isso:
SEED = 4121988
np.random.seed(SEED)
Assim, o clf_arvore.score(x_test, y_test) vai dar 0.7239583333333334
Oi Leonardo! Tudo bem com você? Espero que sim!
Você está correto. A forma como está colocado o SEED, não está sendo útil pois no train_test_split o parâmetro random_state não está sendo definido e por isso, sempre irá surgir uma combinação aleatória. Mas outra opção para esse caso é definir o random_state no método train_test_split:
from sklearn.model_selection import train_test_split
SEED = 4121988
x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, random_state = SEED)No caso do código da aula, o SEED só é mesmo utilizado na definição do modelo em clf_arvore = DecisionTreeClassifier(random_state=SEED, max_depth=3) por causa do parâmetro random_state=SEED.
Mesmo assim, utilizar np.random.seed(SEED) é uma ótima opção para não ter que sempre definir o parâmetro random_state toda vez que for chamar algum método. Parabéns, e muito obrigada por compartilhar aqui sua resposta! Vou comunicar isso a equipe responsável para que sejam feitos os devidos ajustes ;-)
Bons estudos!