在機器學習領域,提升分類別模型的預測準確度一直是重要的研究方向。透過分析訓練資料集的混淆矩陣和錯誤報告,可以瞭解模型在不同類別上的表現,並找出需要改進的地方。整合學習方法,例如 Bagging 和 Boosting,提供了一種有效的方法來結合多個模型的預測結果,從而提升整體預測準確度。這些方法根據「人群智慧」的概念,透過結合多個模型的預測,可以有效降低個別模型的偏差和變異數,提升模型的穩定性和泛化能力。

分類別摘要:訓練資料集

在進行分類別分析時,瞭解實際與預測結果之間的差異至關重要。以下是訓練資料集的分類別摘要:

實際\預測致命無傷害非致命
致命023
無傷害0134155
非致命097209

從上述表格中,我們可以看到每個類別的案例數量、錯誤數量以及錯誤率。例如,對於「致命」類別,共有 5 個案例,都被錯誤地分類別,導致錯誤率達到 100%。

錯誤報告

下面是每個類別的錯誤報告:

類別案例數量錯誤數量錯誤率
致命55100%
無傷害28915553.633%
非致命3069731.699%
整體60025742.833%

混淆矩陣

混淆矩陣是用來評估分類別模型效能的工具。它顯示了實際類別與預測類別之間的關係。

分類別函式

分類別函式是用來計算每個案例的分類別得分。這些得分是根據模型的係數計算出來的。例如,對於第一個事故的無傷害分類別得分,可以使用以下公式計算:

−23.88 + (1.13)(1) + (1.95)(0) +… + (16.35)(1) = 28.58

同樣地,非致命分類別得分也可以使用類別似的公式計算出來。

訓練集結果

最終的訓練集結果可以在圖 12.9 中看到。這個圖顯示了分類別函式的輸出結果,包括每個案例的分類別得分和錯誤報告。

圖表翻譯:

圖 12.9 顯示了訓練集的分類別結果,包括混淆矩陣和錯誤報告。這個圖可以幫助我們瞭解模型的效能和每個類別的錯誤率。透過分析這個圖,我們可以找出模型需要改進的地方,並調整模型的引數以提高其準確度。

瞭解車禍嚴重程度預測模型

車禍嚴重程度預測模型是一種利用資料分析和機器學習技術來預測車禍中人員受傷或死亡的可能性。這種模型可以根據多種因素,包括道路環境、天氣、車輛速度等,來計算車禍的嚴重程度。

預測指標

預測指標是車禍嚴重程度預測模型中的重要組成部分。以下是一些常見的預測指標:

  • MAX_SEV:車禍中最嚴重的傷害程度。
  • Score for fatal:預測車禍中有人死亡的可能性。
  • Score for non-fatal:預測車禍中有人受傷但未死亡的可能性。
  • Score for no-injury:預測車禍中無人受傷的可能性。
  • PostProb:車禍中不同嚴重程度的後驗機率。

影響車禍嚴重程度的因素

多種因素可以影響車禍的嚴重程度,包括:

  • RushHour:是否發生在高峰時段。
  • WRK_ZONE:是否發生在施工區域。
  • WKDY:星期幾。
  • INT_HWY:是否發生在高速公路上。
  • LGTCON_day:白天或夜間。
  • LEVEL:道路等級。
  • SPD_LIM:速度限制。

內容解密:

以上提到的因素都會對車禍的嚴重程度產生影響。例如,高峰時段、施工區域、高速公路等都可能增加車禍的嚴重程度。同時,天氣、道路等級、速度限制等也會對車禍的嚴重程度產生影響。

圖表翻譯:

  graph LR
    A[車禍嚴重程度] -->|預測指標|> B[Score for fatal]
    A -->|預測指標|> C[Score for non-fatal]
    A -->|預測指標|> D[Score for no-injury]
    B -->|PostProb|> E[fatal]
    C -->|PostProb|> F[non-fatal]
    D -->|PostProb|> G[no-injury]
    H[RushHour] -->|影響|> A
    I[WRK_ZONE] -->|影響|> A
    J[WKDY] -->|影響|> A
    K[INT_HWY] -->|影響|> A
    L[LGTCON_day] -->|影響|> A
    M[LEVEL] -->|影響|> A
    N[SPD_LIM] -->|影響|> A

