Selecció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, comprobar cuáles no aportan utilidad 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?
Para evaluar si las características afectan significativamente al objetivo, se pueden calcular los valores p para cada característica. Un valor p bajo sugiere que la característica es estadísticamente significativa.
1234567891011121314151617import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
En resumen, cuanto menor sea el valor p, mayor será la confianza en que la característica es relevante. Normalmente, un valor p menor que 0.05 se considera estadísticamente significativo.
En el ejemplo anterior:
Father: (extremadamente pequeño, altamente significativo)Mother: (muy pequeño, altamente significativo)
Ambas características son buenos predictores para el objetivo.
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 es relevante.
En la práctica, valores p ligeramente superiores a 0.05 aún pueden ser útiles para el modelo. Es más seguro 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.
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 generalmente significa mayor que 0.3-0.5.
En nuestro ejemplo, obtuvimos valores p para Mother's height y la constante de 0.087 y 0.051. Si eliminamos las características con un valor p > 0.05, obtendremos el resultado 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.
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 sencillo distinguir las características realmente significativas del ruido.
¿Cómo eliminar características no deseadas?
Solo es necesario eliminar la columna relacionada con la característica de X_tilde. Esto se puede realizar con 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 CONSERVAR?
2. Elija la afirmación INCORRECTA.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 3.33
Selecció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, comprobar cuáles no aportan utilidad 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?
Para evaluar si las características afectan significativamente al objetivo, se pueden calcular los valores p para cada característica. Un valor p bajo sugiere que la característica es estadísticamente significativa.
1234567891011121314151617import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
En resumen, cuanto menor sea el valor p, mayor será la confianza en que la característica es relevante. Normalmente, un valor p menor que 0.05 se considera estadísticamente significativo.
En el ejemplo anterior:
Father: (extremadamente pequeño, altamente significativo)Mother: (muy pequeño, altamente significativo)
Ambas características son buenos predictores para el objetivo.
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 es relevante.
En la práctica, valores p ligeramente superiores a 0.05 aún pueden ser útiles para el modelo. Es más seguro 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.
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 generalmente significa mayor que 0.3-0.5.
En nuestro ejemplo, obtuvimos valores p para Mother's height y la constante de 0.087 y 0.051. Si eliminamos las características con un valor p > 0.05, obtendremos el resultado 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.
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 sencillo distinguir las características realmente significativas del ruido.
¿Cómo eliminar características no deseadas?
Solo es necesario eliminar la columna relacionada con la característica de X_tilde. Esto se puede realizar con 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 CONSERVAR?
2. Elija la afirmación INCORRECTA.
¡Gracias por tus comentarios!