這是一篇嚴(yán)謹(jǐn)?shù)募夹g(shù)文章。
宋人有耕田者。田中有株,兔走觸株,折頸而死。因釋其耒而守株,冀復(fù)得兔。兔不可復(fù)得,而身為宋國(guó)笑。今欲以先王之政,治當(dāng)世之民,皆守株之類也。 ——出自《韓非子·五蠹》
守株待兔的原文,我抄來(lái)的。標(biāo)題中的“過(guò)擬合”我理解為:用以獲取知識(shí)的樣本與知識(shí)本身聯(lián)系過(guò)于緊密,且該樣本不足以代表將來(lái)解決問(wèn)題時(shí)所面對(duì)的數(shù)據(jù)整體特征,導(dǎo)致這些知識(shí)或經(jīng)驗(yàn)在應(yīng)用時(shí)不夠有效。
這篇文章起源于對(duì)某次對(duì)數(shù)據(jù)粗心錯(cuò)誤地解讀??珊?jiǎn)單比喻為以下三個(gè)問(wèn)題:
1.一個(gè)袋子內(nèi)有一堆球,顏色只可能是紅色和白色兩種,如果第一次取出一個(gè)球是紅球,。那么是否可以認(rèn)為紅球比白球多這件事兒的可能性更大?即第二次取出的球更可能是紅球的概率大?
2.守株待兔錯(cuò)在哪里?如果待“兔子”不符合道理,那么待什么符合道理?
3.待會(huì)兒再說(shuō)。。。
第一個(gè)問(wèn)題先說(shuō)我的答案:紅球比白球多的可能性大,即第二個(gè)球更可能是紅球的概率大。面對(duì)這個(gè)問(wèn)題,可能第一反應(yīng)是:臥槽,你是以為我初中沒好好學(xué)習(xí)嗎?隨機(jī)變量,兩次獨(dú)立事件,互不影響。就像拋一枚均勻硬幣,你就是前1000次都恰巧正面朝上,也不影響第1001次正面朝上的概率是二分之一啊。。。
but!這其實(shí)不是一回事兒。另外誰(shuí)說(shuō)這是均勻的硬幣了?就像誰(shuí)告訴你紅球白球數(shù)量關(guān)系了?第一個(gè)紅球的存在,至少排除了全是白球的可能,但保留了全是紅球的可能。
證明過(guò)程(可直接跳到結(jié)論):
若想知道第二個(gè)球更可能是紅球的概率大小,就要計(jì)算出在第一個(gè)樣本發(fā)生情況下的兩個(gè)后驗(yàn)概率(也是條件概率):即 p(紅>白 | 第一個(gè)為紅球)? 和 p(白>紅 | 第一個(gè)為紅球)誰(shuí)大。其中p(紅>白)意思是原袋中紅球數(shù)量大于白球數(shù)量的概率。
現(xiàn)有樣本數(shù)量很少。。得可憐,就一個(gè)。根據(jù)貝葉斯公式:p(E|F) = p(F|E)*p(E)? / p(F)可知:

兩個(gè)等式右邊分母相同,比較分子,其中對(duì)兩個(gè)先驗(yàn)概率p(紅>白)、p(白>紅)的大小一無(wú)所知,即認(rèn)為所有情況都可能發(fā)生,默認(rèn)二者發(fā)生概率相等,是一個(gè)常數(shù)。而 p(第一個(gè)為紅球|紅>白)? 肯定大于 p(第一個(gè)為紅球|白>紅),所以第一個(gè)概率大于第二個(gè)概率,即p(紅>白|第一個(gè)為紅球) > p(白>紅|第一個(gè)為紅球),這其實(shí)是一個(gè)樣本的極大似然估計(jì)。
結(jié)論:取出一個(gè)紅球后,原袋中p(紅>白) > 1/2,如果球的數(shù)量很多,不考慮第一個(gè)對(duì)整體的影響,近似認(rèn)為P( P(第二是紅球) > 1/2 ) > 1/2 ,這是概率的概率。有一個(gè)地方?jīng)]有想得太順暢:
如果這是一場(chǎng)賭博的話,根據(jù)這個(gè)結(jié)論,看來(lái)我們要押注紅球了,因?yàn)楦杏X上總是比押注白球好一些。好一些的意思是,“獲勝的機(jī)會(huì)”大一些?獲勝的機(jī)會(huì)大卻不能推導(dǎo)出獲勝的概率一定大 :P(第二是紅球) > 1/2,否則就結(jié)論不吻合了。想多了掉頭發(fā),關(guān)于這個(gè)問(wèn)題,有興趣一起交流一下。
說(shuō)這么多,意思是即便是一個(gè)樣本,也是有意義的。那么守株待兔錯(cuò)在了哪里?
錯(cuò)在作為宋國(guó)人,你知道的太多了。。尤其是關(guān)于兔子的常識(shí)。已經(jīng)有那么多跟兔子打交道的經(jīng)歷了,還在用剛剛發(fā)生的單一樣本生成模型,就很可能過(guò)擬合了。說(shuō)“很可能”而不是“一定”是因?yàn)檫@個(gè)樣本太新了,也許從那一刻開始,全世界的兔子突然喜歡上撞樹了。不過(guò)在幾千年后的我們看來(lái),這沒發(fā)生。對(duì)于當(dāng)年的農(nóng)夫來(lái)說(shuō),這是一場(chǎng)豪賭,扯遠(yuǎn)了。
那么有沒有一種動(dòng)物(或一種場(chǎng)合),可以守株而“待”之呢?遍尋古籍,我終于找到一種動(dòng)物,撞樹之后,在樹下等它未必沒有道理,它就是——年獸!因?yàn)閷?duì)“年獸”了解的太少了,對(duì)它喜歡做什么幾乎沒有任何了解。它撞樹是事實(shí),那么它閑的沒事兒喜歡撞樹這個(gè)最可能導(dǎo)致“撞樹”的原因就最有可能是事實(shí)?!澳衬暝氯?,一獸觸株,或謂之曰年,于是,耕田者釋其耒而守株。。。復(fù)得年”。
其實(shí)生活中很多情況都在有意無(wú)意的利用一個(gè)樣本做估計(jì)。比如某個(gè)周三下午,你經(jīng)過(guò)某個(gè)街角的cafe,與一個(gè)人擦肩而過(guò)。那一瞬間你似乎聽到了上天的耳語(yǔ),感受到了永恒的存在。可是在來(lái)得及反應(yīng)之前,就已無(wú)影無(wú)蹤。于是你“寤寐思服,輾轉(zhuǎn)反側(cè)”,然后在下次路過(guò)那個(gè)街角時(shí),下意識(shí)的張望。。。
當(dāng)當(dāng)當(dāng)當(dāng),一個(gè)樣本的作用!??!
問(wèn)題3:除了那個(gè)街角,你還能去哪呢?天安門廣場(chǎng)?還是東方明珠塔?于是你唱完《You're beautiful》開始唱《Right here waiting》。。。你這次吃雞的房子,還是你下次吃雞的地方嗎?
結(jié)語(yǔ):雖然一個(gè)樣本也是有意義的,但是要說(shuō)它的效果嘛,你看看身邊多少單身的程序員就知道了。
