pytorch 誤差與過擬合

2021-10-09 12:33:27 字數 1189 閱讀 6506

錯誤率(error rate)

假設有m個樣本,a個分類錯誤,那麼錯誤率e=a/m.

精度(accuracy)

是 1-e

經驗誤差(empirical error)

在訓練集上,**輸出與樣本的真實輸出之間的差異(差異!)稱為經驗誤差或訓練誤差。

泛化誤差(generalization)

在新樣本上的誤差稱為泛化誤差。

過擬合(overfitting)

訓練好的分類器對訓練樣本很好的分類,但是對測試樣本的分類結果很糟糕。欠擬合可以認為是該分類器學習能力太差,連在訓練樣本上都沒有很好的分類,更不要說在測試樣本上了。

1. 留出法(hold-out)

資料集d劃分為兩個互斥的集合,其中乙個是訓練集,乙個是測試集。書中給出的參考劃分比例是,訓練集66.6%~80%。

2. 交叉驗證法(cross validation)

自助法主要是用於小樣本,缺點是容易引入估計偏差。具體操作是這樣的,對於m個樣本的資料集d,每次隨機挑選d中的乙個樣本放到d』中,挑m次,經過計算d中有大約36.8%(≈1/e)的樣本未出現在d』中,這樣用d』作為訓練集,d\d』(「\」表示集合減法)作為測試集。自助法又稱為可重複取樣,有放回取樣。(第二次看到這個方法的時候,發現,這不就是bagging抽樣資料集的方法嘛,只是這裡作為劃分訓練集和測試機的方法。)

4. 訓練集(train set)、驗證集(valid set)、測試集(test set)

在工程應用中,最終提交給客戶的模型是用盡資料集d中的m個樣本訓練的模型。也就是說,我們的測試集最終還是要用來訓練模型的。之前有說到資料集d劃分為訓練集和測試集,訓練集就是用來訓練模型,測試集是用來估計模型在實際應用中的泛化能力,而驗證集是用於模型選擇和調參的。因此,我個人的理解是在研究過程中,驗證集和測試集作用都是一樣的,只是對模型進行乙個觀測,觀測訓練好的模型的泛化能力。而當在工程應用中,驗證集應該是從訓練集裡再劃分出來的一部分作為驗證集,用來選擇模型和調參的。當調好之後,再用測試集對該模型進行泛化效能的評估,如果效能ok,再把測試集輸入到模型中訓練,最終得到的模型就是提交給使用者的模型。

一般來說,當驗證集和測試集具有同分布的時候(即模擬題和高考題幾乎一樣的時候),在模擬考能拿650分,那麼在真實考高中也會在650分左右。

經驗誤差與過擬合

1.經驗誤差 誤差 是學習器的實際 輸出與樣本的真實輸出之間的差異 比如一組資料 1,2,4,5.使用閾值3,將其分為兩類。假設學習器的分類結果為 1和 2,4,5 但是實際的結果為1,2,和4,5,分錯的2就是誤差。那什麼是經驗誤差呢?沒啥神秘,其實就是在訓練集的誤差,也叫訓練誤差。相對於經驗誤差...

過擬合,欠擬合,偏差,誤差,正則化

欠擬合 過擬合與偏差 方差關係 過擬合 在訓練資料上表現良好,在未知資料上表現差。高方差 模型把資料學習的太徹底,以至於把雜訊資料的特徵也學習到了,使得測試的時候不能夠很好地識別資料,即不能正確的分類,模型泛化能力太差 解決方法 1 重新清洗資料 2 增大資料的訓練量 3 採用正則化方法,正則化方法...

欠擬合與過擬合

在用機器學習搭建模型時,經常會碰到這樣一種情況,你的模型演算法在樣本資料中匹配的非常完美。但用新資料測試,發現模型結果和實際差距非常大。那麼恭喜你!你掉進了機器學習中常見的乙個大坑 過擬合。什麼是過擬合呢?機器學習本質上是通過建立資料模型,使其和現有資料相吻合,從而找到資料中內在的規律。如下面三張圖...