如何用樸素貝葉斯模型預測柯南里的被害人和凶手
文章釋出於公號【數智物語】 (ID:decision_engine),關注公號不錯過每一篇乾貨。
作者 | 周鉑(知乎專欄)
這個研究是我在一門課上的期末作業,旨在用一些廣泛流傳的《柯南》"規律"(比如毛利小五郎指出的凶手大多是好人)預測凶手和被害人,並定量地探索作者——青山剛昌——在創作角色時的一些"隱藏信念"(hidden belief)。分析漫畫的研究我並沒有見過,不過還是有不少研究使用數學建模方法識別文學作品的作者 (Madigan, Genkin, Lewis, Argamon, Fradkin, & Ye, 2005; Zhao & Zobel, 2007; Zheng, Li, Chen & Huang, 2006), 或文學風格(比如中國古詩的風格 Yi, He, Li, & Yu, 2004。這些作品大多使用主成分分析、機器學習
本文先介紹樸素貝葉斯模型通過角色特徵(性格、行為、與他人關係等)預測其身份(凶手/被害人)的結果,再對一些相關的社會、心理學現象進行討論。樸素貝葉斯模型建立在已有資料基礎上,此處使用長春版漫畫單行本1-70卷中共60個事件,以下稱"訓練資料"。模型先計算出訓練資料中角色擁有各種特徵(組合)時是凶手或被害人的概率,再以此預測新資料(1-70卷中訓練資料之後的共21個事件)中角色的身份。
首先需要收集資料,即1-70卷的事件中的凶手、被害人都有些什麼特徵。因為我感興趣的是殺人事件,類似於怪盜基德對決/少年偵探團尋寶這些沒有凶殺案發生的事件、自殺事件和凶手一開始就被鎖定的事件就被排除了。於是共81個事件被統計,皆有且只有一名凶手和一至兩名被害人。涉案角色(除主角、警察等)為3至9不等,平均5人,共404名角色的二十個特徵被統計。
這些特徵的選擇基於個人經驗和一些大家熟悉的對劇情或人物的調侃。比如凶手一開始大多慈眉善目甚至案發後有不在場證明;被害人一般都凶神惡煞讓人討厭,或者在大家說最好待在一起時非要自己待著;還有事後被證明無辜的人中有部分會被毛利大叔錯誤指認。
這些特徵首先被以"0"、"1"編碼(表現出某個特徵則編碼為1,否則為0)。於是每個角色就有了20個代表他們特徵的值(由0或1組成),並且也有兩個值代表他們是否為凶手或被害人(比如某個人是凶手,那麼他的這兩個值就是1,0;是被害人就是0,1;都不是就是0,0)。
有了這些值之後就可以通過迴歸分析
接下來的一步是分別對凶手和被害人建立樸素貝葉斯模型,算出各個可能的特徵組合有多大概率對應"凶手"或"被害人"身份。
凶手模型公式如下:
等號左邊是我們要求的條件概率,即在一個角色有某些特徵時這個角色是凶手的概率。x1,...,xn是各個特徵的取值的組合,如"1,0,0,1,1"。P((x1,...,xn)|offender)是所有凶手中出現某個特徵組合的概率。P(offender)是個先驗概率,對所有角色來說沒有區別,因此在實際計算中可忽略。等式右邊分母則是某個特徵組合在所有角色中出現的概率。
同理,被害人模型公式如下:
在對全部訓練資料中的404個角色進行計算之後,我們就得到了各個特徵組合對應的凶手概率和被害人概率。然後就可以把這兩個概率應用在新資料(70卷之後的單行本)上了。具體來說,就是先把新資料中每個涉案角色的特徵組合統計出來,然後分別計算他們是凶手或被害人的概率。在每個事件中,"凶手"概率最高的人被預測為凶手,"被害人"概率最高的人被預測為被害人。如果出現多於一個概率最高值,則擁有這個值的人都被預測為凶手/被害人。
之後就是計算模型預測準確率並將其與機遇水平(瞎蒙正確率)相比較。那麼預測準確率怎麼算呢?如果是隻預測其中一個人為凶手,那麼在每個事件中預測對了就記為100%,錯了就記為0;如果預測多於一人(M人,M>1)為凶手,且其中一個正確,則記為(100/M)%,如果沒有一個正確則記為0。預測被害人準確率的計算與預測凶手準確率類似,只是被害人有可能多於一個。這種情況下,完全預測正確記為100%,只預測正確其中一人記為50%。預測凶手的機遇水平為(100/A)%,此處A為還活著的人的人數,因為被害人已經被排除了;預測被害人的機遇水平為(100/N)%,N為事件涉案人數。總的來說預測被害人的機遇水平更低一些。
結果如圖:
左圖為預測被害人的模型準確率與機遇水平,模型將被害人範圍從4.7人(平均值)縮小到1.3人。右圖為預測凶手的模型準確率與機遇水平,模型將凶手範圍從3.4人縮小到2.2人。
總得來說,通過這些特徵預測被害人的準確率高於預測凶手的準確率,這說明青山對被害人的塑造更為臉譜化,而凶手特徵則比較多變。從偵探漫畫的角度來說也可以理解,畢竟作者不能讓讀者僅通過一些性格、行為表現就輕易將凶手猜出來。儘管如此,以上模型還是反映出青山在創作凶手角色時的一些隱藏信念,或者說用於"隱藏"凶手的技法,比如凶手在一開始時通常很友好,而不友好或表現出與被害人不和的反而可能是清白的。此外,作者也利用了大家普遍擁有的一個想法——沒人會傷害自己——來試圖隱藏真凶。若干凶手都在事件過程中傷害自己(雖然沒有死)。
更值得注意的是作者塑造被害人時的"臉譜化",它反映了一個在司法領域和社會文化上有很大影響的心理現象——正義世界謬誤("just-world" fallacy)。這個概念由Lerner and Simmons 在1966年首次提出。在他們的第一個研究中,被試的任務是觀察另一個人(受害者)在學習任務中的表現並對這個人做出評價。被觀察的人之所以被稱為受害者,是因為其在任務中犯錯時會遭受電擊。雖然這只是實驗的一部分,但至少被試看到被觀察者在遭受電擊時很疼。研究者發現,當被試得知並相信被觀察者還要在第二輪任務中遭受電擊、且自己無力改變被觀察者的悲慘命運時,被試對被觀察者的評價更低。這反映出人們根深蒂固的"善有善報,惡有惡報"的信念,人們傾向於認為個人得到的結果是由其自身行為造成的,世界是相對正義且公平的,有一種無形且普適的力量在維持世間的平衡 (Hafer & Begue, 2005; Lerner, 1980)。這是因為人們需要證據來相信自己生活在一個正義的世界,從而不會感到時刻受到威脅。 這種信念在很多時候會成為對受害者的二次打擊,比如"認為強姦案受害者本身不檢點"這種想法在我們的生活中也是不少見。
此外,一味地積極評價受害人也會對犯罪者的審判產生影響。有研究表明,當陪審團相信受害人是一個值得尊敬的人時,他們會多受害人及其家庭產生更多的同情,並傾向於認為犯罪者的罪行更為嚴重(Greene, Koehring, & Quiat,1998)。直覺上這種情緒會導致犯罪者的量刑更重,事實也的確如此。當被害人被描述得更值得尊重或更有人格魅力時,犯罪者會更可能被判處監禁 (Landy & Aronson, 1969)。
總得來說,人不總是理性的。我們對人、事、物的判斷會受到自己固有信念的影響,而我們的決定也會被當前情感所左右。有時候這些"人之常情"並沒有大的影響,但有的時候可能會決定另一個人的命運。在會對他人產生影響的時候,理性就顯得更為重要。
P.S. 我得為毛利大叔正名,在統計的81個事件中大叔錯誤指出凶手的案件只有12個,雖然沒自己解決幾次事件,但也沒頻繁犯錯。“排除錯誤選項”這麼為人津津樂道只是因為這個角色太深入人心了……