使用 Bagging 建立強大的 AI 模型:技術、優勢和應用

已發表: 2025-01-09

Bagging 是一種整合式機器學習 (ML) 技術,可提高預測模型的一致性。本指南描述了 bagging 的工作原理,討論了它的優點、挑戰和應用,並將其與 boosting 等相關技術進行了比較。

目錄

  • 什麼是套袋?
  • 方差與偏差
  • Bagging 與 boosting
  • 套袋的工作原理
  • bagging 演算法的類型
  • 裝袋的應用
  • 裝袋的優點
  • 裝袋的挑戰和局限性

什麼是套袋?

Bagging(或更正式地說,bootstrapagg regating)是一種整合學習技術,它透過使用多個相似的 ML 模型來提高輸出準確性。其核心是,整合學習結合了多個模型,以實現比任何單一模型更好的性能。

此方法涉及將訓練資料分成隨機子集,並在每個子集上訓練不同的模型。對於新輸入,所有模型的預測都會被匯總以產生最終輸出。透過利用隨機子集,該技術減少了模型之間的差異,從而產生更一致的預測。

Bagging 在透過最小化機器學習系統的變異數來提高一致性方面特別有效。

使用 Grammarly 更聰明地工作
任何有工作要做的人的人工智慧寫作夥伴

方差與偏差

減少偏差和變異數是任何機器學習模型或系統的基本目標。

偏差描述了機器學習系統由於對其所看到的數據的假設而犯下的錯誤。它通常是透過計算模型的平均錯誤程度來確定的。方差衡量模型的一致性。它是透過檢查相似輸入的模型輸出的差異來估計的。

高偏差

舉個例子,讓我們考慮一下根據房屋特徵(例如平方英尺和臥室數量)預測房屋售價的問題。一個簡單的模型可能會做出很多簡化的假設,並且只考慮平方英尺,導致它具有很高的偏差。即使在訓練資料上,它也會一直出錯,因為現實比它的假設更複雜。因此它無法識別真實的價格預測因素(例如位置、學校品質和臥室數量)。

高方差

更複雜的模型可能會捕捉到訓練資料中的每個趨勢並具有較高的變異數。例如,該模型可能會在訓練資料中找到門牌號碼(本質上是街道地址的數字部分)和價格之間的微小相關性並使用它,即使它不是實際的預測變數。它在訓練資料上表現良好,但在現實資料上表現不佳。

方差-偏差權衡

理想的模型應具有低偏差和低方差,能夠在相似的輸入中一致地產生正確的輸出。高偏差通常是由於模型太簡單而無法捕捉訓練資料中的模式(欠擬合)造成的。高方差通常是由於模型捕捉訓練資料中的虛假模式(過度擬合)造成的。

提高模型的複雜性可以使其捕捉更多模式,從而降低偏差。然而,這種更複雜的模型往往會過度擬合訓練數據,導致更高的方差,反之亦然。在實踐中,很難實現偏差與變異數的平衡。

Bagging 的重點是減少變異數。整合中的每個模型可能具有高方差,因為它過度擬合其資料集。但由於每個模型都有一個隨機資料集,因此他們會發現不同的虛假模式。在房價範例中,一種模型可能會高估偶數房屋的價值,另一種模型可能會低估房屋的價值,而大多數模型可能會完全忽略房屋號碼。

當我們對它們的預測進行平均時,這些任意模式往往會平均,從而為我們留下真正的潛在關係。因此,與任何單獨的模型相比,此整合實現了較低的變異數並減少了過度擬合。

Bagging 與 boosting

您可能會聽到在與 boosting 相同的上下文中談論 bagging。這些是最常見的整合學習技術,也是許多流行的 ML 模型的基礎。 Boosting 是一種根據先前模型的錯誤來訓練模型的技術。然後這組模型用於響應任何輸入。讓我們進一步討論這兩種技術之間的差異。

