歡迎回到充滿信心的分析。 在本系列中,我正在探索現代資料分析成功的關鍵:驗證。 在裡面第一的和第二我們討論了泛化性的帖子,並了解瞭如何建立不可泛化的有問題的模型。 在這篇文章中,我們繼續對反應配方進行案例研究,並介紹抑制驗證作為建立您可以信任的模型的簡單工具。
請記住,在本案例研究中,我們正在研究製造高價值化學產品的配方 [1]。 成分選擇有 4,608 種可能的變化(4 種親電子試劑 x 3 種親核試劑 x 12 種配體 x 8 種鹼基 x 4 種溶劑)。 我們希望使用僅 150 種可能的食譜中的數據來建立模型來預測任何食譜的產量並找到成分的最佳組合。
我們上次建立的分區模型乍看之下很棒,R 方為 0.985,實際上與預測圖顯示與數據非常吻合。 但隨後我們研究了模型預測與訓練資料中未包含的所有 4,458 種食譜的實際產量的比較。 該模型預測幾種食譜的產量接近 100%,而實際上產量接近 0!
Actual versus Predicted plots for the data that was used to train the model (left) and the data for all the other recipes that were not used to train the model (right). This is an example of an "overfit" model that does not generalize.用於訓練模型的資料(左)和所有其他未用於訓練模型的配方的資料(右)的實際與預測圖。 這是一個無法概括的「過度擬合」模型的範例。
我們如何避免建立在訓練資料上看起來不錯的模型,卻發現在對未見過的資料進行測試時它們無法泛化? 我們如何確保我們的模型不會不必要地複雜?
您可能想到的一個想法是在建置過程的每個步驟中根據看不見的資料驗證模型。 我們可以在決策樹中的每次分割後停下來檢查未用於訓練模型的 4,458 個配方的實際與預測(以及 R 方)。 我們可以選擇最佳模型作為最適合未見過的資料的模型。 我們也會知道我們可以期望它的表現如何。
當然,這是在人為的情況下。 如果我們擁有所有可能食譜的數據,我們就不會保留大部分數據來驗證模型。 我們可以使用相同的想法,但僅利用 150 個食譜的數據嗎?
介紹...製作驗證列
是的,有一個工具可以做到這一點。 JMP Pro 中的「建立驗證列」將標記資料表中要保留的部分行,並在模型建置流程的每個步驟中用作驗證。 我們將在後面的文章中探討各種有用的選項,但對於這個範例,我們將保持簡單並堅持預設值。
The Make Validation Column tool in JMP Pro (Analyze > Predictive Modeling). In this example, we stick with the defaults to make a Random Validation Column and click OK.JMP Pro 中的「建立驗證列」工具(分析 > 預測建模)。 在此範例中,我們堅持使用預設值來建立隨機驗證列,然後按一下「確定」。
我們將採用建議的 0.75/0.25訓練/驗證分開,這意味著 150 行資料中的 37 行將被保留進行驗證。
The default 0.75/0.25 training/validation split in Make Validation Column. Enter “1234” as the Random Seed if you want to follow along in JMP Pro and get the same results.Make Validation Column 中預設的 0.75/0.25 訓練/驗證分割。 如果您想在 JMP Pro 中進行操作並獲得相同的結果,請輸入「1234」作為隨機種子。
現在,我們的資料表中有一個驗證列,它標記了 37 行用於驗證,其他行用於訓練:
Validation column in our data table that marks 37 of the rows for validation and the others for training資料表中的驗證列標記了 37 行用於驗證,其他行用於訓練
現在,讓我們重複我們在第 2 篇文章中建立的分區模型,但進行了驗證。 這裡的關鍵步驟是在啟動分割區時在驗證角色中新增驗證列。
Partition model with validation帶有驗證的分區模型
第一次分割與我們未經驗證的模型相同。 但現在我們可以看到訓練資料和驗證資料的 R 方。 驗證資料的適配度不如訓練資料的適配度好(R 方 = 0.133 與 0.224)。

我們可以點擊 Go,演算法將探索多個分割,然後修剪回具有最大驗證 R 方的樹,也就是最能預測我們保留的資料的模型。 在這種情況下,驗證 R 方(紅色)在五次分割時達到峰值。 除此之外,模型變得更加複雜,並且更好地擬合訓練數據,但它過度擬合噪聲,而不是找到泛化到未見數據的模式。 我們甚至可以修剪回四個分割,因為驗證 R 方是相同的且模型更簡單。

其他型號呢?
我們可以使用多種其他統計和機器學習模型類型。 抑制驗證的另一個優點是,它使我們能夠快速建立和比較經過驗證的模型,並找出表現最好的模型。 JMP Pro 中的模型篩選平台讓這一切變得非常簡單。 在這種情況下,我們發現提升樹模型具有最高的驗證 R 方:
Model Screening report showing the Boosted Tree has a slightly better Validation RSquare than the Decision Tree and the other statistical and machine learning methods.模型篩選報告顯示,提升樹的驗證 R 方比決策樹和其他統計和機器學習方法稍好。
現在,當我們查看此 Booted Tree 模型的表現時,我們發現未用於訓練或驗證模型的 4,458 個配方的預測與實際產量之間有更好的一致性:

在後面的文章中,我們將探討不同的案例以及更仔細地使用驗證的選項,確保我們利用對資料生成方式的理解。 但在這裡您已經看到,探索多種不同的建模方法、找到您可以信任的模型以及透過 JMP Pro 中的驗證充滿信心地應用分析是多麼容易。
[1] 數據來自佩雷拉 D、塔克 JW、布拉姆哈特 S、希拉爾 CJ、衝 A、法雷爾 W、理查森 P、薩赫 NW。 用於自動化納摩爾級反應篩選和微摩爾級流動合成的平台。 科學。 2018 年 1 月 26 日;359(6374):429-434。 doi:10.1126/science.aap9112。 電話號碼:29371464。採樣資料集和完整資料集作為 JMP 資料表附加。
很好的解釋菲爾! 我剛剛作為 Arla Foods 的第一人獲得從 8 月開始訪問 PRO 版本的權限:D
真的很期待開始驗證我建造的模型。
我有兩個與您的貼文相關的後續問題:假設我已經使用應用程式建立了自訂 DoE 設計。 20-30 次運行。
模型的訓練、驗證和測試是否仍然有效,或者您需要運行 100 多次才能真正從中獲得任何結果?
如果您隨後開始在新的水平上增強相同的設計(測試相同的因素)? JMP 是否會再次將這些運行分配為訓練和驗證?
謝謝。
此致
克里斯蒂安貝特爾森