9 votos

¿Por qué usaría alguien una función hash para la creación de una división de tren de prueba en vez de semilla aleatoria?

Yo voy a ir a través de algunos ML de material de formación de Google (no puedo publicar un enlace porque estoy recibiendo el material a través de mi empresa).

En la parte acerca de cómo extraer los datos y dividir en tren y conjuntos de la prueba, están utilizando una función hash sobre uno de los campos de datos para proporcionar un determinista y repetición de pruebas/tren de split en lugar de uno aleatorio.

Pero no se puede lo mismo ser realizado con una muestra aleatoria.la semilla de la función?

Por otra parte, utilizando una función hash significa que no puede utilizar el campo en el que el hash que se ha generado (que podría ser potencialmente útil para un modelo), o podría ser la inserción de algunos desconocidos sesgo en el modelo?

¿Qué ventaja tiene el uso de una función hash tiene sobre el uso de la semilla aleatoria?

10voto

Joel Puntos 329

Pero no se puede lo mismo ser realizado con una muestra aleatoria.la semilla de la función? ... ¿Qué ventaja tiene el uso de una función hash tiene sobre el uso de la semilla aleatoria?

El muestreo es menos directo cuando usted no puede caber todo el conjunto de datos en la memoria. En el contexto de un DBMS, este artículo sugiere que el uso de RAND() , con una semilla no puede ser reproducible al escribir SQL. Esto es debido a la multiproceso la naturaleza de la aplicación, por lo que no garantiza el orden de los artículos devueltos (a menos que se agregue la ORDER BY cláusula, lo cual puede ser costoso). El autor del artículo, procede por la mezcla de uno de los campos de fecha en cada fila para conseguir alrededor de este problema.

Otro plausible caso de uso sería al tratar con archivos. Si tengo un enorme directorio de imágenes que desea utilizar para el entrenamiento/prueba, podría ser más fácil trabajar con un hash del nombre de archivo en lugar de tratar de mantener un reproducible orden de los archivos.

Por otra parte, utilizando una función hash significa que no puede utilizar la campo en el que el hash que se ha generado (que podría ser potencialmente útil para un modelo), o podría ser la inserción de algunos desconocidos sesgo en el modelo?

Calcular el hash de un campo no es lo mismo que calcular el hash y, a continuación, sobrescribiendo el valor original. El hash sería calculada en algún otro bloque de memoria y se utiliza para asignar el elemento para el tren/pruebas/validación, de la misma manera que la generación de un número aleatorio no sobrescribir los datos.

Con respecto a la introducción de sesgos, me encontré con esta pregunta en la criptografía sitio que intenta abordar las propiedades estadísticas de SHA-1 mod n.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X