機器學習模型 知乎 機器學習 模型選擇與評價

2021-10-13 00:23:08 字數 2152 閱讀 8305

交叉驗證

首先選擇模型最簡單的方法就是,利用每一種機器學習演算法(邏輯回歸、svm、線性回歸等)計算訓練集的損失值,然後選擇其中損失值最小的模型,但是這樣是不合理的,因為當訓練集不夠、特徵過多時容易過擬合,那麼訓練集的損失值就會不斷變小,但是此時針對測試集可能損失值很高,所以訓練集上的損失值是無法衡量模型的好壞的。

我們的辦法就是增加交叉驗證集,即將所有資料分為三部分:訓練集、交叉驗證集和測試集。交叉驗證集不僅在選擇模型時有用,在超引數選擇、正則項引數

簡單交叉驗證利用訓練集訓練模型

利用交叉驗證集在每一種模型上測試並計算損失值

選擇損失值最小的模型

但是簡單交叉驗證存在乙個問題,就是因為增加了驗證集後,導致訓練集的資料更少了,這樣模型可能無法更好地的體現整體資料,所以提出以下交叉驗證的方法。

k-摺疊交叉驗證假設訓練集為

然後每次從集合中拿出

份進行訓練

利用集合中剩下的那乙份來進行測試並計算損失值

最後得到

次測試得到的損失值,並選擇平均損失值最小的模型

bias與variance,欠擬合與過擬合

如下圖,針對同一組資料的三種模型,可以看出來中間的模型可以更好的表現資料,其中左邊的模型一般稱為欠擬合,右邊的模型稱為過擬合。

欠擬合一般表示模型對資料的表現能力不足,通常是模型的複雜度不夠,並且bias高,訓練集的損失值高,測試集的損失值也高。

過擬合一般表示模型對資料的表現能力過好,通常是模型的複雜度過高,並且variance高,訓練集的損失值低,測試集的損失值高。

具體如下圖所示:

針對bias於variance,有多種解釋方法。

第一種:

一般用下面兩張圖表示:

bias描述的是模型與資料表現的真實情況的差別,variance描述的是我們的假設與最好的假設之間的差別。

第二種:bias是表明模型在整體資料上表現,不在乎其中某乙個樣本的正確與否

對於variance,乙個樣本的變動會給整個模型帶來很大的影響,是模型抗樣本干擾能力有多強

如下圖所示:

高bias的模型,單個樣本對模型影響不大。

高variance的模型,乙個樣本的變化可以改變整個模型。

第三種:

解決方法

針對機器學習模型,在效果不佳時可以有如下解決辦法:增加訓練樣本----解決高variance情況

減少特徵維數----解決高variance情況

增加特徵維數----解決高bias情況

增加模型複雜度----解決高bias情況

減小模型複雜度----解決高variance情況

針對過擬合的情況,我們可以採取上述中的1、2、5的方法,除此之外,我們還可以在損失函式中增加正則項(l0、l1、l2範數)來解決過擬合的問題。

一般監督學習可以看做最小化下面目標函式:

其中函式為損失函式,

就是規則化函式,也可以叫做正則項。我們增加正則項的主要原因是為了讓

更稀疏,使模型不容易過擬合(後面會詳細解釋)。

函式具體可以有很多種選擇,常見的有l0範數、l1範數、l2範數等。其中:l0範數是向量中非零元素的個數

l1範數是向量中各個元素絕對值之和,

l2範數是向量的模,

其中l0範數由於不好實現,所以一般不採用。

針對l1範數,它能實現特徵的自動選擇,一般來說,

的大部分元素(也就是特徵)都是和最終的輸出

沒有關係或者不提供任何資訊的,在最小化目標函式的時候考慮

這些額外的特徵,雖然可以獲得更小的訓練誤差,但在**新的樣本時,會干擾了對正確

的**。稀疏規則化運算元就是為了完成特徵自動選擇,它會自己學習去掉這些沒有資訊的特徵,也就是把這些特徵對應的權重置為0。

針對l2範數,與l1範數的區別是不會將權重置為0,而會是乙個很小的數,這樣可以通過

來控制模型擬合程度,如下圖所示

針對正則項,我們還可以有如下理解(來自知乎問題機器學習中常常提到的正則化到底是什麼意思? @陶輕鬆的回答 ):將函式

泰勒展開,

當n很大的時候,特徵就越多,模型就越複雜,越容易過擬合。

因為是我們學習到的,所以我們要做的就是改變

的大小減少特徵維數,降低模型複雜度,也是讓一部分

趨近於0。

所以在目標函式中加入正則項,利用l0、l1、l2範數來改變

。參考

機器學習模型 知乎 最簡單的機器學習模型

今天學習感知機,乙個最簡單的線性分類器 考慮平面上的一系列點,他們有兩種類別,分別用 1,1表示,如圖 能夠確定的是可以找到一條直線,可以將這些點完美分割開來 那麼問題在於,如何找出這條直線呢?手上現在有,每個點 的座標 以及每個點的類別標記 這裡吧平面直角座標系的兩個維度定義為 而不是 假設這條直...

機器學習模型 知乎 機器學習 建模高階指南 (一)

歡迎來到vitu中級機器學習微課程!解決實際資料集中常見的資料型別 缺失值,分類變數 設計pipelines以提高機器學習 的質量,使用先進的技術進行模型驗證 交叉驗證 建立最先進的模型 xgboost 和 避免常見和重要的資料科學錯誤 洩漏leakage 在此過程中,您將通過每個新主題的實際資料的...

機器學習模型 如何口述機器學習模型原理

重磅乾貨,第一時間送達 有時碰到跟別人聊起模型的熟悉時,不免要闡述下模型的原理,但一般口頭交流都比較難,因為腦海裡面都是一些公式,似乎從功利角度有必要把模型原理用文字表達一遍,所以自己整理了下機器學習的部分,有遺漏或者不對的地方也請多多指教 線性回歸 首先我們會定乙個函式假定y和x的關係,如y wx...