Abrazando el tren de la cara y el conjunto de datos dividido

Abrazando El Tren De La Cara Y El Conjunto De Datos Dividido



La biblioteca Hugging Face no tiene una función específica llamada train_test_split. Sin embargo, cuando se trata de dividir los datos para entrenamiento y prueba en tareas de aprendizaje automático, la función train_test_split se usa comúnmente en otras bibliotecas populares como scikit-learn. Aquí, explicaremos los parámetros que normalmente se usan en la función train_test_split de scikit-learn.

El método train_test_split en la biblioteca de conjuntos de datos de Hugging Face se utiliza para dividir un conjunto de datos en dos subconjuntos: un subconjunto de entrenamiento y un subconjunto de prueba. Este método se emplea comúnmente en el aprendizaje automático para evaluar el rendimiento de un modelo con datos invisibles. El subconjunto de entrenamiento se utiliza para entrenar el modelo, mientras que el subconjunto de prueba se utiliza para evaluar su rendimiento y capacidades de generalización.







Aquí hay una descripción general del método train_test_split en Hugging Face:



  1. test_size (numpy.random.Generator, opcional) : Esta opción determina el tamaño de la división de la prueba. El tipo puede ser flotante o entero.
  • Si se proporciona como flotante, debe reflejar el porcentaje del conjunto de datos que se incluirá en la división de prueba y estar entre 0,0 y 1,0.
  • El número exacto de muestras de prueba está representado por el valor si se proporciona como un número entero.
  • Si se establece en Ninguno, el complemento del tamaño del tren se utiliza como valor.
  • Si train_size también es Ninguno, se establecerá en 0,25 (25 % del conjunto de datos).
  • train_size (numpy.random.Generator, opcional): El tamaño de la división del tren está determinado por este parámetro. Sigue las mismas pautas que test_size.
    • Si se proporciona como flotante, debe reflejar el porcentaje del conjunto de datos que se incluirá en la división del tren y estar entre 0,0 y 1,0.
    • El número exacto de muestras de trenes está representado por el valor si se proporciona como un número entero.
    • Si se establece en Ninguno, el valor se cambia automáticamente al complemento del tamaño de la prueba.
  • aleatorio (bool, opcional, por defecto es Verdadero)
    • Este parámetro determina si se mezclan o no los datos antes de dividirlos.
    • Si se establece en Verdadero, los datos se mezclarán aleatoriamente antes de la división.
    • Si se establece en Falso, los datos se dividirán sin mezclarlos.
  • estratify_by_column (cadena, opcional, por defecto Ninguno)
    • Este parámetro se utiliza para la división estratificada de datos en función de una columna específica.
    • Si se especifica, debe ser el nombre de la columna de las etiquetas o clases.
    • Los datos se dividirán de manera que se mantenga la misma distribución de etiquetas o clases en las divisiones de tren y prueba.
  • semilla (int, opcional)
    • Este parámetro le permite configurar una semilla para inicializar el BitGenerator predeterminado.
    • Si se establece en Ninguno, se extraerá del sistema operativo una entropía nueva e impredecible.
    • Si se pasa un número entero o números enteros similares a una matriz, se utilizarán para derivar el estado inicial de BitGenerator.
  • generador (numpy.random.Generator, opcional)
    • Este parámetro le permite especificar un generador aleatorio NumPy para calcular la permutación de las filas del conjunto de datos.
    • Si está configurado en Ninguno (predeterminado), utiliza np.random.default_rng, que es el BitGenerator predeterminado (PCG64) de NumPy.
  • keep_in_memory (bool, por defecto es Falso)
    • Este parámetro determina si se deben mantener los índices divididos en la memoria en lugar de escribirlos en un archivo de caché.
    • Si se establece en Verdadero, los índices de división se almacenarán en la memoria durante el proceso de división.
    • Si se establece en False, los índices divididos se escribirán en un archivo de caché para su uso posterior.
  • load_from_cache_file (Opcional[bool], el valor predeterminado es Verdadero si el almacenamiento en caché está habilitado)
    • Este parámetro determina si se debe utilizar un archivo de caché para cargar los índices divididos en lugar de volver a calcularlos.
    • Si se establece en Verdadero y se puede identificar un archivo de caché que almacena los índices divididos, se utilizará.
    • Si se establece en False, los índices divididos se volverán a calcular incluso si existe un archivo de caché.
    • El valor predeterminado es Verdadero si el almacenamiento en caché está habilitado.
  • train_cache_file_name (cadena, opcional)
    • Este parámetro le permite proporcionar una ruta o nombre específico para el archivo de caché que almacena los índices de división del tren.
    • Si se especifica, los índices de división del tren se almacenarán en este archivo de caché en lugar del nombre del archivo de caché generado automáticamente.
  • test_cache_file_name (cadena, opcional)
    • Este parámetro le permite proporcionar una ruta o nombre específico para el archivo de caché que almacena los índices divididos de prueba.
    • Si se especifica, los índices de división de prueba se almacenarán en este archivo de caché en lugar del nombre del archivo de caché generado automáticamente.
  • escritor_batch_size (int, por defecto 1000)
    • Este parámetro determina el número de filas por operación de escritura para el escritor de archivos de caché.
    • Es una compensación entre el uso de la memoria y la velocidad de procesamiento.
    • Los valores más altos reducen el número de operaciones de escritura pero consumen más memoria durante el procesamiento.
    • Los valores más bajos consumen menos memoria temporal pero pueden afectar levemente la velocidad de procesamiento.
  • train_new_fingerprint (cadena, opcional, por defecto Ninguno)
    • Este parámetro representa la nueva huella digital del conjunto de trenes después de aplicar una transformación.
    • Si se especifica, proporciona una nueva huella digital para el conjunto de trenes.
    • Si se establece en Ninguno, la nueva huella digital se calcula utilizando un hash de la huella digital anterior y los argumentos de transformación.
  • test_new_fingerprint (cadena, opcional, el valor predeterminado es Ninguno)
    • Este parámetro representa la nueva huella digital del conjunto de prueba después de aplicar una transformación.
    • Si se especifica, proporciona una nueva huella digital para el equipo de prueba.
    • Si se establece en Ninguno, la nueva huella digital se calcula utilizando un hash de la huella digital anterior y los argumentos de transformación.

    Sintaxis:

    desde sklearn.model_selection importar train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    X : Esto representa las características de entrada o variables independientes de su conjunto de datos.



    • y : Esto representa la salida o la variable dependiente que está intentando predecir.
    • tamaño_prueba : Este parámetro determina la proporción del conjunto de datos que se asignará para pruebas. Se puede especificar como un valor flotante (por ejemplo, 0,2 para 20%) o un número entero (por ejemplo, 200 para 200 muestras).
    • estado_aleatorio : Este es un parámetro opcional que le permite establecer una semilla para el generador de números aleatorios. Garantiza que la división sea reproducible, lo que significa que obtendrá la misma división si utiliza el mismo valor de estado aleatorio.

    La función train_test_split devuelve cuatro conjuntos de datos:





    • X_tren : El conjunto de entrenamiento de características de entrada.
    • X_prueba : el conjunto de prueba de funciones de entrada.
    • y_train : el conjunto de entrenamiento de etiquetas de salida.
    • y_prueba : el conjunto de prueba de etiquetas de salida.

    Ejemplo : El siguiente programa de ejemplo se guarda como “ test.py ”.

    desde sklearn.model_selection importar train_test_split

    desde conjuntos de datos importar load_dataset

    # Paso 1: cargar el conjunto de datos

    conjunto de datos = load_dataset('imdb')

    X = conjunto de datos['tren']['texto']

    y = conjunto de datos['tren']['etiqueta']

    # Paso 2: dividir el conjunto de datos

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,

    barajar=Verdadero, estado_aleatorio=42)

    # Paso 3: explorar el conjunto de datos

    print('Número de ejemplos en el conjunto de datos original:', len(X))

    print('Número de ejemplos en el conjunto de datos del tren:', len(X_train))

    print('Número de ejemplos en el conjunto de datos de prueba:', len(X_test))

    # Paso 4: Acceda e imprima datos de ejemplo

    print('\nEjemplo del conjunto de datos del tren:')

    imprimir(tren_X[0], tren_y[0])

    print('\nEjemplo del conjunto de datos de prueba:')

    imprimir(prueba_X[0], prueba_y[0])

    Esta declaración de importación proviene de scikit-learn, no de la biblioteca de conjuntos de datos de Hugging Face. Asegúrese de tener scikit-learn instalado en su entorno. Puedes instalarlo usando el siguiente comando:



    instalación de pip scikit-learn

    Explicación: Primero, importamos el módulo necesario: train_test_split de scikit-learn.

    • Cargamos el conjunto de datos de IMDb usando load_dataset('imdb') y lo asignamos a la variable del conjunto de datos.
    • Para usar train_test_split, necesitamos separar las características de entrada (X) y las etiquetas correspondientes (y). En este caso, asumimos que el conjunto de datos tiene una división llamada 'tren' con 'texto' como características de entrada y 'etiqueta' como etiquetas correspondientes. Es posible que deba ajustar las claves según la estructura de su conjunto de datos.
    • Luego pasamos las características de entrada (X) y las etiquetas (y) a train_test_split junto con otros parámetros. En este ejemplo, configuramos test_size en 0,2, lo que significa que el 20% de los datos se asignará para pruebas. El parámetro aleatorio se establece en 'Verdadero' para mezclar aleatoriamente los datos antes de dividirlos, y el parámetro random_state se establece en 42 para mayor reproducibilidad.
    • La función train_test_split devuelve cuatro conjuntos de datos: X_train, X_test, y_train e y_test. Estos representan los subconjuntos de entrenamiento y prueba de las características y etiquetas de entrada, respectivamente.
    • Imprimimos la cantidad de ejemplos en el conjunto de datos original (len (X)), el conjunto de datos de entrenamiento (len (X_train)) y el conjunto de datos de prueba (len (X_test)). Esto nos permite verificar el proceso de división y asegurarnos de que los subconjuntos se creen correctamente.
    • Finalmente, accedemos e imprimimos un ejemplo del conjunto de datos de entrenamiento (X_train[0], y_train[0]) y un ejemplo del conjunto de datos de prueba (X_test[0], y_test[0]).

    Producción : Ejecutamos el programa previamente guardado usando el Python “test.py”.

    Conclusión

    La funcionalidad de división de prueba de entrenamiento que proporciona la biblioteca de conjuntos de datos de Hugging Face, en combinación con la función train_test_split de scikit-learn, ofrece una manera conveniente y eficiente de dividir un conjunto de datos en subconjuntos separados de entrenamiento y prueba.

    Al utilizar la función train_test_split, puede controlar el tamaño del conjunto de prueba, si se deben mezclar los datos y establecer una semilla aleatoria para la reproducibilidad. Esta flexibilidad permite una evaluación eficaz de los modelos de aprendizaje automático a partir de datos invisibles y ayuda a detectar problemas como el sobreajuste o el desajuste.

    Los parámetros de la función train_test_split le permiten controlar varios aspectos de la división, como el tamaño del conjunto de prueba (test_size), mezclar los datos (shuffle) y realizar una división estratificada basada en columnas específicas (stratify_by_column). Además, puede especificar un valor inicial (semilla) para la reproducibilidad y personalizar los nombres de los archivos de caché para almacenar los índices divididos (train_cache_file_name y test_cache_file_name).

    La funcionalidad que ofrece Hugging Face facilita la preparación de sus datos para el entrenamiento y la evaluación del modelo. Al tener subconjuntos de entrenamiento y prueba separados, puede evaluar con precisión el rendimiento de su modelo en datos invisibles, detectar problemas potenciales como el sobreajuste y tomar decisiones informadas para mejorar el modelo.

    En general, la funcionalidad de división de prueba de tren en la biblioteca de conjuntos de datos de Hugging Face, junto con train_test_split de scikit-learn, proporciona un poderoso conjunto de herramientas para la división de datos eficiente, la evaluación de modelos y el desarrollo de soluciones sólidas de aprendizaje automático.