此圖表展示了車禍嚴重程度預測模型中各個因素之間的關係。車禍嚴重程度會受到多種因素的影響,而這些因素又會對預測指標產生影響。最終,預測指標會計算出不同嚴重程度的後驗機率。

道路安全分析

道路安全是一個複雜的議題,涉及多個因素,包括道路設計、交通管理、氣候條件、車輛效能和駕駛員行為等。在這篇文章中,我們將探討道路安全的各個方面,並分析影響道路安全的因素。

道路設計

道路設計是道路安全的重要因素。道路設計不良可能導致事故發生。例如,道路彎道過急、坡度過大、視線不佳等,都可能增加事故的風險。因此,道路設計應該遵循安全標準,確保道路的安全性。

交通管理

交通管理是另一重要因素。交通管理不善可能導致交通堵塞、事故發生等。例如,交通訊號不清晰、交通標誌不明顯等,都可能導致駕駛員困惑,增加事故的風險。因此,交通管理應該合理,確保交通的暢順和安全。

氣候條件

氣候條件也是道路安全的重要因素。惡劣的氣候條件,例如大雨、雪、霧等,可能導致道路濕滑、視線不佳等,增加事故的風險。因此,駕駛員應該根據氣候條件調整駕駛行為,確保安全。

車輛效能

車輛效能也是道路安全的重要因素。車輛效能不佳可能導致事故發生。例如,車輛煞車不佳、轉向不靈活等,都可能增加事故的風險。因此,車輛應該定期維護,確保效能良好。

駕駛員行為

駕駛員行為是道路安全的最重要因素。駕駛員行為不當可能導致事故發生。例如,超速、疲勞駕駛、分心駕駛等,都可能增加事故的風險。因此,駕駛員應該遵守交通規則,注意安全,確保自己的安全和他人的安全。

內容解密:

在上述分析中,我們可以看到道路安全是一個複雜的議題,涉及多個因素。因此,道路安全需要多方面的努力,包括道路設計、交通管理、氣候條件、車輛效能和駕駛員行為等。只有透過這些方面的努力,才能夠確保道路的安全性。

  graph LR
    A[道路設計] --> B[交通管理]
    B --> C[氣候條件]
    C --> D[車輛效能]
    D --> E[駕駛員行為]
    E --> F[道路安全]

圖表翻譯:

上述圖表展示了道路安全的各個方面之間的關係。圖表中,道路設計、交通管理、氣候條件、車輛效能和駕駛員行為都是道路安全的重要因素。這些因素之間存在著密切的關係,只有透過這些方面的努力,才能夠確保道路的安全性。

12.8 分類別方法的優勢和劣勢

分類別分析是一種典型的統計分類別方法,而不是機器學習方法。這也反映在許多機器學習資源中對其的缺席或簡短提及。然而,在社會科學領域中,分類別分析非常受歡迎,並表現出良好的效能。分類別分析的使用和效能與多元線性迴歸非常相似,因此兩種方法分享許多優勢和劣勢。

優勢

  1. 估計單一預測變數的貢獻度:與邏輯迴歸類別似,分類別分析提供了每個預測變數對分類別結果的貢獻度估計。
  2. 尋找最佳權重:分類別分析透過尋找最佳權重來分離類別,與線性迴歸中的最佳權重類別似。
  3. 對區域性最優解的穩健性:分類別分析使用最小二乘法進行估計,得到的估計對區域性最優解具有穩健性。

劣勢

  1. 假設正常性:分類別分析假設預測變數近似於多變數正常分佈。雖然這個假設在許多實際情況下被違反(例如,使用二元預測變數),但方法仍然相當穩健。
  2. 對異常值的敏感性:分類別分析對異常值敏感,因此需要探索資料中的極端值並將其從分析中移除。
  3. 連續變數的偏斜:對於高度偏斜的連續變數,可以透過對數轉換等方法改善效能。

第13章:生成、比較和組合多個模型

