簡體   English   中英

努力理解R中完整的預測模型過程

[英]Strugling to understand complete predictive model process in R

我對這一切都很陌生,並且對流程的邏輯有一些心理障礙。 我正在嘗試使用當前和已經攪動過的客戶的數據庫來預測客戶流失。 到目前為止,我有

1)獲取當前客戶和已經攪動過的客戶的完整客戶數據庫,以及用於預測的客戶服務變量等。 2)將數據集隨機分成70/30進行訓練和測試3)我使用R訓練了一個隨機森林模型來預測做出預測,然后使用混淆矩陣與實際狀態進行比較。
4)我已經使用測試數據運行了該模型,以檢查用於識別攪拌器的准確性

我現在有點困惑。 我現在想做的是吸引所有現有客戶,並預測哪些客戶會流失。 我是否做錯了所有的當前客戶,我需要預測模型在培訓集中出現時客戶是否已經看到客戶流失?

我是否應該以某種方式使用訓練和測試集,而該訓練和測試集將不屬於我需要進行預測的數據集?

非常感謝您的幫助。

在我看來,您有標准的訓練-測試-驗證設置問題。 如果我理解正確,則想對所有數據測試模型(Random Forest)的性能。

做到這一點的標准課堂方法確實是您已經做的:拆分數據集,例如70%訓練和30%測試/驗證集,使用訓練集訓練模型並使用測試集進行測試。

測試(並預測所有數據)的更好方法是使用交叉驗證執行分析( https://en.wikipedia.org/wiki/Cross-validation_(statistics) )。 交叉驗證的一個示例是10倍交叉驗證:將數據拆分為10個相等大小的塊,在所有塊上循環,對於每次迭代,請使用剩余的9個塊來訓練模型並在特定模型上測試模型塊。

最終得到交叉驗證的是,您可以更全面地了解模型的性能以及數據庫中所有客戶的結果。 交叉驗證可減輕由於隨機選擇測試集而導致的分析錯誤。

希望這可以幫助!

據我了解您的問題,我覺得您想通過在訓練和測試集中使用重疊的示例來了解您是否做對了。 您首先需要了解,需要將訓練集與測試集分開。 由於您的模型參數是根據您的訓練集計算得出的,對於測試集中的類似示例,該模型將為您提供正確的預測,因此對於那些常見的訓練和測試集示例,您的准確性無疑會受到積極影響,但這並不是正確的事情。 測試集應始終包含以前看不見的示例,以便正確評估算法的性能。 如果您當前的客戶(要在其上測試模型的客戶)已經在訓練集中,那么您可能希望在測試過程中將他們排除在外。 我建議您根據一些唯一的標識符(如果有)(例如,客戶ID)在訓練集的客戶和當前的客戶之間進行檢查,並將普通客戶排除在您看不見的測試示例之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM