支援向量機的 SVEM 添加我有 DOE 結果,想使用支援向量機進行建模(存在無法使用多項式模型估計的強烈非線性效應) 如何安裝 SVEM 插件?
進階統計建模實驗設計預測建模和機器學習回覆:SVEM 新增支援向量機是的,增強樹可能比「設計上」的隨機森林更精確,因為它們透過順序樹訓練進行迭代預測誤差校正。但是,在順序樹學習期間為提高效能而進行的複雜分割可能僅在訓練集上有效,並且可能無法反映新資料點上可能發生的情況。
隨機森林是一種關於超參數的穩健演算法,因此將樹的數量增加到一定值以上可能不會改變效能評估,請參閱我在LinkedIn上的貼文和/或文章「可調整性:機器學習演算法超參數的重要性」: 1802.09596 (arxiv.org)
回覆:SVEM 新增支援向量機使用提升樹 R² = 0,85
回覆:SVEM 新增支援向量機透過隨機森林,即使有 2000 棵樹,我也得到可憐的 R² = 0,63
回覆:SVEM 新增支援向量機我不完全同意,基於樹的模型之間還有更多細微差別:
- Boosted Tree 方法(如 XGBoost 等)使用順序訓練的樹來逐步完善和修正預測。它們更受到訓練集特徵、大小、資料品質、資料點的重新分配、代表性等的影響,因為它們迭代地嘗試獲得最佳預測(每棵樹「修正」前一棵樹的最大預測誤差)他們接受訓練的資料集。
它通常是一種被描述為低偏差 - 高方差的演算法:預測可以非常精確,但非常敏感/受所使用的訓練資料集的影響。
- 隨機森林使用在略有不同的資料集(引導集)上並行訓練的樹。此演算法良好的預測性能來自於對各個樹預測的平均。你可以把它想像成「群體的智慧」:如果你向某人詢問一頭鯨魚的重量,可能會非常不準確且不精確,但如果收集數百或數千人的答案並對結果進行平均,平均結果可能非常接近實際值。
它通常是一種被描述為中/低偏差- 低方差的演算法:預測可能是精確的(取決於單一結果的平均值和單一樹的複雜性/數量),並且由於引導,它們對訓練資料集非常穩健過程和樹木的個別訓練(具有不同的特徵)。
這是不同基於樹的模型之間的簡短視覺效果(我不喜歡隨機森林中的各個樹具有相同的結構,但這是一個簡單的模式):

為了回答你的問題,我會在像DoE 這樣的小數據集上嘗試使用提升樹上的隨機森林方法,以便對結果更有信心,使用不太容易過度擬合的演算法,並具有更好的泛化屬性。
回覆:SVEM 新增支援向量機猜測基於樹的模型(例如隨機森林和 XGboost)需要大型資料集,除非您可以將 SVEM 用於小型資料集,對嗎?
回覆:SVEM 新增支援向量機嗨@frankderuyck ,
很高興知道!:)
我使用神經網路作為最後一個可能的建模選項,有許多經典模型和更簡單的 ML 演算法表現同樣好(有時甚至更好)。這些其他選項的運算速度也更快,不需要擴展知識、測試和驗證來對其進行微調(與神經網路不同,您必須指定架構、層數、函數類型、是否增強,...或使用神經網路調整插件)並且更容易解釋(就回應概況和相關因素重要性而言)。
在表格資料上,如果唯一能夠表現良好的模型是神經網絡,那麼您很可能會在資料品質、代表性、缺失值/離群值、重複性/再現性等方面遇到其他問題.... ..
基於樹的模型提供了良好的性能基準,並且通常是安全可靠的選擇,請參閱文章“為什麼基於樹的模型在表格數據上仍然優於深度學習?” (2022) https://arxiv.org/abs/2207.08815
在您的螢幕截圖中,透過調優設計找到的最佳 SVM 模型似乎非常有趣:
- 它使用 10 個支援向量,因此不到一半的點用於建立 SVM 模型中使用的「邊界」/向量,這可能是低複雜性和良好泛化屬性的好標誌,
- 曲率值(gamma)非常低,因此響應輪廓和邊界可能不會過於複雜和高度彎曲(因此,複雜性低且泛化性能良好),
- 懲罰(成本值)似乎相當高,但對於小規模資料集,實踐中經常出現這種情況,因為任何錯誤分類/錯誤預測的點都會大大增加錯誤分類率/RMSE:25 個錯誤分類點中有1個= 4% 錯誤分類率,與較大的資料集大小相比,其中一個錯誤分類點的錯誤分類率低於 1%。在某些情況下,選擇誤差(RMSE/錯誤分類率)稍大但支援向量少得多的模型可能會很有趣:您會降低訓練集上的預測效能,轉而選擇複雜度較低的模型,該模型可以能夠更好地概括新數據。
您可以使用調優設計產生的表格和效能指標,更好地評估兩個超參數對效能指標的相對重要性和貢獻(分類的誤分類率,或迴歸的 RASE 和 R²)。
與往常一樣,建議使用新的驗證點驗證您的模型,以確保您的模型不會過度擬合。
回覆:SVEM 新增支援向量機你好,Victor,這個調諧設計效果很好,我想將質量響應 Y 建模為來自近紅外光譜 (FDA) 的三個 Y FPCA 的函數。我嘗試過神經網絡,但即使有 3 個 TanH 節點,分析器在我看來也顯示過高且不規則的曲率。調優後的 SVE 做得很好,我支持向量機學習!


