機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什麼區別和聯絡?
MachineLP的Github(歡迎follow):https://github.com/MachineLP
首先 Error = Bias + Variance + Noise
Error反映的是整個模型的準確度,Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。
我是這樣抽象理解這個問題的:
準:bias描述的是根據樣本擬合出的模型的輸出預測結果的期望與樣本真實結果的差距,簡單講,就是在樣本上擬合的好不好。要想在bias上表現好,low bias,就是複雜化模型,增加模型的引數,但這樣容易過擬合 (overfitting),過擬合對應上圖是high varience,點很分散。low bias對應就是點都打在靶心附近,所以瞄的是準的,但手不一定穩。
確:varience描述的是樣本上訓練出來的模型在測試集上的表現,要想在varience上表現好,low varience,就要簡化模型,減少模型的引數,但這樣容易欠擬合(unfitting),欠擬合對應上圖是high bias,點偏離中心。low varience對應就是點都打的很集中,但不一定是靶心附近,手很穩,但是瞄的不準。
所以bias和variance的選擇是一個tradeoff,過高的varience對應的概念,有點『劍走偏鋒』『矯枉過正』的意思,如果說一個人varience比較高,可以理解為,這個人性格比較極端偏執,眼光比較狹窄,沒有大局觀。而過高的bias對應的概念,有點像『面面俱到』『大巧若拙』的意思,如果說一個人bias比較高,可以理解為,這個人是個好好先生,誰都不得罪,圓滑世故,說話的時候,什麼都說了,但又好像什麼都沒說,眼光比較長遠,有大局觀。
注:關於這個偏執和好好先生的表述,不是非常嚴謹,對這兩個詞的不同理解會導致截然相反的推理,如果你看完這段覺得有點困惑,可以去看評論區的討論,不得不感嘆一下,在準確描述世界執行的規律這件事上,數學比文學要準確且無歧義的多。
在林軒田的課中,對bias和variance還有這樣一種解釋,我試著不用數學公式抽象的簡單概括一下:
我們訓練一個模型的最終目的,是為了讓這個模型在測試資料上擬合效果好,也就是Error(test)比較小,但在實際問題中,test data我們是拿不到的,也根本不知道test data的內在規律(如果知道了,還machine learning個啥 ),所以我們通過什麼策略來減小Error(test)呢?
分兩步:
讓Error(train)儘可能小
讓Error(train)儘可能等於Error(test)
三段論,因為A小,而且A=B,這樣B就小。
那麼怎麼讓Error(train)儘可能小呢?——》把模型複雜化,把引數搞得多多的,這個好理解,十元線性迴歸,肯定error要比二元線性迴歸低啊。——》low bias
然後怎麼讓Error(train)儘可能等於Error(test)呢?——》把模型簡單化,把引數搞得少少的。什麼叫Error(train)=Error(test)?就是模型沒有偏見,對train test一視同仁。那麼怎樣的模型更容易有這這種一視同仁的特性,換句話說,更有『通用性』,對區域性資料不敏感?那就是簡單的模型。——》low varience
如果幫到你了,請讚賞支援:
相關文章
- 機器學習中偏差bias和方差variance區別機器學習
- 機器學習《Machine Learning》筆記--偏差(Bias)和方差(Variance)機器學習Mac筆記
- AI學習筆記——Bias and Variance tradeoff (方差偏差的平衡)AI筆記
- 分散式機器學習、聯邦學習、多智慧體的區別和聯絡分散式機器學習聯邦學習智慧體
- 機器學習中學習曲線的 bias vs variance 以及 資料量m機器學習
- 統計學和機器學習到底有什麼區別?機器學習
- Python和爬蟲有什麼聯絡?Python學習!Python爬蟲
- Linux中軟連結和硬連結之間有什麼區別和聯絡?Linux
- python中機器學習和深度學習的區別究竟是什麼?Python機器學習深度學習
- 區塊鏈和挖礦有什麼聯絡?區塊鏈
- Centos和Redhat有什麼關係?Centos和Redhat的區別與聯絡介紹CentOSRedhat
- File、Blob、ArrayBuffer等檔案類的物件有什麼區別和聯絡物件
- 知識點,JavaScript與Java之間有什麼區別和聯絡?JavaScript
- Instruction和Question的區別和聯絡Struct
- 物聯卡停用和停機有什麼區別
- 吳恩達機器學習系列14:偏差與方差吳恩達機器學習
- cookie和session有什麼區別?Python學習!CookieSessionPython
- javaSE中的==和equals的聯絡與區別Java
- Linux中raid和lvm有什麼區別?Linux學習教程LinuxAILVM
- 學習python需要多久?自學和培訓有什麼差別?Python
- 雲端計算和區塊鏈有什麼聯絡?區塊鏈
- 機器學習和深度學習的區別機器學習深度學習
- hive中order by、distribute by、sort by和cluster by的區別和聯絡Hive
- SCADA和PLC的區別聯絡
- 整合學習-偏差與方差
- tcp/ip和http的區別和聯絡TCPHTTP
- 網路安全和資訊保安有什麼聯絡?差異在哪裡?
- 今日面試題分享:解決bias和Variance問題的方法是什麼?面試題
- Linux學習之CentOS和Ubuntu有什麼區別?LinuxCentOSUbuntu
- cookie和session有什麼區別?Python學習分享CookieSessionPython
- Linux中su和sudo命令有什麼區別?Linux學習教程Linux
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- 演算法崗面試題:模型的bias和variance是什麼?用隨機森林舉例演算法面試題模型隨機森林
- http、socket、tcp的區別和聯絡?HTTPTCP
- Jtti:伺服器與資料庫有何區別和聯絡?Jtti伺服器資料庫
- Linux 下nohup 和 &有什麼聯絡呢?Linux
- Vue中watch、computed與methods的聯絡和區別Vue
- 資料變異性的度量 - 極差、IQR、方差和標準偏差
- 堡壘機和伺服器有什麼區別呢?伺服器