在前面的章節中,我們介紹了不同的監督學習方法,用於預測和分類別。在第5章中,我們學習了評估預測效能的方法,可以用於比較多個模型並選擇最好的模型。在本章中,我們將探討監督學習模型的集合。首先,我們將介紹一個稱為ensemble的方法,用於組合多個監督學習模型,從而建立一個「超級模型」。與其選擇單一預測模型,不如組合多個模型來提高預測準確率。然後,我們將介紹自動化機器學習(AutoML)的概念,允許我們自動訓練多個監督學習模型,並檢視其效能。

組合模型

組合多個模型的想法是根據以下邏輯:多個模型可以互相補充,從而提高整體預測準確率。有多種方法可以組合模型,包括簡單平均、bagging和boosting。

簡單平均

簡單平均是最基本的組合方法,即計算多個模型的預測結果的平均值。這種方法假設所有模型都具有相同的重要性和準確率。

Bagging

Bagging(Bootstrap Aggregating)是一種組合方法,透過對原始資料進行bootstrap抽樣,生成多個子資料集,然後使用每個子資料集訓練一個模型。最終,對所有模型的預測結果進行平均。

Boosting

Boosting是一種組合方法,透過迭代地訓練多個模型,每個模型都關注前一個模型的錯誤。這種方法可以有效地提高預測準確率。

自動化機器學習(AutoML)

自動化機器學習(AutoML)是一種自動化的機器學習流程,允許我們自動訓練多個監督學習模型,並檢視其效能。AutoML可以自動完成資料載入、資料預處理、模型選擇、引數調整等任務。

Find Best Model

Find Best Model是一種AutoML工具,允許我們自動訓練多個監督學習模型,並檢視其效能。該工具可以自動完成模型選擇、引數調整等任務,並生成一個排名列表,顯示每個模型的效能。

13.1 整合方法

在2006年開始的Netflix Prize競賽中,整合方法發揮了重要作用。當時,Netflix想要改善他們的電影推薦系統。為了達到這個目標,公司決定分享大量的電影評分資料,並設立了一個公開的競賽,以提高他們的推薦系統。

在競賽期間,各個團隊開始合作,結合他們的預測結果,形成整合預測。這些整合預測被證明比個別預測更準確。最終,勝出的團隊「BellKor’s Pragmatic Chaos」結合了多個團隊的結果,包括「BellKor」和「Big Chaos」團隊的成員。

在2010年的一篇文章中,Netflix Prize的勝者描述了他們的整合方法的力量:

早期的經驗教會我們,結合多個模型或演算法的預測結果是非常有價值的。如果兩個預測結果具有相似的RMSE(均方根誤差),那麼簡單地平均這兩個結果比嘗試開發一個新的模型來結合每種方法的最佳部分更快、更有效。即使其中一個預測結果的RMSE遠遠超過另一個,仍然幾乎可以肯定地找到一個線性組合來改善更好的結果。

整合方法為什麼能夠提高預測能力

整合方法的原理在於減少風險。例如,在金融領域,投資者會建立投資組合來降低風險。投資組合的回報通常比個別投資更穩定,因為其變化小於個別投資。

人群的智慧

在他的書《人群的智慧》中,James Surowiecki講述了一個故事:19世紀著名統計學家Francis Galton觀察了一個英國郡集市上的競賽。競賽的目的是猜測一頭公牛的重量。個別參賽者的估計高度可變,但所有估計的平均值卻驚人的準確——與公牛的真實重量相差不到1%。平均而言,多個猜測的錯誤傾向於相互抵消。你可以把預測模型的輸出看作是一種更為知情的猜測。平均多個猜測將會得出比絕大多數個別猜測更精確的答案。

在預測模型中,「風險」等同於預測誤差的變化。預測誤差越變化越大,預測模型就越不穩定。假設有兩個不同的模型對一組n條記錄進行預測,e1,i代表第一個模型對第i條記錄的預測誤差,e2,i代表第二個模型對同一條記錄的預測誤差。假設每個模型產生的預測誤差平均為零(對於一些記錄,模型過度預測,而對於其他記錄,模型不足預測,但平均而言,誤差為零),那麼:

