機器學習方法 機器學習模型評估方法

2021-10-12 08:20:52 字數 1627 閱讀 2212

通常我們採用實驗測試的方法對模型的泛化誤差做出評估。為此我們就需要乙個測試集用來測試訓練好的模型。通常情況下,在我們拿到資料之後,在正式開始訓練模型前,就會將資料劃分為訓練集合測試集。

需要注意的是:

訓練集與測試集應盡可能互斥,也就是盡量不要重複。

測試集要符合真實樣本的分布,也就是說在劃分時要隨機抽樣。

那麼應該如何對資料進行劃分呢?

直接將資料集劃分為兩個互斥的集合,乙個作為訓練集,乙個作為測試集。通常的做法是給定乙個劃分比例。如8:2。

在使用留出法時,為了保證評估結果穩定可靠,一般採用若干次隨機劃分、重複進行實驗評估後,取平均值作為留出法的評估結果。

先將資料集隨機劃分成k個大小相似的互斥子集,然後每次用k-1個子集的並集做為訓練集,用剩餘的乙個子集作為測試集,這樣重複訓練和測試k次,最終返回這k個結果的均值作為評估結果。為減小樣本劃分不同帶來的誤差,也可以對資料集使用多次k折交叉驗證,再取平均值作為最終結果。

留一法是交叉驗證法的乙個特例,就是將資料集中劃分為k個大小相似的子集(k=資料集中的樣本數),然後與交叉驗證法同理進行訓練和測試,最終得到評估結果。

當資料集較大時,使用留一法就需要消耗過多的計算資源和時間。另外模型調參時也會消耗大量計算資源和時間。

給定乙個有m個樣本的資料集d,對d進行取樣產生資料集d',每次從d中隨機選取乙個樣本放入d',被抽取出的樣本放回d,重複m次,最終將會得到乙個含有m個樣本的d'。自助法會使訓練集和測試集中的樣本部分相同,d中大概會有36.8%的樣本未出現在d』中(極限情況),可以將d'作為訓練集,d作為測試集,這樣能保證約36%的沒出現在訓練集中樣本用作測試。

這樣做能避免訓練樣本規模不同而造成的偏差,同時也比較高效。

自助法比較適合資料量較小的資料集時,當資料量足夠時,使用留出法和交叉驗證法誤差更小。

大多數模型都是需要設定引數的,引數不同,模型的效能也有較大的差異。因此在對模型進行評估和選擇時,除了要選擇適合的演算法,還需要對引數進行調節。

如果在模型選擇和調參的過程中,我們始終用測試集來評價模型效能,這實際上也將測試集變相地轉為了訓練集,這時候選擇的最優模型很可能是過擬合的。一般會把原始訓練集分為三部分:訓練集、驗證集和測試集。訓練集用於訓練不同的模型,驗證集用於模型選擇,而測試集用於評估模型的泛化能力。

現實中的調參做法是對引數設定乙個範圍和步長,然後對每組引數訓練得到的模型進行評估。這種做法儘管也不是最好的,但平衡計算開銷和效能開銷後,這種折中的做法不失為乙個可行的方案。

機器學習模型評估方法

分類模型評價度量 概率輸出型 這個有邏輯回歸 隨機森林 梯度提公升 adaboost等演算法,都是以概率作為輸出的。要想把概率型輸出變為分型別輸出,只要為其設立乙個閾值即可。positive predictive value 陽性 值 or precision 精度 陽性 值被 正確的比例。nega...

機器學習中模型評估方法

交叉驗證 什麼是交叉驗證 cv 交叉驗證的基本思想是把在某種意義下將原始資料 dataset 進行分組,一部分做為訓練集 train set 另一部分做為驗證集 validation set or test set 首先用訓練集對分類器進行訓練,再利用驗證集來測試訓練得到的模型 model 以此來做...

評估機器學習模型的方法

我們將資料劃分為訓練集 驗證集和測試集,並沒有在訓練模型的相同資料上對模型進行評估,其原因很快顯而易見 僅僅幾輪過後,三個模型都開始過擬合。也就是說,隨著訓練的進行,模型在訓練資料上的效能始終在提高,但在前所未見的資料上的效能則不再變化或者開始下降。機器學習的目的是得到可以泛化 generalize...