演算法模型定量分析之偏差和方差
首先宣告一下,這裡所說的方差、偏差與統計學上的不是一個概念。這裡引入偏差和方差的概念還是為了進行誤差分析。之前我們介紹過一些誤差分析的方法,主要是對誤檢的開發集中的圖片進行屬性分析,找到演算法的薄弱點,這裡介紹另外一種思路。
現在我們對於所有的資料,可以分為三類:訓練集、開發集和測試集。我們之前只介紹了在開發集和測試集上對演算法進行測試,其實還有一種測試就是在訓練集集上對模型進行測試。有些同學這時候可能就納悶了,在訓練集上進行測試有什麼意義?這些素材明明已經訓練過了,為什麼還能拿來測試?
這就來回答一下大家的疑問。前面咱們介紹過,開發集和測試集一般是要服從同分布的,而且要和實際場景的分佈儘可能一致,但是他們和訓練集的分佈不一定是一致的。其實對於
一個演算法模型來說,有兩方面要求:
在和訓練集相同分佈的素材上效果要好 (可以簡單理解為訓練集)
在開發集/測試集上效果要好
上面兩點是具有遞進關係的,首先要在訓練集上分類效果好,才有可能在測試集上取得好的效果。
這裡簡單解釋一下” 和訓練集相同分佈的素材”怎麼理解。
通常情況下演算法同學會這樣做:將訓練集平均分為 N 等份,比如說 10 等份。然後重複如下步驟:
選擇第 1 份作為測試集,剩餘 9 份作為訓練集;
選擇第 2 份作為測試集,剩餘 9 分組為訓練集;
。。。
選擇第 10 份作為測試集,剩餘 9 份作為訓練集。
以上共訓練了 10 次,測試了 10 次,檢測率取平均值。上面這個過程就叫做交叉驗證 (Cross-validation)。當然了,分成 5 份可以。這裡我們可以將每一份的測試集都認為是和訓練集服從同一分佈的。
上面說了這麼多,接下來才是今天的重點:假如說我們設計一個分類器,其在訓練集上的誤檢率為 10%,在測試集上的誤檢率是 15%,對於測試集上的 15% 的誤檢率,可以將其分為兩個部分:
第一部分是演算法在訓練集上的誤檢率,稱其為偏差,本例中是 10%,
第二部分是模型在測試集 (或者開發集) 上的表現比訓練集上差多少,稱其為方差,在本例中測試集上的表現比訓練集差 5%,
我們最終的目的是模型在測試集上能夠得到好的表現,這時候就可以分析模型的瓶頸到底是在偏差還是方差,因為有些策略主要是為了改進偏差,有些策略是為了改進方差,建立起演算法在偏差和方差上的表現,一方面有助於演算法同學選擇有效的改進策略,另一方面,測試同學也可以根據演算法在偏差和方差上的表現,提出針對性的改進建議,同時也能樹立自己的專業性。
知道了方差和偏差,怎麼用它來對模型進行分析呢?接下來透過一個例子示範一下該怎麼做。
假如說我們現在訓練了一個分類器,考慮如下四種情況:
訓練集誤檢率 1%
測試集誤檢率 10%
根據上面的定義,該分類器偏差為 1%,方差為 9%。說明這個模型在訓練集上表現很好,但是在測試集上表現比較差,說明模型的泛化能力比較差,即模型在訓練集上過擬合。
第二種情況:
訓練集誤檢率 10%
測試集誤檢率 11%
這種情況下,偏差為 10%,方差為 1%,偏差高,方差低,說明模型對訓練集的擬合併不好,屬於欠擬合。
第三種情況:
訓練集誤檢率 10%
測試集誤檢率 20%
該模型同時具有高偏差和高方差,它在訓練集上表現很差,同時泛化能力 (即測試集上的表現) 也很差,它同時即過擬合又欠擬合。
第四種情況:
訓練集誤檢率 1%
測試集誤檢率 2%
該模型同時具有低偏差和低方差,這個模型就很好,既很好的擬合了訓練集,同時又具有良好的泛化能力。
上面就是從偏差和方差的角度對模型進行分析,有了這個分析,接下來不管是模型改進還是對模型測試,都會有一個方向性的指導。
相關文章
- 偏差-方差間權衡
- 整合學習-偏差與方差
- 高/低方差、高/低偏差
- 機器學習中偏差bias和方差variance區別機器學習
- 機器學習《Machine Learning》筆記--偏差(Bias)和方差(Variance)機器學習Mac筆記
- 方差與偏差的解釋和解決辦法
- 資料變異性的度量 - 極差、IQR、方差和標準偏差
- 吳恩達機器學習系列14:偏差與方差吳恩達機器學習
- AI學習筆記——Bias and Variance tradeoff (方差偏差的平衡)AI筆記
- 演算法金 | 協方差、方差、標準差、協方差矩陣演算法矩陣
- 認知偏差之注意力偏差
- 【機器學習】第二節-模型評估與選擇-效能度量、方差與偏差、比較檢驗機器學習模型
- 第二週【任務2】貝葉斯估計,估計、偏差和方差,邏輯迴歸邏輯迴歸
- 認知偏見之錨定偏差
- 方差
- elasticsearch演算法之搜尋模型(一)Elasticsearch演算法模型
- 擴散模型中的後驗分佈方差推導模型
- 一文讀懂機器學習中的模型偏差機器學習模型
- 基本概念(二):方差、協方差、相關係數 原點矩和中心矩
- 幾種機器學習演算法的偏差以及防範機器學習演算法
- 高階IO模型之kqueue和epoll模型
- scipy.stats 庫的使用,np求均值和方差
- 07_異方差
- StartDT AI Lab | 視覺智慧引擎之演算法模型加速AI視覺演算法模型
- JavaScript 複習之 事件模型 和 Event物件JavaScript事件模型物件
- 高斯混合模型(GMM)和EM演算法 —— python實現模型演算法Python
- 演算法之美:棧和佇列演算法佇列
- 機器學習演算法筆記之3:線性模型機器學習演算法筆記模型
- 關係重疊?實體巢狀?曝光偏差?這個模型統統都搞得定!巢狀模型
- NVIDIA CUDA 程式設計模型之Grid和Block程式設計模型BloC
- 06_邏輯迴歸演算法和最大熵模型邏輯迴歸演算法熵模型
- 方差與標準差
- 互資訊-協方差
- 一文看懂:ChIP實驗和qPCR定量分析怎麼做|易基因技術
- 資料結構和演算法之-列表資料結構演算法
- 演算法之字首樹——最大異或和演算法
- 連通圖演算法詳解之① :Tarjan 和 Kosaraju 演算法演算法
- 9- ABC模型之資料分析和應用模型