本篇只做最簡單的定性科普篙耗,因為定量的各種公式推導我也沒搞懂,在應用層面的模型開發(fā)工作中宪赶,也很少用到宗弯。
0. 什么是泛化能力?如何評估
泛化能力是模型對未知數(shù)據(jù)的預測能力搂妻。大白話來說就是蒙保,模型訓好了,放到實際場景中去使用欲主,會不會掉鏈子邓厕,還是能達到跟訓練時一樣的效果。泛化能力的本質(zhì)就是反映模型有沒有對客觀世界做真實的刻畫扁瓢,還是發(fā)生了過擬合详恼。
泛化能力的評估,說簡單很簡單引几,搞個測試集測一下就可以了昧互。
1. 那到底有什么坑?
舉個栗子:
k折交叉訓練開發(fā)了5個模型伟桅,它們在測試集上的AUC敞掘、準確率等指標必然不是一毛一樣的,那這個模型的整體指標到底是多少楣铁?是否求個均值就可以了玖雁,五個0.8均值是0.8,(0.7,0.7,0.8,0.9,0.9)的均值也是0.8盖腕,這兩組模型的表現(xiàn)能說是一樣嗎赫冬?
在測試集上測了下指標是0.8,難道模型的真實性能就一定是0.8嗎赊堪?說不定是巧了~畢竟測試集樣本量也就那么些對不對面殖?這個問題的本質(zhì)就是,模型在測試集上測得的指標哭廉,我們有多大把握(置信度)說它反映了模型的真實性能脊僚?
以概率論角度來看,模型的泛化能力那也是以概率態(tài)存在的遵绰,我們每次拿個測試集測一下辽幌,無非是在這個“泛化能力的分布空間”中采了個樣。在一個概率分布中采到了一個0.8的樣椿访,撐破天我們能說取0.8的概率比較大乌企,但不能說一定是0.8。
繼續(xù)舉栗子:
如果用同樣的方法(比如k折交叉訓練)成玫,開發(fā)出了五個模型加酵,在相應的測試集上測得其性能指標分別是0.7,0.7,0.8,0.9,0.9拳喻,我們會認為,模型的性能指標有較大可能是0.8左右猪腕,比如說性能指標落在0.75~0.85之間的概率是60%冗澈,落在0.65~0.95之間的概率是90%,而落在0.65以下或0.95以上的概率是剩下的10%(這些結果是通過采樣(測試集測試)+各種奇奇怪怪的假設檢驗公式算出來的)陋葡。
那么假設最后的結果是亚亲,模型有5%的可能性,性能指標在0.65之下腐缤。也就是捌归,盡管測了好多次,拿到了一堆0.7/0.8/0.9的數(shù)岭粤,但這些仍然有可能是巧合惜索。盡管可能性不大,但仍然有5%的可能這個模型其實非常差剃浇。能不能接受這個風險呢门扇?能接受就用,不能接受那就繼續(xù)優(yōu)化模型去吧~
上面這段話中所說的60%偿渡、90%之類的臼寄,就算是置信度的概念的概念了。
說得再詳細一點溜宽,假設另一組用k折開發(fā)出的模型吉拳,測試出的指標是0.79,0.8,0.8,0.8,0.81這樣,這個表現(xiàn)就穩(wěn)定多了适揉,這個“穩(wěn)定”留攒,可以描述為:模型有95%的可能性,性能在0.75~0.85之間嫉嘀,有99.9%的可能性炼邀,性能指標在0.65~0.95之間,另外還有0.05%的可能性剪侮,性能指標低于0.65拭宁,跟前面的5%相比,這個風險就小多了瓣俯。
以上所說的杰标,是從概率論的假設檢驗角度出發(fā),去說明模型泛化能力的考察中置信度的問題彩匕。在具體的機器學習領域腔剂,泛化能力的考察和比較有一些更具體的方法,比如交叉驗證t檢驗驼仪、Freidman檢驗掸犬、Nemenyi后續(xù)檢驗等等袜漩,此處就不表了,還沒看懂湾碎。