Un guide pour comprendre les termes d'interaction
Introduction
Les termes d'interaction sont incorporés dans la modélisation de régression pour saisir l'effet de deux variables indépendantes ou plus dans la variable dépendante. Parfois, ce n'est pas seulement la relation simple entre les variables de contrôle et la variable cible qui est à l'étude, les termes d'interaction peuvent être très utiles à ces moments. Ceux-ci sont également utiles chaque fois que la relation entre une variable indépendante et la variable dépendante est conditionnelle au niveau d'une autre variable indépendante.
Cela implique bien sûr que l'effet d'un prédicteur sur la variable de réponse dépend du niveau d'un autre prédicteur. Dans ce blog, nous examinons l'idée des termes d'interaction à travers un scénario simulé: prédire à maintes reprises le temps que les utilisateurs passeraient sur un canal de commerce électronique en utilisant leur comportement passé.
Objectifs d'apprentissage
- Comprendre comment les termes d'interaction améliorent le pouvoir prédictif des modèles de régression.
- Apprenez à créer et à incorporer des termes d'interaction dans une analyse de régression.
- Analyser l'impact des termes d'interaction sur la précision du modèle à travers un exemple pratique.
- Visualiser et interpréter les effets des termes d'interaction sur les résultats prédits.
- Gardez un aperçu de quand et pourquoi appliquer des termes d'interaction dans des scénarios du monde réel.
Cet article a été publié dans le cadre du Blogathon de la science des données.
Table des matières
- Introduction
- Comprendre les bases des termes d'interaction
- Comment les termes d'interaction influencent les coefficients de régression?
- Scénario simulé: comportement de l'utilisateur sur une plate-forme de commerce électronique
- Modèle sans terme d'interaction
- Modèle avec un terme d'interaction
- Comparaison des performances du modèle
- Conclusion
- Questions fréquemment posées
Comprendre les bases des termes d'interaction
Dans la vraie vie, nous ne constatons pas qu'une variable fonctionne isolément des autres et que les modèles réels sont donc beaucoup plus complexes que ceux que nous étudions dans les classes. Par exemple, l'effet des actions de navigation des utilisateurs finaux tels que l'ajout d'articles à un panier sur le temps passé sur une plate-forme de commerce électronique diffère lorsque l'utilisateur ajoute l'élément à un panier et les achète. Ainsi, l'ajout de termes d'interaction en tant que variables à un modèle de régression permet de reconnaître ces intersections et, par conséquent, d'améliorer la forme physique du modèle en termes d'explication des modèles sous-jacents aux données observées et / ou de prédire les valeurs futures de la variable dépendante.
Représentation mathématique
Prenons un modèle de régression linéaire avec deux variables indépendantes, x1 et x2:
Y = β0 β1 x1 β2 x2 ϵ,
Lorsque y est la variable dépendante, β0 est l'interception, β1 et β2 sont les coefficients pour les variables indépendantes x1 et x2, respectivement, et le terme d'erreur.
Ajout d'un terme d'interaction
Pour inclure un terme d'interaction entre x1 et x2, nous introduisons une nouvelle variable x1⋅x2:
Y = β0 β1x1 β2x2 β3 (x1⋅x2) ϵ,
où β3 représente l'effet d'interaction entre x1 et x2. Le terme x1⋅x2 est le produit des deux variables indépendantes.
Comment les termes d'interaction influencent les coefficients de régression?
- β0: L'interception, représentant la valeur attendue de Y lorsque toutes les variables indépendantes sont nulles.
- β1: l'effet de x1 sur y lorsque x2 est nul.
- β2: l'effet de x2 sur y lorsque x1 est nul.
- β3: le changement dans l'effet de X1 sur Y pour un changement d'une unité dans X2, ou de manière équivalente, le changement dans l'effet de X2 sur Y pour un changement d'une unité dans X1.
Exemple: activité des utilisateurs et temps passé
Tout d'abord, créons un ensemble de données simulé pour représenter le comportement des utilisateurs dans une boutique en ligne. Les données se compose de:
- ajouté_in_cart: indique si un utilisateur a ajouté des produits à son panier (1 pour l'ajout et 0 pour ne pas ajouter).
- Acheté: si l'utilisateur a terminé ou non un achat (1 pour l'achèvement ou 0 pour la non-complétion).
- Time_spent: le temps qu'un utilisateur a passé sur une plate-forme de commerce électronique. Notre objectif est de prédire la durée de la visite d'un utilisateur dans une boutique en ligne en analysant s'ils ajoutent des produits à son panier et effectuent une transaction.
# Importer des bibliothèques Importer des pandas en tant que PD Importer Numpy comme NP # Générer des données synthétiques Def Generate_Synthetic_data (n_sample = 2000): np.random.seed (42) ajouté_in_cart = np.random.randint (0, 2, n_sample) Acheté = np.random.randint (0, 2, n_sample) Time_spent = 3 2 * Acheté 2.5 * ajouté_in_cart 4 * acheté * ajouté_in_cart np.random.ormal (0, 1, n_sample) return pd.dataframe ({'acheté': acheté, 'ajouté_in_cart': ajouté_in_cart, 'time_spent': time_spent}) df = generate_synthetic_data () df.head ()
Sortir:
Scénario simulé: comportement de l'utilisateur sur une plate-forme de commerce électronique
En tant que prochaine étape, nous construirons d'abord un modèle de régression des moindres carrés ordinaire en considérant ces actions du marché, mais sans couverture à leurs effets d'interaction. Nos hypothèses sont les suivantes: (Hypothèse 1) Il y a un effet du temps passé sur le site Web où chaque action est prise séparément. Maintenant, nous allons ensuite construire un deuxième modèle qui comprend le terme d'interaction qui existe entre l'ajout de produits dans le panier et la réalisation d'un achat.
Cela nous aidera à contrepasser l'impact de ces actions, séparément ou combinés sur le temps passé sur le site Web. Cela suggère que nous voulons savoir si les utilisateurs qui ajoutent des produits au panier et effectuent un achat passent plus de temps sur le site que le temps passé lorsque chaque comportement est considéré individuellement.
Modèle sans terme d'interaction
Après la construction du modèle, les résultats suivants ont été notés:
- Avec une erreur quadratique moyenne (MSE) de 2,11, le modèle sans le terme d'interaction représente environ 80% (test R-carré) et 82% (train R-carré) de la variance dans le temps_pent. Cela indique que les prédictions Time_Spent sont, en moyenne, 2,11 unités au carré à partir du Time_pent réel. Bien que ce modèle puisse être amélioré, il est raisonnablement précis.
- De plus, le tracé ci-dessous indique graphiquement que bien que le modèle fonctionne assez bien. Il y a encore beaucoup de place à l'amélioration, en particulier en termes de capture de valeurs plus élevées de Time_pent.
# Importer des bibliothèques de sklearn.model_selection import train_test_split De Sklearn.Linear_Model Import Lineargression De Sklearn.Metrics Import Mean_squared_error, R2_SCORE importer statsmodels.api comme sm de sklearn.model_selection import train_test_split Importer Matplotlib.pyplot en tant que plt # Modèle sans terme d'interaction X = df [['acheté', 'ajouté_in_cart']] y = df ['time_spent'] X_train, x_test, y_train, y_test = Train_test_split (x, y, test_size = 0,3, random_state = 42) # Ajouter une constante pour l'ordonnée X_train_const = sm.add_constant (x_train) X_test_const = sm.add_constant (x_test) modèle = sm.ols (y_train, x_train_const) .fit () y_pred = modèle.predict (x_test_const) # Calculer les métriques pour le modèle sans terme d'interaction train_r2 = modèle.rsquared test_r2 = r2_score (y_test, y_pred) mse = mean_squared_error (y_test, y_pred) Print ("Modèle sans terme d'interaction:") Imprimer ('Score de formation R-Squared (%):', Round (Train_R2 * 100, 4)) Imprimer ('Test R-Squared Score (%):', Round (test_r2 * 100, 4)) Print ("MSE:", Round (MSE, 4)) print (Model.Summary ()) # Fonction pour tracer réel vs prévu def tracé_actual_vs_preddit (y_test, y_pred, titre): Plt.Figure (FigSize = (8, 4)) plt.scatter (y_test, y_pred, edgecolors = (0, 0, 0))) plt.plot ([y_test.min (), y_test.max ()], [y_test.min (), y_test.max ()], 'k--', lw = 2) plt.xLabel («réel») plt.ylabel («prédit») plt.title (titre) plt.show () # Plot sans terme d'interaction Plot_actual_vs_predit (y_test, y_pred, 'réel vs temps prédit passé (sans terme d'interaction)') ')
Sortir:
Modèle avec un terme d'interaction
- Un meilleur ajustement pour le modèle avec le terme d'interaction est indiqué par le tracé de diffusion avec le terme d'interaction, qui affiche les valeurs prédites sensiblement plus proches des valeurs réelles.
- Le modèle explique beaucoup plus de la variance dans le Time_spent avec le terme d'interaction, comme le montre la valeur R-Squared Test plus élevée (de 80,36% à 90,46%).
- Les prédictions du modèle avec le terme d'interaction sont plus précises, comme en témoignent le MSE inférieur (de 2,11 à 1,02).
- L'alignement plus proche des points vers la ligne diagonale, en particulier pour des valeurs plus élevées de Time_pent, indique un ajustement amélioré. Le terme d'interaction aide à exprimer comment les actions des utilisateurs affectent collectivement le temps passé.
# Ajouter un terme d'interaction df ['acheté_added_in_cart'] = df ['acheté'] * df ['ajouté_in_cart'] X = df [['acheté', 'ajouté_in_cart', 'acheté_added_in_cart']] y = df ['time_spent'] X_train, x_test, y_train, y_test = Train_test_split (x, y, test_size = 0,3, random_state = 42) # Ajouter une constante pour l'ordonnée X_train_const = sm.add_constant (x_train) X_test_const = sm.add_constant (x_test) Model_With_Interaction = Sm.ols (Y_TRAIN, X_TRAIN_CONST) .FIT () y_pred_with_interaction = modèle_with_interaction.predict (x_test_const) # Calculer les métriques pour le modèle avec un terme d'interaction Train_R2_With_Interaction = Model_With_Interaction.RSquared test_r2_with_interaction = r2_score (y_test, y_pred_with_interaction) mse_with_interaction = mean_squared_error (y_test, y_pred_with_interaction) Print ("\ nModel avec terme d'interaction:") Imprimer ('Score de formation R-Squared (%):', Round (Train_R2_With_Interaction * 100, 4)) Imprimer ('Test R-Squared Score (%):', Round (test_r2_with_interaction * 100, 4)) print ("MSE:", Round (mse_with_interaction, 4)) print (modèle_with_interaction.summary ()) # Plot avec terme d'interaction PLOT_ACtual_vs_preddit (y_test, y_pred_with_interaction, 'réel vs temps prédit passé (avec terme d'interaction)') # Comparaison d'impression Print ("\ ncomparison des modèles:") print ("R-Squared sans terme d'interaction:", Round (r2_score (y_test, y_pred) * 100,4)) print ("r-carré avec terme d'interaction:", rond (r2_score (y_test, y_pred_with_interaction) * 100,4)) print ("MSE sans terme d'interaction:", Round (Mean_squared_error (y_test, y_pred), 4))) print ("MSE avec terme d'interaction:", Round (Mean_squared_error (y_test, y_pred_with_interaction), 4))
Sortir:
Comparaison des performances du modèle
- Les prédictions du modèle sans le terme d'interaction sont représentées par les points bleus. Lorsque les valeurs réelles de temps passé sont plus élevées, ces points sont plus dispersés à partir de la ligne diagonale.
- Les prédictions du modèle avec le terme d'interaction sont représentées par les points rouges. Le modèle avec le terme d'interaction produit des prédictions plus précises. Surtout pour des valeurs réelles plus élevées, car ces points sont plus proches de la ligne diagonale.
# Comparez le modèle avec et sans terme d'interaction DEF PLOT_ACtual_vs_preditd_combined (y_test, y_pred1, y_pred2, title1, title2): Plt.Figure (FigSize = (10, 6)) plt.scatter (y_test, y_pred1, edgecolors = 'bleu', label = title1, alpha = 0,6) plt.scatter (y_test, y_pred2, edgecolors = 'red', label = title2, alpha = 0,6) plt.plot ([y_test.min (), y_test.max ()], [y_test.min (), y_test.max ()], 'k--', lw = 2) plt.xLabel («réel») plt.ylabel («prédit») plt.title («réel vs temps d'utilisateur prédit passé») plt.legend () plt.show () PLOT_ACtual_vs_predited_combined (y_test, y_pred, y_pred_with_interaction, 'modèle sans terme d'interaction', 'modèle avec le terme d'interaction'))
Sortir:
Conclusion
L'amélioration des performances du modèle avec le terme d'interaction démontre que parfois l'ajout de termes d'interaction à votre modèle peut améliorer son importance. Cet exemple met en évidence comment les termes d'interaction peuvent capturer des informations supplémentaires qui ne sont pas apparentes à partir des seuls effets seuls. En pratique, la considération des termes d'interaction dans les modèles de régression peut potentiellement conduire à des prédictions plus précises et perspicaces.
Dans ce blog, nous avons d'abord généré un ensemble de données synthétiques pour simuler le comportement des utilisateurs sur une plate-forme de commerce électronique. Nous avons ensuite construit deux modèles de régression: un sans termes d'interaction et un avec des termes d'interaction. En comparant leurs performances, nous avons démontré l'impact significatif des termes d'interaction sur la précision du modèle.
Consultez le code complet et les ressources sur GitHub.
Principaux à retenir
- Les modèles de régression avec des termes d'interaction peuvent aider à mieux comprendre les relations entre deux ou plusieurs variables et la variable cible en capturant leurs effets combinés.
- L'inclusion des termes d'interaction peut améliorer considérablement les performances du modèle, comme en témoignent les valeurs R-Squared plus élevées et la MSE plus faible dans ce guide.
- Les termes d'interaction ne sont pas seulement des concepts théoriques, ils peuvent être appliqués à des scénarios du monde réel.
Questions fréquemment posées
Q1. Que sont les termes d'interaction dans l'analyse de régression?A. Ce sont des variables créées en multipliant deux ou plusieurs variables indépendantes. Ils sont utilisés pour capturer l'effet combiné de ces variables sur la variable dépendante. Cela peut fournir une compréhension plus nuancée des relations dans les données.
Q2. Quand dois-je envisager d'utiliser des termes d'interaction dans mon modèle?A. Vous devriez envisager de l'utiliser lorsque vous soupçonnez que l'effet d'une variable indépendante sur la variable dépendante dépend du niveau d'une autre variable indépendante. Par exemple, si vous pensez que l'impact de l'ajout d'articles au panier sur le temps passé sur une plate-forme de commerce électronique dépend de la question de l'achat. Vous devez inclure un terme d'interaction entre ces variables.
Q3. Comment interpréter les coefficients des termes d'interaction?A. Le coefficient d'un terme d'interaction représente le changement dans l'effet d'une variable indépendante sur la variable dépendante pour un changement d'unité dans une autre variable indépendante. Par exemple, dans notre exemple ci-dessus, nous avons un terme d'interaction entre acheté et ajouté_in_cart, le coefficient nous explique comment l'effet de l'ajout d'articles au chariot sur le temps passé change lorsqu'un achat est effectué.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'article passe en revue les meilleurs générateurs d'art AI, discutant de leurs fonctionnalités, de leur aptitude aux projets créatifs et de la valeur. Il met en évidence MidJourney comme la meilleure valeur pour les professionnels et recommande Dall-E 2 pour un art personnalisable de haute qualité.

