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á 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, a
Nesse 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.