Choix des Variables
Dans de nombreuses tâches, il se peut que vous disposiez de nombreuses variables dont vous ne savez pas si elles sont utiles ou non. Heureusement, vous pouvez entraîner un modèle avec toutes ces variables, observer lesquelles n'ont pas d'impact, puis réentraîner le modèle uniquement avec celles qui sont pertinentes.
Pourquoi supprimer des variables du modèle ?
Si vous ajoutez une variable au modèle qui n'a aucun lien avec la cible, cela introduira du bruit dans le modèle, ce qui dégradera la qualité de la prédiction. Lorsque vous avez de nombreuses variables inutiles, ce bruit s'accumule, rendant les performances du modèle de plus en plus mauvaises.
Comment savoir si les variables sont pertinentes ou non ?
Comme vous le savez déjà, lors de l'entraînement, la classe OLS calcule également des informations statistiques. Parmi d'autres analyses, elle effectue un test t pour déterminer si chaque variable a un impact significatif sur la cible. Les résultats de ce test se trouvent dans le tableau summary()
comme illustré ci-dessous :
123456789import 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
Ce qui nous intéresse, c'est la valeur p pour chaque variable.
En résumé, plus la valeur p est faible, plus la confiance dans l'impact de la variable est élevée.
En statistique, il est nécessaire de définir le seuil de la p-value, appelé niveau de signification. Il est généralement fixé à 0,05, et dès que la p-value dépasse ce niveau de signification, la variable est considérée comme non significative.
Cependant, en pratique, les variables ayant une p-value légèrement supérieure à 0,05 peuvent également améliorer le modèle. Il est donc préférable de tester le modèle avec et sans cette variable, plutôt que de la supprimer immédiatement, sauf si sa p-value est vraiment élevée (>0,4). Dans ce cas, la variable peut être supprimée sans risque.
La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie inférieure à 0,05 et une p-value élevée signifie généralement supérieure à 0,3-0,5.
Dans notre exemple, nous avons obtenu des valeurs p pour la taille de la mère et la constante de 0,087 et 0,051. Si nous supprimons les variables avec une valeur p > 0,05, nous obtiendrons le résultat ci-dessous (à gauche).
Même visuellement, on peut constater que le modèle avec la constante (à droite) est meilleur, il est donc préférable de ne pas la retirer du modèle.
Il est courant d'obtenir des valeurs p relativement élevées (0,05 à 0,2) pour des variables influentes lorsque l'ensemble de données est petit. La valeur p indique la confiance que la variable est influente, et il est naturel que plus nous avons d'observations, plus il est facile de distinguer les variables influentes des mauvaises.
Supposons que vous ayez des données montrant que 9/10 des personnes grandes que vous connaissez mangeaient des pommes tous les jours. Pouvez-vous être certain qu'il y a un lien ? Mais si c'était 9000/10000 ? Cela vous rendrait plus confiant.
Comment supprimer les mauvaises variables ?
Il suffit de retirer la colonne correspondant à la variable de X_tilde
. Cela peut être réalisé avec le code suivant :
X_tilde = X_tilde.drop(___, axis=1)
Par exemple, pour supprimer les colonnes 'const' et 'Mother', utilisez :
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
Ensuite, créez un nouvel objet OLS en utilisant le X_tilde
mis à jour :
regression_model=sm.OLS(y, X_tilde)
1. Parmi les variables, lesquelles devez-vous CONSERVER ?
2. Choisissez l'affirmation INCORRECTE.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 5.26
Choix des Variables
Glissez pour afficher le menu
Dans de nombreuses tâches, il se peut que vous disposiez de nombreuses variables dont vous ne savez pas si elles sont utiles ou non. Heureusement, vous pouvez entraîner un modèle avec toutes ces variables, observer lesquelles n'ont pas d'impact, puis réentraîner le modèle uniquement avec celles qui sont pertinentes.
Pourquoi supprimer des variables du modèle ?
Si vous ajoutez une variable au modèle qui n'a aucun lien avec la cible, cela introduira du bruit dans le modèle, ce qui dégradera la qualité de la prédiction. Lorsque vous avez de nombreuses variables inutiles, ce bruit s'accumule, rendant les performances du modèle de plus en plus mauvaises.
Comment savoir si les variables sont pertinentes ou non ?
Comme vous le savez déjà, lors de l'entraînement, la classe OLS calcule également des informations statistiques. Parmi d'autres analyses, elle effectue un test t pour déterminer si chaque variable a un impact significatif sur la cible. Les résultats de ce test se trouvent dans le tableau summary()
comme illustré ci-dessous :
123456789import 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
Ce qui nous intéresse, c'est la valeur p pour chaque variable.
En résumé, plus la valeur p est faible, plus la confiance dans l'impact de la variable est élevée.
En statistique, il est nécessaire de définir le seuil de la p-value, appelé niveau de signification. Il est généralement fixé à 0,05, et dès que la p-value dépasse ce niveau de signification, la variable est considérée comme non significative.
Cependant, en pratique, les variables ayant une p-value légèrement supérieure à 0,05 peuvent également améliorer le modèle. Il est donc préférable de tester le modèle avec et sans cette variable, plutôt que de la supprimer immédiatement, sauf si sa p-value est vraiment élevée (>0,4). Dans ce cas, la variable peut être supprimée sans risque.
La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie inférieure à 0,05 et une p-value élevée signifie généralement supérieure à 0,3-0,5.
Dans notre exemple, nous avons obtenu des valeurs p pour la taille de la mère et la constante de 0,087 et 0,051. Si nous supprimons les variables avec une valeur p > 0,05, nous obtiendrons le résultat ci-dessous (à gauche).
Même visuellement, on peut constater que le modèle avec la constante (à droite) est meilleur, il est donc préférable de ne pas la retirer du modèle.
Il est courant d'obtenir des valeurs p relativement élevées (0,05 à 0,2) pour des variables influentes lorsque l'ensemble de données est petit. La valeur p indique la confiance que la variable est influente, et il est naturel que plus nous avons d'observations, plus il est facile de distinguer les variables influentes des mauvaises.
Supposons que vous ayez des données montrant que 9/10 des personnes grandes que vous connaissez mangeaient des pommes tous les jours. Pouvez-vous être certain qu'il y a un lien ? Mais si c'était 9000/10000 ? Cela vous rendrait plus confiant.
Comment supprimer les mauvaises variables ?
Il suffit de retirer la colonne correspondant à la variable de X_tilde
. Cela peut être réalisé avec le code suivant :
X_tilde = X_tilde.drop(___, axis=1)
Par exemple, pour supprimer les colonnes 'const' et 'Mother', utilisez :
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
Ensuite, créez un nouvel objet OLS en utilisant le X_tilde
mis à jour :
regression_model=sm.OLS(y, X_tilde)
1. Parmi les variables, lesquelles devez-vous CONSERVER ?
2. Choisissez l'affirmation INCORRECTE.
Merci pour vos commentaires !