¿Alguien puede explicarme qué significa random_state en el siguiente ejemplo?
import numpy as np from sklearn.model_selection import train_test_split X, y = np.arange(10).reshape((5, 2)), range(5) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42)¿Por qué está codificado en 42?
¿No es eso obvio? 42 es la respuesta a la última pregunta de la vida, el universo y todo .
Hablando en serio, random_state simplemente establece una semilla en el generador aleatorio, de modo que sus divisiones de prueba de tren siempre sean deterministas. Si no establece una semilla, es diferente cada vez.
random_state:int, instancia deRandomStateoNone, opcional (predeterminado=None)
Si esint,random_statees la semilla utilizada por el generador de números aleatorios; Si es una instancia deRandomState,random_statees el generador de números aleatorios; Si esNone, el generador de números aleatorios es la instancia deRandomStateutilizada pornp.random.
Si no especifica el estado aleatorio en el código, cada vez que ejecuta (ejecuta) su código, se genera un nuevo valor aleatorio y los conjuntos de datos de entrenamiento y prueba tendrán valores diferentes cada vez.
Sin embargo, si se asigna un valor fijo como random_state = 0 o 1 o 42 o cualquier otro número entero, no importa cuántas veces ejecute su código, el resultado será el mismo, es decir, los mismos valores en los conjuntos de datos de prueba y entrenamiento.
El estado aleatorio garantiza que las divisiones que genere sean reproducibles. Scikit-learn usa permutaciones aleatorias para generar las divisiones. El estado aleatorio que proporciona se utiliza como semilla para el generador de números aleatorios. Esto asegura que los números aleatorios se generen en el mismo orden.