3
respostas

Dúvida no número inicial SEED

Pessoal fiquei sem entender sobre o número inicial para os algorítimos de geração de números aleatórios. O que significa esse número? Eu não entendi pra que serve ele, como funciona e do uso dele. Depois ele usou 20 pra ele, por que 20? Não entendi. o RANDOM_STATE pelo que parece é uma variável da função e o SEED foi pra ela, também não entendi... Agradeço quem puder me explicar aí, porque nessa parte realmente boiei...

3 respostas

Oi Fagner!!

Acontece quem ao gerar números aleatórios em um computador, o mesmo sempre seguirá determinado algoritmo para realizá-lo. Dessa forma os resultados nunca serão tão aleatórios assim. Por isso, costuma-se chamá-los de geradores de números pseudo-aleatórios, onde dependendo do valor da sua seed (que é um número ou vetor para iniciar o algoritmo de números aleatórios) receberemos resultados diferentes em nossas execuções.

Assim, o que acontece quando executamos um random_state com a mesma seed duas ou mais vezes? O resultado será sempre o mesmo!

Dessa forma, qual é o número em si não importa, mas trocá-los irá gerar diferentes valores aleatórios, e assim, resultados diferentes. Repare que ao executar o algoritmo da aula com o mesmo valor da seed que ele inseriu, você irá obter o mesmo valor impresso do console do professor. Isso serve tanto para fins didáticos (afinal, você terá o mesmo resultado que os do curso) quanto para prevermos determinado resultado em um caso específico.

Espero que tenha ajudado! Muito sucesso e bons estudos!

Entendi razoavelmente. Então sempre é necessário um seed para aleatoredade do treino do algoritimo, é isso? E como na máquina nunca é realmente aleatóreo, esse seed é o que vai determinar a "aleatoredade" do algorítimo, é isso? Foi o que entendi... E em relação a isso, tem como determinar um bom númeor para a aleatoredade? Existe uma maneira de deixar mais aleatória ainda? Pois, acho que quanto mais aleatório, melhor é o treino do algorítimo.

Isso mesmo! O seed será responsável por gerar a aleatoriedade do algoritmo pseudo-randômico, então é sempre interessante mudá-lo para diversos valores para testar os diferentes resultados do seu treino!

Não existe um "bom valor" para a sua seed, então o número a ser inserido ali pode ser quaquer um de sua preferência. Quanto a conseguir deixar mais aleatório ainda, você pode tentar utilizar alguma biblioteca em python que utilize valores randômicos, como o numpy.random por exemplo, e determinar que o valor da sua seed seja determinado pela função rand(). Ainda assim os resultados não serão 100% imprevisíveis, mas já será possível diversificar bastante os resultados nas suas execuções.

Espero ter conseguido esclarecer a sua dúvida! Sucesso e bons estudos!