META'S LLAMA 3.2: un bond en avant dans l'IA multimodal et mobile Meta a récemment dévoilé Llama 3.2, une progression importante de l'IA avec de puissantes capacités de vision et des modèles de texte légers optimisés pour les appareils mobiles. S'appuyer sur le succès o

L'article compare les meilleurs chatbots d'IA comme Chatgpt, Gemini et Claude, en se concentrant sur leurs fonctionnalités uniques, leurs options de personnalisation et leurs performances dans le traitement et la fiabilité du langage naturel.

Chatgpt 4 est actuellement disponible et largement utilisé, démontrant des améliorations significatives dans la compréhension du contexte et la génération de réponses cohérentes par rapport à ses prédécesseurs comme Chatgpt 3.5. Les développements futurs peuvent inclure un interg plus personnalisé

L'article traite des meilleurs assistants d'écriture d'IA comme Grammarly, Jasper, Copy.ai, WireSonic et Rytr, en se concentrant sur leurs fonctionnalités uniques pour la création de contenu. Il soutient que Jasper excelle dans l'optimisation du référencement, tandis que les outils d'IA aident à maintenir le ton

2024 a été témoin d'un simple passage de l'utilisation des LLM pour la génération de contenu pour comprendre leur fonctionnement intérieur. Cette exploration a conduit à la découverte des agents de l'IA - les systèmes autonomes manipulant des tâches et des décisions avec une intervention humaine minimale. Construire

L'article examine les meilleurs générateurs de voix d'IA comme Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson et Descript, en se concentrant sur leurs fonctionnalités, leur qualité vocale et leur aptitude à différents besoins.

Le paysage de l'IA de cette semaine: un tourbillon de progrès, de considérations éthiques et de débats réglementaires. Les principaux acteurs comme Openai, Google, Meta et Microsoft ont déclenché un torrent de mises à jour, des nouveaux modèles révolutionnaires aux changements cruciaux de LE
