logo

Cómo hacer una prueba de tren dividida usando Sklearn en Python

En este artículo, aprenderemos cómo realizar una prueba de tren dividida usando Sklearn en Python.

Dividir la prueba del tren usando Sklearn

El método train_test_split() se utiliza para dividir nuestros datos en conjuntos de entrenamiento y de prueba.



Primero, necesitamos dividir nuestros datos en características (X) y etiquetas (y). El marco de datos se divide en X_train,X_test, y_train e y_test. Los conjuntos X_train e y_train se utilizan para entrenar y ajustar el modelo. Los conjuntos X_test e y_test se utilizan para probar el modelo si predice las salidas/etiquetas correctas. Podemos probar explícitamente el tamaño del tren y los conjuntos de prueba. Se sugiere mantener nuestros conjuntos de trenes más grandes que los de prueba.

Juego de trenes: El conjunto de datos de entrenamiento es un conjunto de datos que se utilizó para ajustar el modelo. El conjunto de datos en el que se entrena el modelo. Estos datos son vistos y aprendidos por el modelo.

Equipo de prueba: El conjunto de datos de prueba es un subconjunto del conjunto de datos de entrenamiento que se utiliza para brindar una evaluación precisa del ajuste final del modelo.



conjunto de validación: Un conjunto de datos de validación es una muestra de datos del conjunto de entrenamiento de su modelo que se utiliza para estimar el rendimiento del modelo mientras se ajustan los hiperparámetros del modelo.

De forma predeterminada, el 25 % de nuestros datos son conjuntos de prueba y el 75 % de los datos se destina a pruebas de entrenamiento.

Sintaxis: sklearn.model_selection.train_test_split()



parámetros:

    *arrays: secuencia de indexables. Listas, matrices numpy, matrices scipy-sparse y marcos de datos pandas son todas entradas válidas. test_size: int o float, por defecto Ninguno. Si es flotante, debe estar entre 0,0 y 1,0 y representar el porcentaje del conjunto de datos para probar la división. Si se utiliza int, se refiere al número total de muestras de prueba. Si el valor es Ninguno, se utiliza el complemento del tamaño del tren. Se establecerá en 0,25 si el tamaño del tren también es Ninguno. train_size: int o float, por defecto Ninguno. random_state: int, por defecto Ninguno. Controla cómo se mezclan los datos antes de implementar la división. Para obtener resultados repetibles en varias llamadas a funciones, pase un int.
    aleatorio: objeto booleano, por defecto Verdadero. Si los datos deben mezclarse o no antes de dividirlos. La estratificación debe ser Ninguna si barajar = Falso. estratificar: objeto similar a una matriz, por defecto es Ninguno. Si se selecciona Ninguno, los datos se estratifican utilizándolos como etiquetas de clase.

devoluciones: división: lista

computadora inventada en qué año

Ejemplo 1:

Se importan los paquetes numpy, pandas y scikit-learn. Se importa el archivo CSV. X contiene las características e y son las etiquetas. Dividimos el marco de datos en X e y y realizamos una prueba de tren dividida en ellos. random_state actúa como una semilla numpy, se utiliza para la reproducibilidad de los datos. test_size se da como 0.25, significa que el 25% de nuestros datos entran en nuestro tamaño de prueba. 1-test_size es el tamaño de nuestro tren, no necesitamos especificarlo. shuffle =Verdadero, mezcla nuestros datos antes de derramarlos. Los conjuntos X_train y X_test se utilizan para ajustar y entrenar nuestro modelo y los conjuntos de prueba se utilizan para probar y validar.

Para acceder al archivo CSV haga clic aquí.

Python3




# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test,> y_train, y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >test_size>=>0.25>,> >shuffle>=>True>)> > # printing out train and test sets> > print>(>'X_train : '>)> print>(X_train.head())> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>('')> print>(>'y_test : '>)> print>(y_test.head())>

>

>

Producción:

 Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 99 3478 52 4270 184 3479 139 3171 107 3399 Name: Head Size(cm^3), dtype: int64 (177,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (60,) y_train : 99 1270 52 1335 184 1160 139 1127 107 1226 Name: Brain Weight(grams), dtype: int64 (177,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (60,)>

Ejemplo 2:

En este ejemplo se siguen los mismos pasos, en lugar de especificar test_size especificamos train_size. test_size es 1-train_size. El 80% de los datos son conjuntos de trenes, por lo que el 20% de nuestros datos son nuestro conjunto de pruebas. Si no especificamos los tamaños de los conjuntos de prueba y entrenamiento de forma predeterminada, test_size será 0,25. X_train e y_train tienen la misma forma e índices, ya que y_train es la etiqueta de las funciones de X_train. Lo mismo ocurre con X_test e y_test.

Python3




# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> print>(df.shape)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test, y_train,> y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >train_size>=>0.8>, shuffle>=>True>)> > # printing out train and test sets> print>(>'X_train : '>)> print>(X_train.head())> print>(X_train.shape)> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>(X_test.shape)> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>(y_train.shape)> print>('')> print>(>'y_test : '>)> print>(y_test.head())> print>(y_test.shape)>

>

>

Producción:

(237, 2) Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 110 3695 164 3497 58 3935 199 3297 182 4005 Name: Head Size(cm^3), dtype: int64 (189,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (48,) y_train : 110 1310 164 1280 58 1330 199 1220 182 1280 Name: Brain Weight(grams), dtype: int64 (189,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (48,)>