Choix des Variables
Glissez pour afficher le menu
Lorsque vous travaillez avec de nombreuses variables, il est souvent difficile de savoir lesquelles sont importantes. Vous pouvez entraîner un modèle avec toutes les variables, identifier celles qui sont inutiles, puis réentraîner le modèle en utilisant uniquement les variables pertinentes.
Pourquoi supprimer des variables du modèle ?
Ajouter une variable non liée à la cible introduit du bruit et dégrade les prédictions. De nombreuses variables inutiles accumulent le bruit et réduisent davantage la qualité du modèle.
Comment savoir si les variables explicatives sont pertinentes ou non ?
OLS fournit des tests statistiques lors de l'entraînement. Chaque variable explicative reçoit un résultat de test t, affiché dans le tableau summary(), indiquant si elle a un effet significatif sur la variable cible.
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 p-value de chaque variable explicative.
En résumé, plus la valeur p est faible, plus la confiance que la variable est significative est élevée.
En statistique, on fixe un niveau de signification, généralement à 0,05. Si la p-value d'une variable dépasse ce seuil, elle est considérée comme non significative.
En pratique, des p-values légèrement supérieures à 0,05 peuvent tout de même améliorer le modèle. Il est préférable de tester le modèle avec et sans cette variable. Mais si la p-value est très élevée (>0,4), vous pouvez la retirer en toute confiance.
La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie moins de 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 : 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 constante (à droite) est meilleur ; il est donc préférable de ne pas la retirer du modèle.
Les petits ensembles de données produisent souvent des p-values plus élevées (0,05–0,2) même pour des variables pertinentes. Les p-values reflètent la confiance : avec plus de données, il devient plus facile de distinguer les variables réellement influentes du bruit.
Comment supprimer les mauvaises variables ?
Il suffit de supprimer 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)
Puis créez un nouvel objet OLS en utilisant le X_tilde mis à jour :
regression_model=sm.OLS(y, X_tilde)
1. Lesquelles des variables vous devez 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
Choix des Variables
Lorsque vous travaillez avec de nombreuses variables, il est souvent difficile de savoir lesquelles sont importantes. Vous pouvez entraîner un modèle avec toutes les variables, identifier celles qui sont inutiles, puis réentraîner le modèle en utilisant uniquement les variables pertinentes.
Pourquoi supprimer des variables du modèle ?
Ajouter une variable non liée à la cible introduit du bruit et dégrade les prédictions. De nombreuses variables inutiles accumulent le bruit et réduisent davantage la qualité du modèle.
Comment savoir si les variables explicatives sont pertinentes ou non ?
OLS fournit des tests statistiques lors de l'entraînement. Chaque variable explicative reçoit un résultat de test t, affiché dans le tableau summary(), indiquant si elle a un effet significatif sur la variable cible.
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 p-value de chaque variable explicative.
En résumé, plus la valeur p est faible, plus la confiance que la variable est significative est élevée.
En statistique, on fixe un niveau de signification, généralement à 0,05. Si la p-value d'une variable dépasse ce seuil, elle est considérée comme non significative.
En pratique, des p-values légèrement supérieures à 0,05 peuvent tout de même améliorer le modèle. Il est préférable de tester le modèle avec et sans cette variable. Mais si la p-value est très élevée (>0,4), vous pouvez la retirer en toute confiance.
La p-value varie de 0 à 1, donc lorsqu'on parle de faible p-value, cela signifie moins de 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 : 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 constante (à droite) est meilleur ; il est donc préférable de ne pas la retirer du modèle.
Les petits ensembles de données produisent souvent des p-values plus élevées (0,05–0,2) même pour des variables pertinentes. Les p-values reflètent la confiance : avec plus de données, il devient plus facile de distinguer les variables réellement influentes du bruit.
Comment supprimer les mauvaises variables ?
Il suffit de supprimer 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)
Puis créez un nouvel objet OLS en utilisant le X_tilde mis à jour :
regression_model=sm.OLS(y, X_tilde)
Merci pour vos commentaires !