用朴素贝叶斯模型预测柯南中被害人和凶手!

这个研究是我在一门课上的期末作业,旨在用一些广泛流传的《柯南》"规律"(比如毛利小五郎指出的凶手大多是好人)预测凶手和被害人,并定量地探索作者——青山刚昌——在创作角色时的一些"隐藏信念"(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)。

有了这些值之后就可以通过回归分析看凶手和被害人这两个身份可能被哪些特征预测了,这里我使用了逻辑斯蒂回归(logistic linear regression)。这一步是因为这二十个特征并不一定都有很好的预测能力,预先筛选一下可以让之后的贝叶斯模型更精简。这一步后对"凶手"或"被害人"在.05水平上显著的特征们被留下并进入贝叶斯模型。对凶手有预测能力(包括正相关和负相关)的特征包括"对除主角以外的周围人不友善"、"对周围人友善"、"有不在场证明等有利证据"、"遭遇攻击但未死"、"与死者是恋人或婚姻关系"。

之后我在此基础上又添加了“被害人死后表现出悲伤”、“被小五郎指为凶手”、“有对自己的不利证据”等三个特征。对被害人有预测能力的特征包括"对除主角以外的周围人不友善"、"对主角不友善"、"表现出紧张或惊恐"、"要自己待着",我之后又添加了性别和年龄(50岁以上或以下)连个特征。被害人相关特征在有人被杀前统计,因为对被害人的预测需要在事件发生前做出;相反,凶手相关特征则根据凶手被正确指出前所有角色的表现来统计。

接下来的一步是分别对凶手和被害人建立朴素贝叶斯模型,算出各个可能的特征组合有多大概率对应"凶手"或"被害人"身份。

凶手模型公式如下:

等号左边是我们要求的条件概率,即在一个角色有某些特征时这个角色是凶手的概率。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)。

总得来说,人不总是理性的。我们对人、事、物的判断会受到自己固有信念的影响,而我们的决定也会被当前情感所左右。有时候这些"人之常情"并没有大的影响,但有的时候可能会决定另一个人的命运。在会对他人产生影响的时候,理性就显得更为重要。

时间: 2025-01-02 17:57:01

用朴素贝叶斯模型预测柯南中被害人和凶手!的相关文章

贝叶斯模型构建分类器的设计与实现

0 引言      于半月前,针对文本分类进行学习,实验的目的是通过对下图1中的不同情感文本构建训练集模型,对应的下图2是对训练集的注释说明.类标0开头为喜悦类别,类标1开头的为愤怒类别,类别2开头的是厌恶类别,类别3开头的为低落类别.4个训练集文本,分别对应4个分类.如何通过训练集构造分类器,并对测试数据进行验证是本课题的最终目的.其中会涉及贝叶斯公式的理解与实现,文本的预处理(下图1中0_simplifyweibo的训练集是处理过的数据如下图),分词工具的使用,不同贝叶斯模型的构造,试验结果

机器学习算法实践:朴素贝叶斯 (Naive Bayes)

前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾短信进行过滤,在最后对分类的错误率进行了计算. 正文 与决策树分类和k近邻分类算法不同,贝叶斯分类主要借助概率论的知识来通过比较提供的数据属于每个类型的条件概率, 将他们分别计算出来然后预测具有最大条件概率的那个类别是最后的类别.当然样本越多我们统计的不同类型的特征值分布就越准确,使用此分布进行预测则会更加准

统计学习方法笔记 -- 朴素贝叶斯

贝叶斯定理(Bayes theorem) 这是关于"逆概"或"后验概率"的定理,之所以需要这个定理是因为后验概率是以"果"来推导"因",所以往往难以直接统计出.  但是后验概率却非常重要,因为在现实生活中,往往都只能观测到一些表面的"果",需要去推断"因".  而bayes定理就给出一种计算后验概率的方法. 以例子来说明,一个班级中n个学生,有男生也有女生  两个features,短发;

《大数据架构和算法实现之路:电商系统的技术实战》——1.3 算法:朴素贝叶斯和K最近邻

1.3 算法:朴素贝叶斯和K最近邻 1.3.1 朴素贝叶斯 朴素贝叶斯(Naive Bayes)分类是一种实用性很高的分类方法,在理解它之前,我们先来复习一下贝叶斯理论.贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分.贝叶斯决策就是在信息不完整的情况下,对部分未知的状态用主观概率进行估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策.其基本思想具体如下. 1)已知类条件概率密度参数表达式和先验概率. 2)利用贝叶斯公式转换成后验概率. 3)根据后验概率大小进行决

朴素贝叶斯法(对于连续和离散属性的处理)

原文地址 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.简单来说,朴素贝叶斯分类器假设样本每个特征与其他特征都不相关.举个例子,如果一种水果具有红,圆,直径大概4英寸等特征,该水果可以被判定为是苹果.尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的.尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的效果.朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出

简单通俗易懂:一个小例子完美解释Naive Bayes(朴素贝叶斯)分类器

更多深度文章,请关注:https://yq.aliyun.com/cloud 最简单的解决方案通常是最强大的解决方案,而朴素贝叶斯就是一个很好的证明.尽管机器学习在过去几年取得了巨大的进步,但朴素贝叶斯已被证明不仅简单,而且快速.准确.可靠.它已经成功地用于许多项目中,而且它对自然语言处理(NLP)的问题的解决提供了很大的帮助. 朴素贝叶斯是利用概率论和贝叶斯定理预测样本类别(如新闻或客户评论)的概率算法.它们是概率性的,这意味着它们计算给定样本的每个类别的概率,然后输出概率最高的样本类别.他们

基于朴素贝叶斯的定位算法

1 定位背景介绍       一说到定位大家都会想到gps,然而gps定位有首次定位缓慢(具体可以参考之前的博文<LBS定位技术>).室内不能使用.耗电等缺陷,这些缺陷大大限制了gps的使用.在大多数移动互联网应用例如google地图.百度地图等,往往基于wifi.基站来进行定位.        一般APP在请求定位的时候会上报探测到的wifi信号.基站信号.以wifi为例,手机会探测到周围各个wifi(mac地址)对应的信号强度(RSSI),即收集到信号向量(<WF1, RSSI1&g

抽象的艺术 - 朴素贝叶斯

Situation 2016年,A市对30000+市民进行了年收入统计,收入>=50K的人数7000+,<=50K的人数20000+. 为了提高税收,需要分析两种收入群体的特征,分析员抽取了"职业.年龄.性别.出生地.教育程度"等属性,更进一步分析哪些职业收入高,哪个年龄段收入高等等,为来年税收做预测. 问题来了:2017年2月,A市人口增加了20000+,对这个群体年收入做预测. 朴素贝叶斯 分类算法有很多种,今天讲朴素贝叶斯的原理和Java实现. 朴素贝叶斯分类的正式定

朴素贝叶斯从放弃到入门

理论基础 联合概率 联合概率表示两个事件共同发生的概率.A与B的联合概率表示为$P(AB)$,$P(A,B)$或者$P(A \bigcap B)$. 联合概率可以推广到任意又穷多个事件出现的情况,设($A_1,A_2,\cdots,A_n$)为任意n个事件($n\ge2$),事件$A_1,A_2,\cdots,A_n$共同发生的概率记为$P(A_1A_2 \dots A_n)$,$P(A_1,A_2,\dots,A_n)$或者$P(A_1 \bigcap A_2 \bigcap \dots \b