Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Selección de Características | Regresión Lineal Múltiple
Regresión Lineal con Python

bookSelección de Características

Al trabajar con muchas características, a menudo no se sabe cuáles son relevantes. Se puede entrenar un modelo con todas ellas, identificar cuáles no aportan valor y luego volver a entrenar utilizando solo las que tienen impacto.

¿Por qué eliminar características del modelo?

Agregar una característica no relacionada con el objetivo introduce ruido y empeora las predicciones. Muchas características inútiles acumulan ruido y reducen aún más la calidad del modelo.

¿Cómo saber si las características son buenas o malas?

OLS proporciona pruebas estadísticas durante el entrenamiento. Cada característica recibe un resultado de prueba t, mostrado en la tabla summary(), que indica si afecta significativamente al objetivo.

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Lo que nos interesa es el valor p para cada característica.

En resumen, cuanto menor sea el valor p, mayor será la confianza en que la característica es relevante.

En estadística, se establece un nivel de significancia, usualmente 0.05. Si el valor p de una característica supera este umbral, se considera que no tiene impacto.

En la práctica, valores p ligeramente superiores a 0.05 aún pueden aportar al modelo. Es recomendable probar el modelo con y sin dicha característica. Sin embargo, si el valor p es muy alto (>0.4), se puede eliminar con confianza.

Note
Nota

El valor p varía de 0 a 1, por lo que cuando hablamos de un valor p bajo nos referimos a menos de 0.05 y un valor p alto usualmente significa mayor a 0.3-0.5.

En nuestro ejemplo, obtuvimos valores p para la altura de la madre y la constante de 0.087 y 0.051. Si eliminamos las características con un valor p > 0.05, obtendremos el resultado que se muestra a continuación (a la izquierda).

Incluso visualmente, podemos notar que el modelo con constante (a la derecha) es mejor, por lo que es preferible no eliminarla del modelo.

Note
Nota

Los conjuntos de datos pequeños suelen producir valores p más altos (0.05–0.2) incluso para características relevantes. Los valores p reflejan el nivel de confianza: con más datos, es más fácil distinguir las características realmente significativas de aquellas que solo aportan ruido.

¿Cómo eliminar características no adecuadas?

Solo es necesario eliminar la columna relacionada con la característica de X_tilde. Esto se puede realizar utilizando el siguiente código:

X_tilde = X_tilde.drop(___, axis=1)

Por ejemplo, para eliminar las columnas 'const' y 'Mother' se utilizaría:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Luego, crear un nuevo objeto OLS utilizando el X_tilde actualizado:

regression_model=sm.OLS(y, X_tilde)

1. ¿Cuáles de las características deberías MANTENER?

2. Elige la afirmación INCORRECTA.

question mark

¿Cuáles de las características deberías MANTENER?

Select the correct answer

question mark

Elige la afirmación INCORRECTA.

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 5.26

bookSelección de Características

Desliza para mostrar el menú

Al trabajar con muchas características, a menudo no se sabe cuáles son relevantes. Se puede entrenar un modelo con todas ellas, identificar cuáles no aportan valor y luego volver a entrenar utilizando solo las que tienen impacto.

¿Por qué eliminar características del modelo?

Agregar una característica no relacionada con el objetivo introduce ruido y empeora las predicciones. Muchas características inútiles acumulan ruido y reducen aún más la calidad del modelo.

¿Cómo saber si las características son buenas o malas?

OLS proporciona pruebas estadísticas durante el entrenamiento. Cada característica recibe un resultado de prueba t, mostrado en la tabla summary(), que indica si afecta significativamente al objetivo.

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

Lo que nos interesa es el valor p para cada característica.

En resumen, cuanto menor sea el valor p, mayor será la confianza en que la característica es relevante.

En estadística, se establece un nivel de significancia, usualmente 0.05. Si el valor p de una característica supera este umbral, se considera que no tiene impacto.

En la práctica, valores p ligeramente superiores a 0.05 aún pueden aportar al modelo. Es recomendable probar el modelo con y sin dicha característica. Sin embargo, si el valor p es muy alto (>0.4), se puede eliminar con confianza.

Note
Nota

El valor p varía de 0 a 1, por lo que cuando hablamos de un valor p bajo nos referimos a menos de 0.05 y un valor p alto usualmente significa mayor a 0.3-0.5.

En nuestro ejemplo, obtuvimos valores p para la altura de la madre y la constante de 0.087 y 0.051. Si eliminamos las características con un valor p > 0.05, obtendremos el resultado que se muestra a continuación (a la izquierda).

Incluso visualmente, podemos notar que el modelo con constante (a la derecha) es mejor, por lo que es preferible no eliminarla del modelo.

Note
Nota

Los conjuntos de datos pequeños suelen producir valores p más altos (0.05–0.2) incluso para características relevantes. Los valores p reflejan el nivel de confianza: con más datos, es más fácil distinguir las características realmente significativas de aquellas que solo aportan ruido.

¿Cómo eliminar características no adecuadas?

Solo es necesario eliminar la columna relacionada con la característica de X_tilde. Esto se puede realizar utilizando el siguiente código:

X_tilde = X_tilde.drop(___, axis=1)

Por ejemplo, para eliminar las columnas 'const' y 'Mother' se utilizaría:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Luego, crear un nuevo objeto OLS utilizando el X_tilde actualizado:

regression_model=sm.OLS(y, X_tilde)

1. ¿Cuáles de las características deberías MANTENER?

2. Elige la afirmación INCORRECTA.

question mark

¿Cuáles de las características deberías MANTENER?

Select the correct answer

question mark

Elige la afirmación INCORRECTA.

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4
some-alt