Pular para o conteúdo principal

Compartilhe

Airbnb

O Airbnb possui seu próprio sistema de cadastro interno. Porém, no momento do check-in, muitos anfitriões solicitam documentos e chegam a tirar fotos do hóspede segurando o documento.  O problema é que esses dados ficam armazenados diretamente no aparelho do anfitrião, sem qualquer garantia de proteção adequada. Essa prática levanta sérias dúvidas sobre a segurança da informação e a conformidade com a LGPD (Lei Geral de Proteção de Dados) . Além disso, há relatos de que dados pessoais são enviados para portarias de condomínios, ampliando ainda mais os riscos de exposição. O Airbnb precisa aprimorar urgentemente esse tipo de conduta, estabelecendo protocolos claros de proteção e armazenamento de dados. A ausência de respostas transparentes da empresa sobre o nível de segurança dessas práticas demonstra uma falha significativa na forma como a plataforma lida com informações sensíveis de seus usuários.

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

Como usar um Agente OSINT IA

Pericia Digital

Ebook

Postagens mais visitadas