训练集和测试集 — 模型评估
模型評估
訓練集和測試集
訓練集就是訓練模型的樣本,測試集就是在我們訓練好一個模型后,需要去評價這個模型的好壞。最直接的方法就是拿著這個模型去做實際的判斷。
例如,垃圾郵件過濾,就看看能否把垃圾郵件都篩選出來,如果沒有識別出垃圾郵件,或者把正常的郵件錯認為是垃圾郵件而過濾掉,那么都是出現了誤判,或者說是錯誤。出現錯誤過多的模型顯然就不是好的模型。
模型評估
誤差(error)
學習器的預測輸出和樣本的真實標記之間的差異稱為誤差。
訓練誤差(traning error)
在訓練集上的誤差。
泛化誤差(generalization error)
在新樣本上的誤差。
過擬合
在訓練模型時,如果一味地追求使訓練誤差盡量達到最小,就有可能會出現一種現象(學習過度,在訓練集上表現很好,在新樣本上泛化誤差很大)。
機器學習就是通過對樣本數據的學習,希望盡可能學習到適應于所有潛在樣本的本質特征和普遍規律,從而能夠對未知的數據進行預測或者分類。但是由于訓練樣本的數量有限,如果學習器的學習能力過于強大,就會發生過度學習,把訓練樣本中特有的特性都當成是所有樣本都必須具備的普遍特征學到了,導致泛化能力降低。
例如,設計一個識別樹葉的程序,希望它能夠認識所有的樹葉,但是我們采集的用來訓練模型的樹葉的樣本是有限的,假如在這些樹葉上面,恰好都有一些細微的劃痕或者斑點,或者樹葉的邊緣恰好都是鋸齒形狀的,如果過度學習,學習器就會學習到所有這些細微的特征。認為必須具備這樣的特征才是樹葉。如果給它看一片完美的、沒有劃痕和斑點的樹葉,它就識別不出來。
在上述例子中,模型就好像是一個記憶能力超群的高手,它記住了訓練集上所有樣本的屬性和標簽,因此,在訓練集上的正確率可以達到或者接近100%,但是,當出現沒有見過的樣本時,卻不具備舉一反三的能力,出現很多錯誤。
欠擬合
和過擬合相對的是欠擬合,產生欠擬合的原因是學習器的學習能力低下,沒有學習到樣本中的通用的特征。例如:學習器無法學習到所有樹葉共同的特征。那么給它一片新的樹葉,它也識別不出來,這就是欠擬合。
測試誤差
可以看出來,我們希望模型在新的、沒有見過的數據上表現的很好,而不僅僅是在訓練集上表現優異,也就是說,在機器學習中,我們的目標不僅僅是模型的訓練誤差小,而更希望它的泛化誤差小。但是,新的樣本是無限多的,在實際中,我們不可能測試無限多樣本的數據集,因此,實際上是無法得到泛化誤差的。
為了評價模型在沒有見過的數據上的效果,我們就把數據樣本集劃分為訓練集(training set)和測試集(testing set),首先使用訓練集訓練模型,訓練完成之后,再在測試集上運行模型,測試學習器對新樣本的預測或者判斷能力,使用這個測試集上的測試誤差來作為泛化誤差的近似,為了得到泛化性能強的模型,測試集中的樣本最好是沒有在訓練集中出現過的。也就是說,測試集應該盡可能和訓練集是互斥的。
總結
以上是生活随笔為你收集整理的训练集和测试集 — 模型评估的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【2021-12-17】css反爬+py
- 下一篇: OpenFOAM大涡模拟湍流模型之Sma