介紹
交互項納入回歸模型中,以捕獲因變量中兩個或多個自變量的效果。有時,正在調查的不僅僅是控制變量與目標變量之間的簡單關係,在這些時刻,交互項可能會很有幫助。每當一個自變量與因變量之間的關係是在另一個自變量的級別上的條件時,這些也很有用。
當然,這意味著一個預測因子對響應變量的影響取決於另一個預測因子的水平。在此博客中,我們通過模擬方案檢查了交互術語的概念:一次又一次地預測用戶使用過去的行為在電子商務渠道上花費的時間。
學習目標
- 了解相互作用術語如何增強回歸模型的預測能力。
- 學會在回歸分析中創建並納入交互術語。
- 通過一個實際示例分析交互項對模型準確性的影響。
- 可視化和解釋交互術語對預測結果的影響。
- 了解在現實世界中何時以及為什麼應用互動術語的洞察力。
本文作為數據科學博客馬拉鬆的一部分發表。
目錄
- 介紹
- 了解互動術語的基礎知識
- 相互作用術語如何影響回歸係數?
- 模擬方案:電子商務平台上的用戶行為
- 沒有互動項的模型
- 具有相互作用術語的模型
- 比較模型性能
- 結論
- 常見問題
了解互動術語的基礎知識
在現實生活中,我們沒有發現變量可在隔離其他人方面起作用,因此現實生活中的模型比我們在課堂上研究的模型要復雜得多。例如,當用戶將物品添加到購物車中併購買時,最終用戶導航操作(例如將項目添加到購物車中)的影響會有所不同。因此,將交互項添加為變量到回歸模型中,可以確認這些交叉點,因此,在解釋觀察到的數據和/或預測因變量的未來值的模式方面增強了模型的適合度。
數學表示
讓我們考慮一個具有兩個獨立變量x1和x2的線性回歸模型:
y =β0β1x1β2x2 ϵ,
其中y是因變量,β0是截距,β1和β2分別是自變量x1和x2的係數,並且是誤差項。
添加互動術語
要包括X1和X2之間的交互項,我們引入了一個新的變量X1·X2:
y =β0β1x1β2x2β3(x1·x2)ϵ,
其中β3的代表x1和x2之間的相互作用效應。 x1·x2術語兩個自變量的乘積。
相互作用術語如何影響回歸係數?
- β0:截距,代表所有自變量零時y的期望值。
- β1:當x2為零時x1對y的影響。
- β2:當x1為零時x2對y的影響。
- β3:X1對X的影響的變化X2的單位變化,或等效地,X2對Y對X1單位變化的影響的變化。
示例:用戶活動和花費的時間
首先,讓我們創建一個模擬數據集來表示在線商店上的用戶行為。數據包括:
- add_in_cart:指示用戶是否已在其購物車中添加了產品(1添加1,而不添加0)。
- 購買:用戶是否完成了購買(完成為1,或不完成為0)。
- time_spent:用戶在電子商務平台上花費的時間。我們的目標是通過分析用戶是否在購物車中添加產品並完成交易來預測用戶訪問的持續時間。
#導入庫 導入大熊貓作為pd 導入numpy作為NP #生成合成數據 def generate_synthetic_data(n_samples = 2000): np.random.seed(42) add_in_cart = np.random.randint(0,2,n_samples) 購買= np.random.randint(0,2,n_samples) time_spent = 3 2*購買2.5*添加了_in_cart 4*購買*add_in_cart np.random.normal(0,1,n_samples) 返回pd.dataframe({'購買':購買,'add_in_cart':add_in_cart,'time_spent':time_spent}) df = generate_synthetic_data() df.head()
輸出:
模擬方案:電子商務平台上的用戶行為
作為下一步,我們將首先構建一個普通的最小平方回歸模型,並考慮到市場的這些行動,但沒有覆蓋其相互作用的影響。我們的假設如下:(假設1)在網站上所花費的時間分別採取了分別採取的時間。現在,我們將構建第二個模型,其中包括將產品添加到購物車與購買之間存在的交互項。
這將有助於我們分別或在網站上花費的時間組合這些行動的影響。這表明我們要找出在購物車中添加產品並進行購買的用戶是否在網站上花費更多的時間,而不是單獨考慮每個行為時所花費的時間。
沒有互動項的模型
遵循模型的構建,記錄了以下結果:
- 沒有交互項的平均平方誤差(MSE)為2.11,大約為80%(測試R平方)和Time_Spent中差異的82%(列車R-Squared)。這表明time_spent預測平均是2.11平方單元與實際time_spent關閉。儘管可以改善此模型,但它是合理準確的。
- 此外,下圖以圖形方式表明,儘管該模型的性能相當出色。仍然有很大的改進空間,尤其是在捕獲更高的time_spent值方面。
#導入庫 來自sklearn.model_selection導入train_test_split 來自sklearn.linear_model導入linearrecress 來自sklearn.metrics導入均值_squared_error,r2_score 導入statsmodels.api作為sm 來自sklearn.model_selection導入train_test_split 導入matplotlib.pyplot作為PLT #沒有互動術語的模型 x = df [['publated','add_in_cart']] y = df ['time_spent'] x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.3,andural_state = 42) #為攔截添加一個常數 x_train_const = sm.add_constant(x_train) x_test_const = sm.add_constant(x_test) model = sm.ols(y_train,x_train_const).fit() y_pred = model.predict(x_test_const) #計算模型的指標,而無需交互項 train_r2 = model.rsquared test_r2 = r2_score(y_test,y_pred) mse = mean_squared_error(y_test,y_pred) 打印(“沒有互動術語的模型:”) 打印('訓練R平方分數(%):',圓形(Train_r2 * 100,4)) 打印('測試R平方分數(%):',圓形(test_r2 * 100,4)) 打印(“ MSE:”,圓形(MSE,4)) 打印(model.summary()) #繪製實際與預測的功能 def plot_actual_vs_predicted(y_test,y_pred,title): plt.figure(無花果=(8,4)) plt. -scatter(y_test,y_pred,edgeColors =(0,0,0,0)) plt.plot([y_test.min(),y_test.max()],[y_test.min(),y_test.max()],'k--',lw = 2) plt.xlabel('實際') plt.ylabel(“預測”) plt.title(標題) plt.show() #沒有互動術語的情節 plot_actual_vs_predicted(y_test,y_pred,'實際vs預測時間(無互動術語)')
輸出:
具有相互作用術語的模型
- 與交互項的散點圖指示了具有交互項的模型的更好擬合,該散點圖與交互項相互貼合,該術語顯示了更接近實際值的預測值。
- 該模型用交互項解釋了time_spent中的更多差異,如較高的測試R平方值所示(從80.36%到90.46%)。
- 較低的MSE(從2.11到1.02)證明了模型對交互項的預測更為準確。
- 該點與對角線線的距離更緊密,特別是對於更高的時間_spent值,這表明擬合度得到了改善。交互術語有助於表達用戶行動如何共同影響所花費的時間。
#添加互動術語 df ['購買的_ADDED_IN_CART'] = DF ['puperated'] * df ['add_in_cart'] x = df [['購買','add_in_cart','購買的_added_in_cart']]] y = df ['time_spent'] x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.3,andural_state = 42) #為攔截添加一個常數 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 = model_with_interaction.predict(x_test_const) #計算具有交互項的模型的指標 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) 打印(“ \ nmodel具有交互術語:”) 打印('訓練R平方分數(%):',圓形(train_r2_with_interaction * 100,4)) 打印('測試R平方分數(%):',圓形(test_r2_with_interaction * 100,4)) 打印(“ MSE:”,圓形(MSE_WITH_INTRACTION,4)) 打印(model_with_interaction.summary()) #帶有互動術語的情節 plot_actual_vs_predicted(y_test,y_pred_with_interaction,'實際vs預測的時間(與互動術語)') #打印比較 打印(“模型的比較:”) 打印(“無互動術語的r平方:”,round(r2_score(y_test,y_pred)*100,4)) print(“帶有交互術語的R平方:”,round(r2_score(y_test,y_pred_with_interaction)*100,4))))) 打印(“沒有互動術語的MSE:”,round(mean_squared_error(y_test,y_pred),4)) 打印(“帶有交互術語的MSE:”,round(mean_squared_error(y_test,y_pred_with_interaction),4))
輸出:
比較模型性能
- 沒有交互項的模型預測由藍點表示。當實際花費的值較高時,這些點就會從對角線分散。
- 相互作用項的模型預測由紅點表示。具有相互作用項的模型會產生更準確的預測。特別是對於更高的實際時間所花費的值,因為這些點更接近對角線線。
#在有和沒有交互項的情況下比較模型 def plot_actual_vs_predication_combined(y_test,y_pred1,y_pred2,title1,title2): plt.figure(無花果=(10,6)) plt. -scatter(y_test,y_pred1,edgecolors ='blue',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('實際') plt.ylabel(“預測”) plt.title(“實際vs預測用戶花費的時間”) plt.legend() plt.show() plot_actual_vs_predictical_combined(y_test,y_pred,y_pred_with_interaction,'模型無交互項',“具有交互術語的模型”)
輸出:
結論
與交互術語相互作用的模型性能的改進表明,有時在模型中添加交互項可能會增強其重要性。這個示例強調了相互作用項如何捕獲僅從主要效果中明顯看出的其他信息。實際上,考慮回歸模型中的相互作用術語可能會導致更準確和有見地的預測。
在此博客中,我們首先生成了一個合成數據集,以模擬電子商務平台上的用戶行為。然後,我們構建了兩個回歸模型:一個沒有相互作用項,一個具有相互作用項。通過比較它們的性能,我們證明了交互項對模型準確性的重大影響。
在GitHub上查看完整的代碼和資源。
關鍵要點
- 具有相互作用項的回歸模型可以通過捕獲其組合效果來更好地理解兩個或多個變量與目標變量之間的關係。
- 包括交互項可以顯著改善模型性能,這可以通過本指南中較高的R平方值和較低的MSE證明。
- 互動術語不僅是理論概念,還可以應用於現實世界的情況。
常見問題
Q1。回歸分析中的相互作用術語是什麼?答:它們是通過乘以兩個或多個自變量來創建的變量。它們用於捕獲這些變量對因變量的綜合效果。這可以為數據中的關係提供更細微的理解。
Q2。我什麼時候應該考慮在模型中使用互動術語?答:當您懷疑一個自變量對因變量的影響取決於另一個自變量的級別時,應考慮使用它。例如,如果您認為在電子商務平台上花費的時間添加物品的影響取決於用戶是否進行購買。您應該在這些變量之間包括一個交互項。
Q3。如何解釋相互作用術語的係數?答:交互項的係數表示一個獨立變量對另一個自變量中一個單元變化的因變量的效果的變化。例如,在上面的示例中,我們在購買和add_in_cart之間有一個交互項,該係數告訴我們在購買購買時如何將物品添加到購物車的時間更改的效果。
本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。
以上是理解互動術語的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!
![無法使用chatgpt!解釋可以立即測試的原因和解決方案[最新2025]](https://img.php.cn/upload/article/001/242/473/174717025174979.jpg?x-oss-process=image/resize,p_40)
ChatGPT無法訪問?本文提供多種實用解決方案!許多用戶在日常使用ChatGPT時,可能會遇到無法訪問或響應緩慢等問題。本文將根據不同情況,逐步指導您解決這些問題。 ChatGPT無法訪問的原因及初步排查 首先,我們需要確定問題是出在OpenAI服務器端,還是用戶自身網絡或設備問題。 請按照以下步驟進行排查: 步驟1:檢查OpenAI官方狀態 訪問OpenAI Status頁面 (status.openai.com),查看ChatGPT服務是否正常運行。如果顯示紅色或黃色警報,則表示Open

2025年5月10日,麻省理工學院物理學家Max Tegmark告訴《衛報》,AI實驗室應在釋放人工超級智能之前模仿Oppenheimer的三位一體測試演算。 “我的評估是'康普頓常數',這是一場比賽的可能性

AI音樂創作技術日新月異,本文將以ChatGPT等AI模型為例,詳細講解如何利用AI輔助音樂創作,並輔以實際案例進行說明。我們將分別介紹如何通過SunoAI、Hugging Face上的AI jukebox以及Python的Music21庫進行音樂創作。 通過這些技術,每個人都能輕鬆創作原創音樂。但需注意,AI生成內容的版權問題不容忽視,使用時務必謹慎。 讓我們一起探索AI在音樂領域的無限可能! OpenAI最新AI代理“OpenAI Deep Research”介紹: [ChatGPT]Ope

ChatGPT-4的出现,极大地拓展了AI应用的可能性。相较于GPT-3.5,ChatGPT-4有了显著提升,它具备强大的语境理解能力,还能识别和生成图像,堪称万能的AI助手。在提高商业效率、辅助创作等诸多领域,它都展现出巨大的潜力。然而,与此同时,我们也必须注意其使用上的注意事项。 本文将详细解读ChatGPT-4的特性,并介绍针对不同场景的有效使用方法。文中包含充分利用最新AI技术的技巧,敬请参考。 OpenAI发布的最新AI代理,“OpenAI Deep Research”详情请点击下方链

CHATGPT應用程序:與AI助手釋放您的創造力!初學者指南 ChatGpt應用程序是一位創新的AI助手,可處理各種任務,包括寫作,翻譯和答案。它是一種具有無限可能性的工具,可用於創意活動和信息收集。 在本文中,我們將以一種易於理解的方式解釋初學者,從如何安裝chatgpt智能手機應用程序到語音輸入功能和插件等應用程序所獨有的功能,以及在使用該應用時要牢記的要點。我們還將仔細研究插件限制和設備對設備配置同步

ChatGPT中文版:解鎖中文AI對話新體驗 ChatGPT風靡全球,您知道它也提供中文版本嗎?這款強大的AI工具不僅支持日常對話,還能處理專業內容,並兼容簡體中文和繁體中文。無論是中國地區的使用者,還是正在學習中文的朋友,都能從中受益。 本文將詳細介紹ChatGPT中文版的使用方法,包括賬戶設置、中文提示詞輸入、過濾器的使用、以及不同套餐的選擇,並分析潛在風險及應對策略。此外,我們還將對比ChatGPT中文版和其他中文AI工具,幫助您更好地了解其優勢和應用場景。 OpenAI最新發布的AI智能

這些可以將其視為生成AI領域的下一個飛躍,這為我們提供了Chatgpt和其他大型語言模型聊天機器人。他們可以代表我們採取行動,而不是簡單地回答問題或產生信息

使用chatgpt有效的多個帳戶管理技術|關於如何使用商業和私人生活的詳盡解釋! Chatgpt在各種情況下都使用,但是有些人可能擔心管理多個帳戶。本文將詳細解釋如何為ChatGpt創建多個帳戶,使用時該怎麼做以及如何安全有效地操作它。我們還介紹了重要的一點,例如業務和私人使用差異,並遵守OpenAI的使用條款,並提供指南,以幫助您安全地利用多個帳戶。 Openai


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具