[DA45] 使用PageRank算法分析希拉里邮件中的人物关系

本文介绍了如何运用PageRank算法分析希拉里邮件数据,通过Python的NetworkX库处理数据,计算人物在网络中的权重,并通过网络图展示结果。邮件数据包括9306封邮件和513个人物,通过预处理、构建函数、建立规范数据集合,最终揭示了希拉里与其他关键人物的关系。
摘要由CSDN通过智能技术生成

一. 相关知识

    (一) PageRank 算法

        PageRank 算法是 google 公司的创始人拉里·佩奇和谢尔·盖布林于1998年提出的网页搜索优化算法. 

        详细内容请见百度百科: google pagerank.

        如果你了解了该算法, 就能明白上一段的超链接从本页面链出, 链入百度百科的 PageRank 算法页面增加了该页面的PR值.

    (二) Python 的 PageRank 算法实现

        Python 的常用数据分析机器学习库 sklearn 中并没有 PageRank 算法, 但有一个关于图论和网络建模的工具叫 NetworkX, 它是用 Python 语言开发的工具, 内置了常用的图与网络分析算法, 可以方便我们进行网络数据分析. 

        简单的实现流程可以参考: https://github.com/Nana0606/machine_learning/blob/master/pagerank/pagerank_nx.py, 代码里包含相应的注释, 最后输出值为字典类型, 键为节点名, 值为对应的 PR值.

    (三) 数据介绍

        数据来自希拉里邮件门的部分泄露数据, 事件的相关介绍请看: 希拉里邮件门.

        数据集由三个文件组成:  Aliases.csv, Emails.csv 和 Persons.csv, 其中 Emails 文件记录了所有公开邮件的内容, 发送者和接收者的信息. Persons 文件统计了邮件中所有人物的姓名及对应的 ID. 因为姓名存在别名的情况, 为了将邮件中的人物进行统一, 我们还需要用 Aliases 文件来查询别名和人物的对应关系.

        数据集包括9306封邮件和513个人名, 本例通过邮件中的发送者和接收者来绘制整个关系网络. 因为涉及到的人物很多, 需要先通过 PageRank 算法计算每个人物在邮件关系网络中的权重, 再筛选出最有价值的人物来进行关系网络图的绘制.

 

二. 数据分析

    (一) 数据预处理

        首先使用 pandas 读入三个 csv 文件.

        在 Emails 文件中, 我们需要用到信息为 'MetadataTo'(收件人) 与 'MetadataFrom'

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Pagerank算法是一种用于计算网页重要性算法,其核心思想是通过链接数量和质量来衡量网页的重要性。而希拉里邮件数据集是一组与前美国国务卿希拉里·克林顿相关的邮件数据。在这个话题下,可以将Pagerank算法应用于希拉里邮件数据集,以获取该数据集邮件重要性。 首先,我们需要将每封邮件视为一个节点,并建立邮件之间的链接关系。可以根据邮件的发送与接收关系来构建有向图,其每个节点代表一封邮件,而边表示邮件之间的链接关系。 接下来,我们需要为每个节点设置初始的Pagerank值。初始值可以根据邮件的内容、发送日期等因素来确定,比如邮件的字数较多、发送给重要人物、或者在关键时刻发送的邮件可以有较高的初始Pagerank值。 然后,通过迭代计算来更新每个节点的Pagerank值。迭代的过程,每个节点的Pagerank值会受到其所指向节点的贡献,节点之间的链接强度也会影响Pagerank值的传递。在迭代过程,可以设置一个阻尼系数来控制节点重要性的衰减,防止出现计算结果的震荡。 最后,迭代计算会收敛至一个稳定的Pagerank值分布,这时可以根据节点的Pagerank值来判断邮件重要性Pagerank值越高的邮件,意味着其在网络的引用较多且质量较高,因此可以判断为较为重要的邮件。 综上所述,通过应用Pagerank算法希拉里邮件数据集,我们可以根据邮件的链接关系重要性来判断其在网络的重要程度。这有助于我们理解邮件数据集的结构和关键节点,并从获取有价值的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值