Olá Guilherme, tudo bem?
Também fiquei na dúvida da utilização do SEED. Porque eu preciso definir um valor de SEED ?? Porque devo utilizaro numpy para defini-lo? Qual o critério que eu utilizo para definir um valor para o SEED ?
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!
Olá Guilherme, tudo bem?
Também fiquei na dúvida da utilização do SEED. Porque eu preciso definir um valor de SEED ?? Porque devo utilizaro numpy para defini-lo? Qual o critério que eu utilizo para definir um valor para o SEED ?
Olá Daniel,
O SEED serve para fixar o resultado de algumas funções (como a train_test_split), se você remover esse SEED vai perceber que cada vez que executar o train_test_split os dados separados para treino e teste vão ser diferentes pois os dados são embaralhados antes de serem separados. Assim para permitir que você possa reproduzir o mesmo teste, com os mesmos dados, você pode utilizar o SEED para remover essa aletóriedade.
Já para definir um valor pode ser qualquer um que você quiser, um número muito utilizado por exemplo é o 42 simplesmente por ser um número famoso.
Para tentar exemplificar de form bem básica imagine que temos um conjunto com os valores a, b, c e executamos uma função que embaralha a ordem desses valores, os possíveis reultados são:
1- a, b, c
2- a, c, b
3- b, a, c
4- b, c, a
5- c, a, b
6- c, b, aNesse exemplo podemos dizer que o SEED são os número de 1 até 6, assim definindo o SEED como 4 "controlamos" a aleatóriedade e vamos ter sempra b, c, a como resultado.
Espero ter ajudado, qualquer dúvida é só falar!
Olá Lucas.
Entendi, então no caso é indiferente o tamanho da minha base que eu irei utilizar o valor do SEED é um número aleatório, seria isso? Por exemplo, eu tenho uma base de dados estou fazendo uma análise para prever o churn. São mais ou menos 50 mil registros que irem separar em dados de treino e teste. Nesta situação por exemplo posso usar o SEED igual a 42 apenas para eliminar a aleatoriedade destes meus dados ?
Isso mesmo Daniel, o SEED serve como uma base para calcular a aleatóriedade, então normalmente é gerado um SEED aleatório por trás, e como é gerado um novo SEED a cada execução o resultado vai variar. Meu exemplo foi super simplificado só para dar uma ideia.
Você utiliza o SEED para eliminar a aleatóriedade no resultado de algumas funções e não nos seus dados, com o objetivo final de permitir que amanhã você possa executar o mesmo código com os mesmos dados e obter o mesmo resultado.
Você pode sim definir o SEED como 42, ou utilizar a data de hoje ou seu número preferido, o número de registros não importa para o SEED.
Apenas em alguns casos específicos que você deve se preocupar com o valor definido para o SEED, de certa forma é possível manipular o resultado de um modelo procurando por por um SEED que favoreça os seus objetivos, isso não é bom pois normalmente queremos um modelo bem treinado para receber novos dados e não um modelo altamente engessado para os dados atuais.
Blz Lucas,
muito obrigado por responde as dúvidas.