回覆:SVEM 新增支援向量機嗨@frankderuyck ,
在回答您的問題之前先回答一些問題:
- 為什麼要使用 SVEM 來實作 SVM?支援向量機是一種強大的機器學習演算法,可用於 DoE 等小型資料集。有關演算法穩健性的更多信息,請訪問LinkedIn。
如果您使用調優設計對SVM 超參數進行了微調,則還有許多方法可以在不使用驗證集的情況下透過檢查支援向量的數量以及懲罰(成本)和曲率(伽瑪)的值來評估SVM的過度擬合。
- 您還考慮過其他演算法嗎? SVM 是一種用於分析小規模資料集的穩健演算法,但隨機森林也可以提供良好的結果,並且可能是評估和比較效能的良好基準。 LinkedIn 上有關隨機森林的更多資訊。
- 您的因素有幾個等級?只有當每個因素都有足夠的層級以實現平滑插值時,ML 演算法才有用。超過 3 個級別可能是一個很好的起點。
關於SVEM的使用,您可以透過不同的方式存取它:
然而,我想強調的是,交叉驗證(K-folds 或SVEM)並不是一種正確的驗證方法,而更像是一種「調試」方法,用於評估演算法在各種訓練和驗證集上的性能的穩健性。使用交叉驗證技術後的主要困難是如何理解結果以及下一步如何進行:
平均在不同折疊上訓練的各個模型?用這些模型創造一個整體?保持最好的模型在折疊上訓練(我不推薦這個選項)?透過交叉驗證檢查穩健性後,在整個資料集上訓練模型? ……這個問題沒有明確的答案,這與資料集、建模複雜性、效能改進、使用者實踐等有關...
有關交叉驗證主題的更多信息,請參見 Cassie Kozyrkov 的一些劇集: https://youtu.be/zqD0lQy_w40 ?si=41jfBs83Q0TIlusr
https://youtu.be/by59hsYO0Lg?si=XeZ33j2e4jKQPaRA
希望這個回答對你有幫助
回覆:SVEM 新增支援向量機你好 Victor,有一些延遲...為什麼你會選擇隨機森林而不是 SVEM 來建模 DOE 資料?
回覆:SVEM 新增支援向量機嗨@frankderuyck ,
這是兩個不同的考慮因素:
- SVEM 是一種驗證策略,可應用於從線性回歸到神經網路的任何模型。
- 隨機森林是一種機器學習模型。
兩者都有一個共同的方法來防止建模時過度擬合:
- 隨機森林使用引導樣本和「 袋外」樣本作為「內部」模型驗證。 「袋外」樣本是訓練中未使用的資料的一部分:訓練樣本是在原始資料集中進行放回採樣的引導樣本。理論上,您可以計算出,透過對原始資料進行替換取樣,大約 1/3 的資料將不會被取樣: 機器學習 - 隨機森林袋外樣本大小 - 交叉驗證 (stackexchange.com)
此樣本構成隨機森林訓練中未使用的「袋外」樣本,能夠評估/驗證模型的相關性和精確度。
- SVEM 使用反相關權重進行訓練和驗證,這意味著訓練權重較高的實驗將具有驗證權重較低的實驗。透過使用此驗證來設定擬合模型,然後更改權重並使用新權重重新擬合模型以進行多次訓練和驗證,您可以將稍微不同的模型整合/組合,以減少變異數(並防止過度擬合)。
現在,我個人的看法和選擇:
- 我經常看到的是,人們在 DoE 中使用高度複雜的模型,而沒有進一步考慮或先前的分析/建模。例如,您經常可以看到 SVEM 與神經網路一起應用以獲得相對簡單的設計和結果。對我來說,這聽起來像是「用火箭筒殺死蒼蠅」:在增加複雜性(如果有必要)之前,我傾向於選擇最簡單的選項/模型:奧卡姆剃刀。您還必須考慮因素和其他考慮因素(如維度)的等級有多少,因為機器學習模型是插值模型,在查找點之間的模式方面非常有效。因此,如果您的因素只有 2-3 個級別,則可能不足以使用機器學習真正獲得好處。
- 如果您有足夠的水平,並且由於非線性關係,傳統的線性建模似乎不合適,那麼您可能有興趣嘗試機器學習模型。
- 由於您的DoE 有一個小規模但高品質的訓練資料集,因此您必須選擇一個簡單(沒有或很少且容易進行超參數微調)、穩健(對超參數值設定不太敏感)和更少的ML 模型。這就是隨機森林(及其內部「袋外」樣本驗證)和 SVM(您可以透過超參數選擇和支援向量數量來評估過度擬合的可能性)的有趣之處。
此外,使用穩健的 ML 演算法而不是採用 SVEM 策略的複雜演算法還有其他好處,例如計算時間更短、可解釋性更容易。
希望這個答案對您有所幫助並且對您有意義,
回覆:SVEM 插件支援向量機器嗨,Victor,我嘗試用這個方法處理混合模型的結果,得到了一個不錯的模型,但是用分析器進行優化卻失敗了,因為各成分的平方和不是1,而是接近3。其他機器學習模型,如PLS甚至Gen Reg,也出現了同樣的問題。
回覆:SVEM 插件支援向量機器嗨,弗蘭克,
您是否檢查過混合因子是否具有正確的列屬性?
- 具有低值和高值個體因素的“混合”
- “設計角色”,角色設定為“混合”
- 將“因子變化”設定為“簡單”(如果您採用裂區/限制性隨機化方案,則設定為其他類型)
以下是使用 CuSO4 因子的 Donev 混合物數據的範例:

從高斯過程(或任何其他機器學習模型)啟動 Profiler 時,混合約束將被遵守並強制執行(混合因子總和始終為 1):
希望這個答案能解決你的問題。
回覆:SVEM 插件支援向量機器好的,維克多,謝謝!