套袋提升
模型訓練模型在不同的資料子集上並行訓練模型按順序進行訓練,每個模型都專注於前一個模型的錯誤
減少錯誤焦點減少方差減少偏差
常用演算法隨機森林、袋裝決策樹AdaBoost、坡度提升、XGBoost
過擬合風險由於隨機抽樣,降低了過度擬合的風險過度擬合的風險較高
計算複雜度降低更高

這兩種技術都很常見,但 boosting 更受歡迎。 Boosting 可以減少偏差方差,而 bagging 通常只影響方差。

套袋的工作原理

讓我們考慮一下 bagging 的實際工作原理。其要點是隨機分割訓練數據,在分割資料上並行訓練模型,並使用所有模型來響應輸入。我們將依序解決每個問題。

資料分割

假設我們有一個包含n 個資料點的訓練資料集,並且想要製作一個包含m 個模型的 bagged ensemble。然後,我們需要建立m 個資料集(每個模型一個),每個資料集有n 個點。如果每個資料集中的點多於或少於n個,則某些模型將訓練過度或訓練不足。

為了創建一個新的隨機資料集,我們從原始訓練資料集中隨機選擇n 個點。重要的是,我們在每次選擇後將點返回到原始資料集。因此,新的隨機資料集將具有多個原始資料點的副本,而其他資料點的副本為零。平均而言,該資料集將包含 63% 的唯一資料點和 37% 的重複資料點。

然後我們重複這個過程來創建所有m 個資料集。資料點表示的變化有助於在整合模型之間創建多樣性,這是減少整體變異數的關鍵之一。

模型訓練

使用m 個隨機資料集,我們只需訓練m 個模型,每個資料集一個模型。我們應該自始至終使用相同類型的模型,以確保類似的偏差。我們可以並行訓練模型,從而實現更快的迭代。

聚合模型

現在我們已經有了m 個經過訓練的模型,我們可以將它們用作一個整體來回應任何輸入。每個輸入資料點都並行饋送到每個模型,每個模型都以其輸出做出回應。然後我們匯總模型的輸出以得出最終答案。如果是分類問題,我們採用輸出的眾數(最常見的輸出)。如果是迴歸問題,我們取輸出的平均值。

這裡減少變異數的關鍵是,由於訓練資料的差異,每個模型在某些輸入上表現較好,而在其他輸入上表現較差。然而,整體而言,任何一種模型的誤差都應該被其他模型抵消,導致變異數降低。

裝袋演算法的類型

Bagging 作為一種演算法可以應用於任何類型的模型。在實踐中,有兩種​​非常常見的 bagged 模型:隨機森林和 bagged 決策樹。讓我們簡單探討一下兩者。

隨機森林

隨機森林是決策樹的集合,每個決策樹都在隨機資料集上進行訓練。決策樹是一種模型,它透過回答有關輸入資料的是/否問題來進行預測,直到找到合適的標籤為止。

在隨機森林中,每個決策樹具有相同的超參數 - 預設配置,例如樹的最大深度或每次分割的最小樣本 - 但它使用來自訓練資料集的不同(隨機選擇)特徵。如果沒有特徵隨機化,儘管訓練資料存在差異,但每個決策樹可能會收斂到相似的答案。隨機森林是 ML 非常受歡迎的選擇,通常是解決 ML 任務的良好起點。

袋裝決策樹

袋裝決策樹與隨機森林非常相似,只是每棵樹都使用訓練資料集中的相同特徵。這減少了樹輸出的多樣性,這有利有弊。從好的方面來說,樹木更加穩定,可能會給出類似的答案;這可以用來確定哪些特徵是重要的。缺點是方差不會減少那麼多。因此,隨機森林的使用遠多於袋裝決策樹。

裝袋的應用

Bagging 可用於方差高於預期的任何 ML 問題。只要有ML模型,就可以裝袋。為了使這一點更加具體,我們將回顧幾個範例。

分類和回歸

