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
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!