E(e1,i) = E(e2,i) = 0

內容解密:

上述內容介紹了整合方法在預測模型中的應用,包括Netflix Prize競賽中的成功案例,以及人群智慧的概念。透過平均多個模型的預測結果,可以減少風險,提高預測能力。這些概念在金融領域和預測模型中都有重要的應用。

圖表翻譯:

  graph LR
    A[整合方法] --> B[減少風險]
    B --> C[提高預測能力]
    C --> D[Netflix Prize競賽]
    D --> E[人群智慧]
    E --> F[平均多個模型]
    F --> G[減少預測誤差]

圖表說明:

上述Mermaid圖表展示了整合方法、減少風險、提高預測能力之間的關係,以及Netflix Prize競賽和人群智慧的概念。圖表從左到右展示了這些概念之間的邏輯關係。

合成預測的變異分析

當我們將兩個模型的預測結果進行合成時,我們取每個記錄的兩個預測結果的平均值:$y_i = \frac{\hat{y}{1,i} + \hat{y}{2,i}}{2}$。這樣做後,預期的均方錯誤也會是零:

$$E(y_i - \hat{y}i) = E\left(y_i - \frac{\hat{y}{1,i} + \hat{y}_{2,i}}{2}\right)$$

$$= E\left(\frac{y_i - \hat{y}{1,i}}{2} + \frac{y_i - \hat{y}{2,i}}{2}\right)$$

$$= \frac{1}{2}E(y_i - \hat{y}{1,i}) + \frac{1}{2}E(y_i - \hat{y}{2,i})$$

$$= \frac{1}{2}E(e_{1,i}) + \frac{1}{2}E(e_{2,i})$$

$$= 0$$

這意味著合成模型的均方錯誤與個別模型相同。現在,我們來分析合成模型預測錯誤的變異數:

$$Var\left(\frac{e_{1,i} + e_{2,i}}{2}\right) = \frac{1}{4}(Var(e_{1,i}) + Var(e_{2,i}) + 2Cov(e_{1,i}, e_{2,i}))$$

圖表翻譯:

  graph LR
    A[個別模型錯誤] -->|平均|> B[合成模型錯誤]
    B -->|變異數分析|> C[變異數計算]
    C -->|結果|> D[合成模型變異數]

在這個圖表中,我們展示了個別模型的錯誤如何被合成,然後對合成模型的錯誤進行變異數分析。這個過程可以幫助我們瞭解合成模型的效能如何受到個別模型的影響。

內容解密:

在上面的變異數計算中,我們看到合成模型的變異數不僅取決於個別模型的變異數,也取決於個別模型之間的協方差(Covariance)。如果個別模型之間的協方差為負,則合成模型的變異數會減小;反之,如果協方差為正,則合成模型的變異數會增加。這意味著,選擇適當的個別模型以組成合成模型是非常重要的,因為它直接影響了合成模型的效能。

結合多個模型的預測能力

當我們有多個模型可供選擇時,如何結合這些模型的預測結果以獲得更好的預測能力?一個簡單的方法是計算每個模型預測結果的平均值。假設我們有兩個模型,分別為 $e_{1,i}$ 和 $e_{2,i}$,其預測結果的平均值可以表示為:

$$\frac{e_{1,i} + e_{2,i}}{2}$$

這個平均值的變異數可以表示為:

$$Var\left(\frac{e_{1,i} + e_{2,i}}{2}\right) = \frac{1}{4} \left( Var(e_{1,i}) + Var(e_{2,i}) + 2Cov(e_{1,i}, e_{2,i}) \right)$$

其中,$Cov(e_{1,i}, e_{2,i})$ 是兩個模型預測結果之間的協方差。如果兩個模型之間沒有相關性,則協方差為 0,平均值的變異數將小於每個個別模型的變異數。如果兩個模型之間有負相關性,則平均值的變異數將更小。

結合多個模型的方法

結合多個模型的方法不僅限於兩個模型,也可以擴充套件到多個模型。例如,我們可以使用三個不同的模型,分別為線性迴歸模型、迴歸樹和 k-NN 演算法。每個模型都會對測試集進行評分,然後我們可以結合這三個模型的結果。