分類和迴歸是機器學習的兩個核心問題。使用者可能想要將圖像的主題標記為貓或狗——分類。或者使用者可能想根據房屋的特徵(回歸)來預測房屋的售價。正如我們所看到的,裝袋可以幫助減少這兩者的變異數。

在分類中,使用集成模型的模式。在迴歸中,使用平均值。

特徵選擇

特徵選擇是指尋找資料集中最重要的特徵-最能預測正確輸出的特徵。透過刪除不相關的特徵數據,模型開發人員可以降低過度擬合的可能性。

了解最重要的特徵還可以使模型更易於解釋。此外,模型開發人員可以利用這些知識來減少訓練資料中的特徵數量,從而加快訓練速度。袋裝決策樹可以很好地發現重要特徵。其中權重較大的功能可能是重要的功能。

電商裝袋

電子商務中的裝袋對於預測客戶流失特別有價值。由於複雜、吵雜的客戶行為模式,基於流失資料訓練的 ML 模型通常具有很高的變異數;他們可能會過度擬合他們的訓練資料集。他們也可能推斷出虛假的關係,例如假設客戶姓名中的元音數量會影響他們流失的可能性。

訓練資料集可能只包含導致這種過度擬合的幾個範例。使用袋裝模型,整合可以更好地識別真實的流失指標,同時忽略虛假的相關性,從而實現更可靠的流失預測。

裝袋的優點

Bagging 可以減少模型變異數和過度擬合,並有助於解決資料問題。它也是最可並行化和最高效的裝袋技術之一。

減少方差

模型變異數顯示模型沒有學習資料中真實、有意義的模式。相反,它會發現隨機相關性,這些相關性意義不大,而且是訓練資料不完美的症狀。

Bagging 減少了模型的變異數;整體上,整體關注輸入和輸出之間有意義的關係。

很好地推廣到新數據

由於袋裝模型更有可能發現有意義的關係,因此它們可以泛化到新的或未見過的數據。良好的泛化是機器學習的最終目標,因此裝袋對於許多模型來說通常是一種有用的技術。

在幾乎每個機器學習問題中,訓練資料集並不能完全代表實際數據,因此良好的泛化是關鍵。在其他情況下,真實的資料分佈可能會隨著時間的推移而改變,因此需要一個適應性強的模型。裝袋對這兩種情況都有幫助。

高度並行化

與 boosting 相比,創建 bagged 模型是高度可並行的。每個模型都可以獨立且同時進行訓練,從而可以進行快速實驗和更輕鬆的超參數調整(當然,前提是您有足夠的運算資源來並行訓練)。

此外,由於每個模型都獨立於其他模型,因此可以換入或換出。例如,可以在不同的隨機子集上重新訓練弱模型,以提高其效能,而無需觸及其他模型。

裝袋的挑戰和局限性

不幸的是,添加更多模型會增加更多複雜性。額外複雜性的挑戰意味著袋裝模型需要更多的運算資源,更難以解釋和理解,並且需要更多的超參數調整。

需要更多的運算資源

更多模型需要更多資源來運行,通常,bagged ensembles 有 50 多個模型。這對於較小的模型可能很有效,但對於較大的模型,它可能會變得棘手。

隨著整體的成長,其反應時間也會受到影響。這些資源也有機會成本:它們可能更適合用來訓練更大、更好的模型。

更難解釋

機器學習模型作為一個整體,很難解釋。單一決策樹要容易一些,因為它們顯示了決策所基於的特徵。但是,當您將一堆樹組合在一起時,就像在隨機森林中一樣,每棵樹的相互矛盾的答案可能會令人困惑。

採用預測的眾數或平均值本身並不能解釋為什麼這是正確的預測。群眾的智慧雖然常常是正確的,但卻很難理解。

更多超參數調整

隨著模型的增加,超參數的影響會被放大。超參數中的一個微小錯誤現在可能會影響數十或數百個模型。調整同一組超參數需要更多時間,這可能會對有限的資源造成更大的負擔。