分區建模:什麼決定了最小分割大小?我並不是一名事實上的統計學家,但多年來在生物統計學方面積累了豐富的經驗,這主要歸功於使用 JMP 標準版本(當前為 v13)。 我當然無法想像使用其他任何東西並定期推廣它。
我目前正在逐步定義各種連續變量的分區,以優化二項式分類變量的結果(失敗與通過)。 我已經閱讀和觀察了有關該平台的很多內容,並且確實理解包括驗證並將協變量的數量限制為實用但合乎邏輯的短列表的必要性。
然而,最小分割尺寸是我不確定的一個參數。 我的目的是定義分區,以最大限度地減少甚至完全減輕結果變量的失敗。 由此產生的分區似乎在很大程度上取決於所選的最小分割大小/比例。 我的感覺是,應該選擇盡可能大的尺寸(力爭達到 50%),同時密切關注每次分割生成的 LogWorth 值。 我認為分割尺寸太小可能類似於面臨 II 類錯誤的風險。 那麼,除了我所建議的之外,如何確定使用什麼比例呢?
另外,我假設分區模型沒有考慮對多重比較進行校正,為什麼當保存結果分割並執行 2x2 應急分析時,初始分割的 LogWorth 等效 p 值與 Fisher 精確結果不匹配?
數據混合和清理預測建模和機器學習回复:分區建模:什麼決定了最小大小分割?親愛的DS
再次感謝您的詳細回复,這非常有用。 我必須承認,儘管我在 Filemaker 中作為一名程序員頗有成就,但我從未真正探索過 JSL,但這也許正是我需要這樣做的動力。 關於 R^2,我意識到了這一點,並且確實監控了該係數的分割歷史。 幸運的是,我偶然發現了很少公開的使用排除行進行驗證的做法,這似乎與正常操作期間的習慣最違反直覺。
回复:分區建模:什麼決定了最小大小分割?你好@34南,
XGBoost真的很強大而且很穩定。 如果您多次重新運行它,您會得到相同的答案,但對於引導森林或提升樹而言,情況並非總是如此。
我找到了這個網站對於如何調整 XGBoost 和改進模型非常有幫助。 而且,由於它是為運行 Python 的人編寫的,因此您應該可以開始使用。
您是否考慮過編寫適合例程的腳本,以便可以自動化某些過程並可以在無人監督的情況下運行? 從長遠來看可能會更快。 我在 JMP 中搜索其他基於樹的平台的調整參數空間時會這樣做 - 通常運行 30k 以上的計算。 根據平台的不同,它可能需要 8-10 個小時,但我只是讓它運行,而我做其他事情。
您肯定需要監控 R^2 進行訓練和驗證,以確保不會過度擬合數據。 我現在正在嘗試運行一些模型,但我發現到目前為止,在 Neural Net 和 GenReg 平台上,它返回的 R^2 驗證集比訓練集大,這是一個很大的警告符號。 就我個人而言,我認為這是因為我擁有的數據集以及數據的高度非正態分佈。
將測試數據放在一邊是一件非常好的事情 - 實際上從訓練數據表中刪除這些數據,這樣 JMP 在運行擬合時就無法訪問它們。 我之前有過這樣的經驗,即使我隱藏並排除了某些行,在交叉驗證期間仍然使用數據,因此當比較測試數據集的實際圖與預測圖時,它看起來比實際情況更好,因為一些測試數據正在用於訓練。
DS
回复:分區建模:什麼決定了最小大小分割?親愛的DS
感謝您的詳細回复。 不幸的是我沒有專業版($$$)。 我在此期間採取的方法是指定 20% 進行驗證,然後從 45% 的最小大小分割開始。 如果失敗,我會將其減少 5% 到 40%,依此類推,直到實現拆分。 然後,我會以 1% 的增量對其進行微調,但將其限制在 LogWorth 值表明顯著性的位置。 或者,我將分割設置為原始集中的失敗計數,或稍高一點,以實現將 100% 的失敗案例放置到分割定義的結果子集中之一。 我接受您關於測試集的觀點,並且會嘗試這樣做,前提是仍有足夠的數量用於驗證和培訓。 安裝 Python 後嘗試了 XGBoost,但要讓它發揮作用需要一個學習曲線。
回复:分區建模:什麼決定了最小大小分割?你好@34南,
您是否擁有 JMP Pro 或可以訪問 JMP Pro? 我問這個問題是因為分區平台不是生成預測公式的最佳(最穩定)方法。 Boosted Tree 和 Boostrap Forest 平台要好得多。 或者,如果你可以訪問更高版本,也可以運行XGBoost平台,它非常穩定。
但是,關於你關於最小尺寸分割的問題。 最小尺寸分割控制樹“樹樁”的複雜性。 如果拆分中的觀測值數量小於您設置的值,則不會生成拆分。 當您在決策樹中使用提升時,它並不是太相關,但可以用來控制它。 您不希望它太小(即 1 個觀察值),也不希望它太大(例如 1000 個觀察值)。 對於簡單的樹方法來說,一個好的典型起始點約為 5。 如果您使用的是引導森林平台之類的東西,您將需要使用 N/2 來進行分類方案,就像您正在使用的那樣 - 其中 N 是觀測值的數量。 您可以通過調整此參數來調整模型,然後將其與測試數據集上的不同模型進行比較。
如果您有足夠的數據,我建議拆分一部分(可能是 20-25%)並將其保留為不用於訓練或驗證模型的測試數據集。 利用剩餘數據,您可以生成包含訓練和驗證數據(例如 80/20)的分層驗證列,以優化模型的複雜性,同時防止模型過度擬合。 生成多個模型後,您可以使用以前的測試數據來比較哪個模型實際上更能正確預測結果。 由於您正在尋找二元決策模型,您甚至可以通過查看成本敏感學習來進一步優化它。
我不是 JMP 如何計算對數價值或 Fischer 精確檢驗的專家,所以希望 JMP 的人可以回答這個問題,但我猜測這與整個數據集和計算對數價值與保存時的情況有關分割公式並做列聯表。
希望這會有所幫助——或者至少提供一些值得思考的事情。
快樂建模!,
DS