三個模型也可以是使用相同演算法但具有不同預測變數的變體。例如,我們可以有三個線性迴歸模型,每個模型使用不同的預測變數集。

結合多個模型的優點

結合多個模型的優點在於可以提高預測能力和降低錯誤率。透過結合多個模型的預測結果,可以減少每個個別模型的變異數和偏差,從而獲得更好的預測結果。

結合多個模型的方法種類別

結合多個模型的方法有很多種,包括簡單平均、投票法、堆積疊法等。簡單平均法是最基本的結合方法,即計算每個模型預測結果的平均值。投票法是根據每個模型的預測結果進行投票,選出最多票數的類別或預測結果。堆積疊法是使用一個元模型來結合多個基礎模型的預測結果。

結合多個模型的實際應用

結合多個模型的方法在實際應用中被廣泛使用。例如,在信用風險評估中,可以使用多個模型來評估客戶的信用風險,然後結合這些模型的預測結果以獲得更準確的評估結果。在醫學診斷中,可以使用多個模型來診斷疾病,然後結合這些模型的預測結果以獲得更準確的診斷結果。

圖表翻譯:

  graph LR
    A[多個模型] --> B[簡單平均]
    B --> C[投票法]
    C --> D[堆積疊法]
    D --> E[結合預測結果]
    E --> F[提高預測能力]
    F --> G[降低錯誤率]

內容解密:

上述圖表展示了結合多個模型的方法種類別和優點。簡單平均法是最基本的結合方法,投票法是根據每個模型的預測結果進行投票,堆積疊法是使用一個元模型來結合多個基礎模型的預測結果。透過結合多個模型的預測結果,可以提高預測能力和降低錯誤率。

結合預測

在預測任務中,結果變數是數值的,我們可以簡單地結合不同方法的預測結果。例如,在上面的例子中,每個測試集記錄都有三個預測值(每個模型一個)。則集合預測是這三個值的平均值。

除了簡單平均外,另一個替代方案是取中位數預測,這樣可以減少極端值的影響。另外,還可以計算加權平均,其中權重與模型的準確度或資料品質成比例。例如,權重可以與模型的準確度成比例,或者如果使用不同的資料來源,權重可以與資料品質成比例。

預測集合不僅在跨截面預測中有用,也在時間序列預測中有用(見第17-19章)。在預測中,從多個方法結合未來預測可以導致更精確的預測。一個例子是天氣預報應用程式,它們將多個模型的預測結果結合起來,提供給定位置最準確的預報。

結合分類別

在分類別的情況下,結合多個分類別器的結果可以使用「投票」:對於每個記錄,我們有多個分類別。一個簡單的規則是選擇最受歡迎的類別。例如,我們可能使用分類別樹、樸素貝葉斯分類別器和判別分析來分類別二元結果。對於每個記錄,我們生成三個預測類別。簡單投票將選擇最常見的類別。

與預測一樣,我們可以根據模型的準確度或資料品質為某些模型的評分賦予更大的權重。這可以透過「多數決」規則實作,該規則不同於50%。

結合傾向

與預測類別似,傾向可以透過平均(或加權平均)結合。回想一下,一些演算法(如樸素貝葉斯(見第8章))產生偏差的傾向,因此不應該簡單地與其他方法的傾向平均。

Bagging

另一種集合方法是根據對多個隨機資料樣本的平均。Bagging(引導聚合)包括兩個步驟:

  1. 生成多個隨機樣本(透過引導抽樣)。
  2. 對每個樣本執行演算法並生成評分。

Bagging 改善了模型的效能穩定性,並透過引導抽樣幫助避免過度擬合。因此,它對於樹和神經網路等演算法特別有用。

Boosting

Boosting 是建立集合的一種稍微不同的方法,它順序地構建更好的模型。這裡的目標是直接改善模型錯誤的領域,透過引導抽樣。Boosting 的步驟是:

  1. 將模型適應於資料。
  2. 從資料中抽取樣本,使錯分類別的記錄(或具有大預測錯誤的記錄)具有更高的選擇機率。
  3. 將模型適應於新的樣本。
  4. 多次重複步驟 2-3。

