Un algoritmo Shuffle no tiene nada que ver con el aprendizaje automático.
¿Qué es un algoritmo aleatorio aleatorio?
Considere una matriz con elementos distintos A [1… n]
- ¿Cómo es útil el Big Data?
- ¿Cuál es el estado actual de Julia, el lenguaje de programación?
- Cómo usar mis vacaciones de verano para dedicarme a Data Science
- ¿Big Data llegó para quedarse?
- ¿Cuáles son ejemplos concretos de misiones de Data Scientist dentro de las empresas?
Un algoritmo aleatorio perfectamente imparcial barajaría aleatoriamente todos los elementos de la matriz de manera que después de barajar:
1.La probabilidad de que la operación de barajado produzca una permutación particular de la matriz original es la misma para todas las permutaciones (es decir, ¡ya que hay n! permutaciones, la probabilidad de que la operación aleatoria produzca una permutación particular es 1 / n!
2.Para cualquier elemento e en la matriz y para cualquier posición j (1 <= j <= n), la probabilidad de que el elemento termine en la posición A [j] es 1 / n
El Shuffle de Fisher-Yates
barajar (A [1… n]) {
para i = 1 a n {
// Encuentra un número entero aleatorio entre i y n inclusive
int rand = ALEATORIO (i, n);
intercambie A [i] con A [rand];
}
}
Simulación de Shuffle Fisher-Yates
Quizás te interese esta publicación de blog que ofrece una comparación de Fisher-Yates versus otro algoritmo de barajado.
Si simulamos Fisher-Yates para una matriz {1,2,3}, obtenemos estos resultados:
Cada permutación está igualmente representada, lo que significa que la combinación aleatoria es imparcial.
Prueba teórica de que el algoritmo de barajado anterior es perfectamente imparcial
Para cualquier elemento e, la probabilidad de que se baraje en la primera posición
= probabilidad de que se seleccione para intercambiar cuando i = 1
= 1 / n
Para cualquier elemento e, la probabilidad de que se baraje en la segunda posición
= probabilidad de que NO se seleccione para la primera posición x probabilidad de que se seleccione para intercambiar cuando i = 2
= (n-1) / nx 1 / (n-1)
= 1 / n
…
Para cualquier elemento e, la probabilidad de que se baraje en una posición particular = 1 / n