前言:
如果要轉(zhuǎn)載需要在結(jié)尾需要加上例子來源于公眾號自然語言處理與機(jī)器學(xué)習(xí)貝葉斯部分例子一話
感謝微信群的各位大牛們和憶臻學(xué)長的幫助盒卸,讓我能夠完成這個文章。這個文章的開始是這一段時間看到我周圍的小伙伴在跟很多的妹子聊天后總是無疾而終狂丝,過程雖然有所不同,但是起點(diǎn)和終點(diǎn)大致相同,聯(lián)想到以前看過的炮灰模型(前半部分是炮灰模型)肆糕,所以我想能不能可以用一些統(tǒng)計(jì)學(xué)的方法去概述這個現(xiàn)象并且發(fā)現(xiàn)這其中的規(guī)律吊档,以便讓廣大的男屌絲們找到自己合適的另一半篙议。
眾所周知生活中涉及到感情的事情是很復(fù)雜的,把所有可能影響的因素都考慮到幾乎是不可能的怠硼。為此我們先對現(xiàn)實(shí)進(jìn)行簡化鬼贱,并做出一些合理的假設(shè),考慮比較簡單的一種情況拒名。
為了將實(shí)際復(fù)雜的問題進(jìn)行簡化吩愧,我們做出下面幾條合理的假設(shè):
1、 假設(shè)一個女生愿意在一段時間中和一位男生開始一段感情增显,并且在這段時間中有N個男生追求這位女生雁佳。N個男生以不同的先后順序向女生表白,即在任一時刻不存在兩個或兩個以上的男生向這位女生表白的情況的發(fā)生同云,而且任何一種順序都是完全等概率的糖权。
2、 面對表白后的男生炸站,女生只能做出接受和拒絕兩種選擇星澳,不存在曖昧或者其它選擇。
3旱易、 任一時刻禁偎,女生最多只能和一位男生談戀愛,不存在腳踏多船的情況阀坏。
4如暖、 已經(jīng)被拒絕的男生不會再次追求這位女生。
基于上述假設(shè)忌堂,我們想要找到這樣一種策略盒至,使得女生以最大的概率在第一次選擇接受
的那個男生就是N。
先考慮最簡單的一種策略,如果一旦有男生向女生表白枷遂,女生就選擇接受樱衷。這種策略下顯然女生以1/N的概率找到自己的Mr. Right。當(dāng)N比較大的時候酒唉,這個概率就很小了矩桂,顯然這種策略不是最優(yōu)的。
基于上面這些假設(shè)和模型痪伦,我們提出這樣一種策略:對于最先表白的M個人耍鬓,無論女生感覺如何都選擇拒絕;以后遇到男生向女生表白的情況流妻,只要這個男生的編號比前面M個男生的編號都大牲蜀,即這個男生比前面M個男生更適合女生,那么女生選擇接受绅这,否則選擇拒絕涣达。
下面以N=3為例說明:
三個男生追求女生,共有六種排列方式:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
如果女生采用上述最簡單的策略证薇,那么只有最后兩種排列方式選擇到Mr. Right度苔,概率為2/3!=1/3弓坞。
如果女生采用上面我們提出的策略三痰,這里我們?nèi)=1千埃,即無論第一個人是否優(yōu)秀冠胯,女生都選擇拒絕。然后對于之后的追求者雹洗,只要他比第一個男生更適合女生就選擇接受揖庄,否則拒絕肮街∠瓤叮基于這種策略饮笛,“1 3 2”、“2 1 3”论熙、“2 3 1”這三種排列順序下女生都會在第一次做出接受的選擇時遇到“3”福青,這樣我們就把這種概率增大到3/3!=1/2。
現(xiàn)在我們的問題就歸結(jié)為脓诡,對于一般的N无午,什么樣的M才會使這種概率達(dá)到最大值呢?(在這種模型中祝谚,前面M個男生就被稱為“炮灰”宪迟,無論他們有多么優(yōu)秀都要被拒絕)
模型建立:
在這一部分中,根據(jù)上面的模型假設(shè)踊跟,我們先找到對于給定的M和N(1
1到N個數(shù)字進(jìn)行排列共有N!種可能踩验。當(dāng)數(shù)字N出現(xiàn)在第P位置(M
1、N在第P位置
2商玫、從M+1到P-1位置的數(shù)字要比前M位置的最大數(shù)字要小
運(yùn)用數(shù)學(xué)中排列組合的知識箕憾,不難知道符合上面兩個條件的排列共有
這樣對于給定的M和N,P可以從M+1到N變化拳昌,求和化簡后得到給定M和N共有
種序列符合要求袭异。
由此得到女生選擇接受時遇到Mr. Right的概率為
模型求解:(不感興趣的話可以直接跳過這部分推導(dǎo))
這一部分中我們求解使這個表達(dá)式取得最大值時M的值炬藤。
記函數(shù)
御铃,且設(shè)自變量取值為M時,函數(shù)取得最大值沈矿。
因此:
所以M應(yīng)滿足
我們知道上真,當(dāng)x>0, In(1+x)< x ;
當(dāng)x-->0, In(1+x) ~ x。
所以由左不等式
所以:
當(dāng)N比較大時羹膳,同理由右不等式可得M≈N/e睡互,以上e為自然對數(shù)。
若記[x]為不大于x的最大整數(shù)陵像,由以上推導(dǎo)我們可猜測當(dāng)M取[N/e]或[N/e]+1時就珠,該表達(dá)式取得最大值。
用MATLAB仿真醒颖,上述結(jié)論正確妻怎。
結(jié)果分析:
由上述分析可以得到如下結(jié)論:為了使一個女生以最大的概率在第一次選擇接受男生時遇到的正是Mr. Right,女生應(yīng)該采用以下的策略:
拒絕前M=[N/e]或者[N/e]+1個追求者泞歉,當(dāng)其后的追求者比前M個追求者更適合則接受逼侦,否則拒絕。
現(xiàn)在到結(jié)婚的問題上:
現(xiàn)在給我們的問題是腰耙,如果一對男女朋友偿洁,男生想女生求婚,男生的四個特點(diǎn)分別是不帥沟优,性格不好涕滋,身高矮,不上進(jìn)挠阁,請你判斷一下女生是嫁還是不嫁宾肺?
這是一個典型的分類問題,轉(zhuǎn)為數(shù)學(xué)問題就是比較p(嫁|(不帥侵俗、性格不好锨用、身高矮、不上進(jìn)))與p(不嫁|(不帥隘谣、性格不好增拥、身高矮啄巧、不上進(jìn)))的概率,誰的概率大掌栅,我就能給出嫁或者不嫁的答案秩仆!
我們需要求p(嫁|(不帥、性格不好猾封、身高矮澄耍、不上進(jìn)),這是我們不知道的,但是通過樸素貝葉斯公式可以轉(zhuǎn)化為好求的三個量.
p(不帥晌缘、性格不好齐莲、身高矮、不上進(jìn)|嫁)磷箕、p(不帥选酗、性格不好、身高矮岳枷、不上進(jìn))星掰、p(嫁)(至于為什么能求,后面會講嫩舟,那么就太好了氢烘,將待求的量轉(zhuǎn)化為其它可求的值,這就相當(dāng)于解決了我們的問題<已帷)
那么這三個量是如何求得播玖?
是根據(jù)已知訓(xùn)練數(shù)據(jù)統(tǒng)計(jì)得來,下面詳細(xì)給出該例子的求解過程饭于。
回憶一下我們要求的公式如下:
那么我只要求得p(不帥蜀踏、性格不好、身高矮掰吕、不上進(jìn)|嫁)果覆、p(不帥、性格不好殖熟、身高矮局待、不上進(jìn))、p(嫁)即可菱属,好的钳榨,下面我分別求出這幾個概率,最后一比纽门,就得到最終結(jié)果薛耻。
p(不帥、性格不好赏陵、身高矮饼齿、不上進(jìn)|嫁) = p(不帥|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上進(jìn)|嫁)饲漾,那么我就要分別統(tǒng)計(jì)后面幾個概率,也就得到了左邊的概率缕溉!
等等考传,為什么這個成立呢?學(xué)過概率論的同學(xué)可能有感覺了倒淫,這個等式成立的條件需要特征之間相互獨(dú)立吧!
但是為什么需要假設(shè)特征之間相互獨(dú)立呢败玉?
1敌土、我們這么想,假如沒有這個假設(shè)运翼,那么我們對右邊這些概率的估計(jì)其實(shí)是不可做的返干,這么說,我們這個例子有4個特征血淌,其中帥包括{帥矩欠,不帥},性格包括{不好悠夯,好癌淮,爆好},身高包括{高沦补,矮乳蓄,中},上進(jìn)包括{不上進(jìn)夕膀,上進(jìn)}虚倒,那么四個特征的聯(lián)合概率分布總共是4維空間,總個數(shù)為2*3*3*2=36個产舞。
36個魂奥,計(jì)算機(jī)掃描統(tǒng)計(jì)還可以,但是現(xiàn)實(shí)生活中易猫,往往有非常多的特征耻煤,每一個特征的取值也是非常之多,那么通過統(tǒng)計(jì)來估計(jì)后面概率的值准颓,變得幾乎不可做违霞,這也是為什么需要假設(shè)特征之間獨(dú)立的原因。
2瞬场、假如我們沒有假設(shè)特征之間相互獨(dú)立买鸽,那么我們統(tǒng)計(jì)的時候,就需要在整個特征空間中去找贯被,比如統(tǒng)計(jì)p(不帥眼五、性格不好妆艘、身高矮、不上進(jìn)|嫁),
我們就需要在嫁的條件下看幼,去找四種特征全滿足分別是不帥批旺,性格不好,身高矮诵姜,不上進(jìn)的人的個數(shù)汽煮,這樣的話,由于數(shù)據(jù)的稀疏性棚唆,很容易統(tǒng)計(jì)到0的情況暇赤。 這樣是不合適的。
好的宵凌,上面我解釋了為什么可以拆成分開連乘形式鞋囊。那么下面我們就開始求解!
我們將上面公式整理一下如下:
下面我將一個一個的進(jìn)行統(tǒng)計(jì)計(jì)算(
在數(shù)據(jù)量很大的時候瞎惫,根據(jù)中心極限定理溜腐,頻率是等于概率的,這里只是一個例子瓜喇,所以我就進(jìn)行統(tǒng)計(jì)即可
)挺益。
p(嫁)=?
首先我們整理訓(xùn)練數(shù)據(jù)中乘寒,嫁的樣本數(shù)如下:
則p(嫁) = 6/12(總樣本數(shù))= 1/2
p(不帥|嫁)=矩肩?統(tǒng)計(jì)滿足樣本數(shù)如下:
則p(不帥|嫁) = 3/6 = 1/2在嫁的條件下,看不帥有多少
p(性格不好|嫁)=肃续?統(tǒng)計(jì)滿足樣本數(shù)如下:
則p(性格不好|嫁)= 1/6
p(矮|嫁)= ?統(tǒng)計(jì)滿足樣本數(shù)如下:
則p(矮|嫁) = 1/6
p(不上進(jìn)|嫁) = ?統(tǒng)計(jì)滿足樣本數(shù)如下:
則p(不上進(jìn)|嫁) = 1/6
下面開始求分母黍檩,p(不帥),p(性格不好)始锚,p(矮)刽酱,p(不上進(jìn))
統(tǒng)計(jì)樣本如下:
不帥統(tǒng)計(jì)如上紅色所示,占4個瞧捌,那么p(不帥)= 4/12 = 1/3
性格不好統(tǒng)計(jì)如上紅色所示棵里,占4個,那么p(性格不好)= 4/12 = 1/3
身高矮統(tǒng)計(jì)如上紅色所示姐呐,占7個殿怜,那么p(身高矮)= 7/12
不上進(jìn)統(tǒng)計(jì)如上紅色所示,占4個曙砂,那么p(不上進(jìn))= 4/12 = 1/3
到這里头谜,要求p(不帥、性格不好鸠澈、身高矮柱告、不上進(jìn)|嫁)的所需項(xiàng)全部求出來了截驮,下面我?guī)脒M(jìn)去即可,
下面我們根據(jù)同樣的方法來求p(不嫁|不帥际度,性格不好葵袭,身高矮,不上進(jìn))乖菱,完全一樣的做法坡锡,為了方便理解,我這里也走一遍幫助理解窒所。首先公式如下:
下面我也一個一個來進(jìn)行統(tǒng)計(jì)計(jì)算鹉勒,這里與上面公式中,分母是一樣的墩新,于是我們分母不需要重新統(tǒng)計(jì)計(jì)算贸弥!
p(不嫁)=窟坐?根據(jù)統(tǒng)計(jì)計(jì)算如下(紅色為滿足條件):
則p(不嫁)=6/12 = 1/2
p(不帥|不嫁) =海渊?統(tǒng)計(jì)滿足條件的樣本如下(紅色為滿足條件):
則p(不帥|不嫁)= 1/6
p(性格不好|不嫁)=?據(jù)統(tǒng)計(jì)計(jì)算如下(紅色為滿足條件):
則p(性格不好|不嫁)=3/6 = 1/2
p(矮|不嫁)=哲鸳?據(jù)統(tǒng)計(jì)計(jì)算如下(紅色為滿足條件):
則p(矮|不嫁)= 6/6 = 1
p(不上進(jìn)|不嫁)=臣疑?據(jù)統(tǒng)計(jì)計(jì)算如下(紅色為滿足條件):
則p(不上進(jìn)|不嫁)= 3/6 = 1/2
那么根據(jù)公式:
p (不嫁|不帥、性格不好徙菠、身高矮讯沈、不上進(jìn)) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)
很顯然(1/6*1/2*1*1/2) > (1/2*1/6*1/6*1/6*1/2)
于是有p (不嫁|不帥、性格不好婿奔、身高矮缺狠、不上進(jìn))>p (嫁|不帥、性格不好萍摊、身高矮挤茄、不上進(jìn))
所以我們根據(jù)貝葉斯算法可以給這個女生答案,是不嫁1尽G钆!踊沸!
看完之后歇终,我又簡單想了一下,在炮灰模型中逼龟,前M個男生就成了炮灰的角色评凝,無論其有多么優(yōu)秀,都會被拒絕
設(shè)女性最為燦爛的青春為18-28歲腺律,在這段時間中將會遇到一生中幾乎全部的追求者(之前之后的忽略不計(jì))肥哎,且追求者均勻分布辽俗,則女性從18+10/e=21.7即22歲左右開始接受追求……這告訴我們,想談戀愛找大四的……
在文章中只考慮了N個男生表白的先后順序是完全隨機(jī)的篡诽,并沒有考慮相鄰兩次之間的時間隔崖飘。如果把時間因素也考慮進(jìn)去的話,在一個相對較短的時間中杈女,可以近似的假設(shè)為齊次泊松過程朱浴,這樣不僅可以得出女生應(yīng)該選擇上面的第M個男生的結(jié)論,而且找到男生表白的最佳時間在t=T/e時刻达椰。 例如如果取時間段為大學(xué)四年的話翰蠢,則T/e=1.4715。 也就是說啰劲,在大學(xué)四年里梁沧,男生表白的最佳時刻在第三個學(xué)期的期末或寒假
如果這個時間段較長的話,那么男生追求可近似假設(shè)為了一個非齊次泊松過程蝇裤,或者分段齊次泊松過程廷支,具體建模中對各段參數(shù)lamma的估計(jì)就比較困難了,而且每個人以后的經(jīng)歷都會不同栓辜,不太可能找到一個統(tǒng)一的參數(shù)集恋拍。
朋友,如果你追求一個女生而遭到拒絕藕甩,看完這篇文章后你會突然發(fā)現(xiàn)施敢,也許這不是你的的錯,也許你真的很優(yōu)秀狭莱,只是很不幸僵娃,你成了“炮灰”。
希望上面這些看似復(fù)雜的推導(dǎo)和模型對你能有所啟發(fā)腋妙。不要因?yàn)橐淮蔚木芙^而傷心默怨、失落,振作起來