Bagging 和 Boosting 在 ASDM 中

Bagging 和 Boosting 可以應用於任何監督式機器學習方法。ASDM 的集合 - Bagging 和集合 - Boosting 選單提供根據樹、線性和邏輯迴歸、k-NN、樸素貝葉斯、判別分析和神經網路的集合。使用者選擇演算法(稱為「弱學習器」)和隨機樣本的數量(用於 Bagging)或重複次數(用於 Boosting)(見圖 13.1)。

整合學習的優勢與挑戰

在實際應用中,整合學習(Ensemble Learning)已經證明瞭其強大的預測能力,特別是在樹型模型中,Bagging和Boosting等方法已經被廣泛使用。在第9章中,我們介紹了隨機森林(Random Forests),它是一種根據Bagging的整合方法,還有Boosted Trees,它是一種根據Boosting的整合方法,模型會關注錯誤分類別的記錄。在自動化機器學習(ASDM)中,既可以使用Ensemble—Bagging和Ensemble—Random Forest來生成Bagged Trees,也可以使用Ensemble—Boosting來生成Boosted Trees。

整合方法的比較

圖13.2比較了單棵樹和三種樹型整合方法(Bagged Trees、Random Forest和Boosted Trees)在個人貸款驗證資料集上的ROC曲線。結果顯示,在這些資料中,Bagged Trees和Boosted Trees在ROC曲線的某些部分略微優於單棵樹。

整合的優勢和劣勢

結合多個模型的預測結果是為了生成更精確的預測(降低預測誤差變異)。整合方法最有用的是當結合的模型生成的預測誤差之間存在負相關,但即使相關性低,整合方法也可以很有用。整合可以使用簡單平均、加權平均、投票、中位數等方法。模型可以使用不同的方法來結合預測結果,以提高整體的預測效能。

內容解密:

在上述過程中,我們使用了整合學習的概念來提高預測的準確性。首先,我們選擇了一個基礎模型(弱學習器),然後我們決定了要使用多少個這樣的模型。接下來,我們使用Bagging或Boosting等方法來生成多個模型,並結合他們的預測結果。這種方法可以降低預測誤差的變異性,從而提高整體的預測效能。

圖表翻譯:

圖13.2展示了單棵樹和三種樹型整合方法在個人貸款驗證資料集上的ROC曲線比較。X軸代表1-Specificity,Y軸代表Sensitivity。曲線越靠近左上角,表示模型的預測效能越好。從圖中可以看出,Bagged Trees和Boosted Trees在某些部分略微優於單棵樹,這表明整合方法可以提高預測的準確性。

  flowchart TD
    A[選擇基礎模型] --> B[決定模型數量]
    B --> C[使用Bagging或Boosting生成模型]
    C --> D[結合模型預測結果]
    D --> E[評估模型效能]

圖表翻譯:

上述流程圖展示了整合學習的基本步驟。首先,我們選擇一個基礎模型(弱學習器),然後決定要使用多少個這樣的模型。接下來,我們使用Bagging或Boosting等方法來生成多個模型,並結合他們的預測結果。最後,我們評估模型的效能,以確定是否達到預期的效果。

隨著機器學習技術的蓬勃發展,模型整合已成為提升預測準確性的關鍵策略。透過多維比較分析,本文探討了多種整合方法,包括簡單平均、Bagging、Boosting 以及結合多個模型的預測結果,並深入剖析了它們的優缺點以及在不同場景下的適用性。技術限制深析顯示,雖然整合學習能有效降低偏差和變異數,提升整體模型的泛化能力,但仍需注意模型多樣性、計算成本以及過擬合的風險。展望未來,自動化機器學習(AutoML)的發展趨勢洞察顯示,AutoML平臺將進一步簡化模型整合的流程,並透過自動化模型選擇和引數調整,降低技術門檻,讓更多開發者能輕易運用整合學習的優勢。玄貓認為,掌握整合學習的精髓並善用AutoML工具,將成為未來資料科學家和機器學習工程師的必備技能。