Pular para o conteúdo principal

Compartilhe

Converta seu texto em voz natural em segundos

Converter Texto em Voz Converta seu texto em voz natural em segundos, usando mais de 630 vozes realistas. Baixe seus arquivos de áudio em formato MP3. Conversor de texto em voz Use nosso conversor de texto em voz com ajuda de vozes naturais falando 80 idiomas. Experimente gratuitamente com nossos conversores. Linguagem   Africano (Sudáfrica)   Albanés (Albania)   Alemán (Alemania)   Argelia   Amárico   Árabe (Asia)   Árabe (Egipto)   Árabe (Golfo)   Árabe (Irak)   Árabe (Jordania)   Árabe (Kuwait)   Árabe (Líbano)   Árabe (Libia)   Árabe (Marruecos)   Árabe (Omán)   Árabe (Qatar)   Árabe (Arabia Saudita)   Árabe (Siria)   Árabe (Túnez)   Árabe (Yemen)   Armenio (Armenia)   Azerbaiyano (Azerbaiyán)   Bahréin   Euskera (España)   Bengalí   Bengalí (India)   Bosnio (Bosnia y Herzegovina)   Búlgaro (Bulgaria)   Birmano (Myanmar)   Catalán (Esp...

Set.seed

ti-enxame.com

Razões para usar a função set.seed

Muitas vezes vi a função set.seed em R, antes de iniciar o programa. Eu sei que é basicamente usado para a geração de números aleatórios. Existe alguma necessidade específica para definir isso?

 168
Vignesh

A necessidade é o possível desejo de resultados reproduzíveis, que podem, por exemplo, advir da tentativa de depurar seu programa ou, claro, de tentar refazer o que ele faz:

Esses dois resultados "nunca" serão reproduzidos, já que eu pedi algo "aleatório":

R> sample(LETTERS, 5)
[1] "K" "N" "R" "Z" "G"
R> sample(LETTERS, 5)
[1] "L" "P" "J" "E" "D"

Esses dois, no entanto, são idênticos porque eu configurei a semente:

R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> 

Há vasta literatura sobre tudo isso; A Wikipédia é um bom começo. Em essência, esses RNGs são chamados de Geradores de Números Pseudo-Aleatórios porque eles são de fato totalmente algorítmicos: dada a mesma semente, você obtém a mesma sequência. E isso é uma característica e não um bug.

 242
Dirk Eddelbuettel

Você precisa definir a semente toda vez que quiser obter um resultado aleatório reproduzível.

set.seed(1)
rnorm(4)
set.seed(1)
rnorm(4)
 30
Chia-hung

Apenas adicionando alguns aspectos de adição. Necessidade de criar sementes: No mundo acadêmico, se alguém afirma que seu algoritmo alcança, digamos, 98,05% de desempenho em uma simulação, outros precisam ser capazes de reproduzi-lo.

?set.seed

Indo através do arquivo de ajuda desta função, estes são alguns fatos interessantes:

(1) set.seed () retorna NULL, invisível

(2) "Inicialmente, não há semente; um novo é criado a partir do momento atual e do ID do processo quando um é necessário. Portanto, diferentes sessões fornecerão resultados de simulação diferentes, por padrão. No entanto, a semente pode ser restaurada de um sessão anterior se um espaço de trabalho salvo anteriormente for restaurado. ", é por isso que você deve chamar set.seed () com os mesmos valores inteiros na próxima vez que desejar uma sequência de sequência aleatória.

 16
Ridingstar

A fixação da semente é essencial quando tentamos otimizar uma função que envolve números gerados aleatoriamente (por exemplo, na estimativa baseada em simulação). Falando livremente, se não corrigirmos a semente, a variação devida ao desenho de números aleatórios diferentes provavelmente fará com que o algoritmo de otimização falhe.

Suponha que, por algum motivo, você queira estimar o desvio padrão (dp) de uma distribuição normal média-zero por simulação, dada uma amostra. Isso pode ser conseguido executando uma otimização numérica em torno de etapas

  1. (Definindo a semente)
  2. Dado um valor para sd, gere dados normalmente distribuídos
  3. Avalie a probabilidade de seus dados, dadas as distribuições simuladas

As seguintes funções fazem isso, uma vez sem a etapa 1., uma vez incluída:

# without fixing the seed
simllh <- function(sd,y,Ns){
  simdist <- density(rnorm(Ns,mean=0,sd=sd))
  llh <- sapply(y,function(x){simdist$y[which.min((x-simdist$x)^2)]})
  return(-sum(log(llh)))
}
# same function with fixed seed
simllh.fix.seed <- function(sd,y,Ns){
  set.seed(48)
  simdist <- density(rnorm(Ns,mean=0,sd=sd))
  llh <- sapply(y,function(x){simdist$y[which.min((x-simdist$x)^2)]})
  return(-sum(log(llh)))
}

Podemos verificar o desempenho relativo das duas funções ao descobrir o verdadeiro valor do parâmetro com um estudo de Monte Carlo curto:

N <- 20; sd <- 2 # features of simulated data
est1 <- rep(NA,1000); est2 <- rep(NA,1000) # initialize the estimate stores
for(i in 1:1000){
  as.numeric(Sys.time())-> t; set.seed((t - floor(t)) * 1e8 -> seed) # set the seed to random seed
  y <- rnorm(N,sd=sd) # generate the data
  est1[i] <- optim(1,simllh,y=y,Ns=1000,lower=0.01)$par
  est2[i] <- optim(1,simllh.fix.seed,y=y,Ns=1000,lower=0.01)$par
}
hist(est1)
hist(est2)

As distribuições resultantes das estimativas de parâmetros são:

Quando corrigimos a semente, a pesquisa numérica termina perto do valor verdadeiro do parâmetro 2 com muito mais frequência.

 7
Matthias Schmidtblaicher

basicamente set.seed () função irá ajudar a reutilizar o mesmo conjunto de variáveis ​​aleatórias, o que podemos precisar no futuro para avaliar novamente tarefa particular novamente com o mesmo varibales aleatórios

nós só precisamos declará-lo antes de usar qualquer função geradora de números aleatórios.

 6
user4388407
Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | Privacy

Comentários

Manual de Fontes Abertas

CLICA

Pericia Digital

Como usar um Agente OSINT IA

Postagens mais visitadas