用于预测性社交网络分析的数据挖掘

已发表: 2022-03-11

自从人们第一次开始互动以来,社交网络就以一种或另一种形式存在。 事实上,将两个或更多人放在一起,您就拥有了社交网络的基础。 因此,在当今互联网无处不在的世界中,在线社交网络已经变得无处不在也就不足为奇了。

在这个在线社交网络世界中,过去十年中一个特别引人入胜的现象是 Twitter 的爆炸式增长,通常被描述为“互联网的 SMS”。 Twitter于2006年推出,迅速风靡全球,成为全球十大访问量网站之一。 截至 2015 年 5 月,Twitter 拥有 3.02 亿活跃用户,每天总共产生 5 亿条推文。 而且这些数字还在不断增长。

鉴于如此庞大的社交媒体数据,分析师们开始将 Twitter 视为一个虚拟的信息宝库,用于数据挖掘、社交网络分析,以及用于感知公众舆论趋势和支持(或反对)各种政治和社会倡议。 数据科学公司发现 Twitter 趋势主题作为衡量公众舆论的有价值的代理越来越有用。

社交网络分析与数据挖掘

本文介绍了我用于概念验证的技术,该技术有效地分析了 Twitter 趋势主题,以作为示例测试用例预测 2014 年巴西总统大选中的区域投票模式。

选举

2014年10月5日巴西举行了总统大选,没有候选人获得超过50%的选票,因此在10月26日举行了第二次决选。

在第一轮中,迪尔玛·罗塞夫 (Partido dos Trabalhadores) 赢得了 41.6% 的选票,领先于 Aecio Neves (Partido da Social Democracia Brasileira) 的 33.6% 和玛丽娜·席尔瓦 (Partido Socialista Brasileiro) 的 21.3%。 Rousseff和Neves将于10月26日争夺径流,Rousseff被Rousseff被狭窄的边距再次选举,51.6%到Neves 48.4%。 本文中的分析具体涉及 10 月 26 日的决选。

Partido dos Trabalhadores (PT) 是巴西最大的政党之一。 它是现任和前任总统迪尔玛·罗塞夫和路易斯·伊纳西奥·卢拉·达席尔瓦的政党。 Partido da Social Democracia Brasileira (PSDB) 是前总统费尔南多·恩里克·卡多佐的政党。

数据挖掘和提取 Twitter 趋势主题数据

我通过提取通过 Twitter API 提供数据的 14 个巴西城市的 Twitter 趋势主题数据开始社交媒体数据挖掘,即:巴西利亚、贝伦、贝洛奥里藏特、库里提巴、阿雷格里港、累西腓、里约热内卢、萨尔瓦多、圣奥保罗、坎皮纳斯、福塔莱萨、戈亚尼亚、马瑙斯和圣路易斯。

我查询 Twitter REST API 以获取这 14 个城市在 20 分钟内的前 10 个 Twitter 趋势主题(受 Twitter 对其 API 的一些限制的限制)。 将查询限制在这 14 个城市是通过指定他们的 Yahoo! GeoPlanet WOEID(地球上的 ID)。

对于这个概念验证,我使用 Python 和 Twitter 库(巧妙地称为“twitter”)来获取决选当天(10 月 26 日)以及前两天(10 月24 日和 25 日)。 每天,我执行了大约 70 个不同的查询来帮助识别即时趋势主题。

下面是响应每个查询返回的 JSON 对象的示例(此示例基于 10 月 26 日凌晨 12:40:00 的数据查询,仅显示贝洛奥里藏特的数据)。

 [{"created_at": "2014-10-26T02:32:59Z", "trends": [{"url": "http://twitter.com/search?q=%23GolpeNoJN", "name": "#GolpeNoJN", "query": "%23GolpeNoJN", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23SomosTodosDilma", "name": "#SomosTodosDilma", "query": "%23SomosTodosDilma", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23EAecio45Confirma", "name": "#EAecio45Confirma", "query": "%23EAecio45Confirma", "promoted_content": null}, {"url": "http://twitter.com/search?q=Uilson", "name": "Uilson", "query": "Uilson", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Lucas+Silva%22", "name": "Lucas Silva", "query": "%22Lucas+Silva%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Marcelo+Oliveira%22", "name": "Marcelo Oliveira", "query": "%22Marcelo+Oliveira%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Cruzeiro", "name": "Cruzeiro", "query": "Cruzeiro", "promoted_content": null}, {"url": "http://twitter.com/search?q=Tupi", "name": "Tupi", "query": "Tupi", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Real+x+Bar%C3%A7a%22", "name": "Real x Bar\u00e7a", "query": "%22Real+x+Bar%C3%A7a%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Wanessa", "name": "Wanessa", "query": "Wanessa", "promoted_content": null} ], "as_of": "2014-10-26T02:40:03Z", "locations": [{"name": "Belo Horizonte", "woeid": 455821}] }]

社交网络分析简介

社交网络理论是研究人、组织或群体如何在其网络中与他人互动的研究。 社交网络主要分为三种类型:

  • 以自我为中心的网络与单个节点或个人(例如,您和您所有的朋友和亲戚)相连。
  • 默认情况下,以社会为中心的网络是封闭网络。 此类网络的两个常用示例是教室中的儿童或组织内的工作人员。
  • 开放系统网络是边界线没有明确定义的网络,这使得这种类型的网络通常最难研究。 我们在本文中分析的社会政治网络类型是开放系统网络的一个例子。

社交网络被认为是复杂网络,因为它们显示出非平凡的拓扑特征,其元素之间的连接模式既不是纯规则的也不是纯随机的。

社会网络分析检查社会实体之间的关系结构。 这些实体通常是人,但也可能是社会团体、政治组织、金融网络、社区居民、国家公民等。 网络的实证研究在社会科学中发挥了核心作用,许多用于研究网络的数学和统计工具最早是在社会学中发展起来的。

建立网络

为了使用 Twitter 趋势主题创建网络,我定义了以下规则:

  • 每个城市都是网络中的一个顶点(即节点)。
  • 如果两个城市之间至少有一个共同的趋势主题,那么这些城市之间就存在边缘(即链接)。
  • 根据这两个城市之间共有的趋势主题的数量对每条边进行加权(即,两个城市共有的趋势主题越多,归因于它们之间的联系的权重就越大)。

例如,在 10 月 26 日,福塔莱萨和坎皮纳斯这两个城市有 11 个共同的趋势主题,因此当天的网络包括福塔莱萨和坎皮纳斯之间的一条边,权重为 11:

社交网络创建过程图解

此外,为了帮助权衡城市之间的关系,我还考虑了与选举本身无关的话题(前提是具有其他共同优先事项和利益的城市可能更倾向于分享相同的政治倾向)。

尽管趋势主题的顺序可能对分析有一定的意义,但为了简化概念验证,我选择忽略趋势主题列表中的主题顺序。

网络拓扑结构

网络拓扑本质上是网络中各种元素(链路、节点等)的排列。 对于我们正在分析的社交网络,网络拓扑在 3 天内没有发生显着变化,因为网络的节点(即 14 个城市)保持不变。 但是,可以在节点之间的链接权重中检测到差异,因为城市之间的共同趋势主题的数量在 3 天内有所不同,如下面的第 24 天与第 25 天的网络拓扑比较所示。

社交网络拓扑图示

使用 Twitter 趋势主题数据预测选举结果

为了帮助我们预测选举结果,我们不仅考虑了城市之间共同的趋势话题,而且还考虑了这些话题的内容与两个主要政党可能获得的支持之间的关系; 即,Partido dos Trabalhadores (PT) 和 Partido da Social Democracia Brasileira (PSDB)。

首先,我创建了一个单词和短语列表,这些单词和短语被认为表明积极倾向于或支持其中一方。 (诚​​然,填写这个列表是一项非常复杂的任务。在这个概念验证的背景下,我特意采用了一种简化的方法。如果有的话,这使得结果的口径更加有趣,因为一个更高度调整的术语列表和短语可能会进一步提高结果的准确性。)

然后,对于每个节点,我计算:

  • 包含表示支持 PT 的术语的链接数
  • 包含表示支持 PSDB 的术语的链接数量

再次以福塔泽拉市为例,我得出以下结论:

 Fortaleza['PT'] = 56 Fortaleza['PDSB'] = 37

因此,我们得出结论,福塔莱萨居民总体上偏爱 Partido dos Trabalhadores (PT)。

结果和结论

基于这种算法,分析产生的结果与实际选举结果惊人地相似,尤其是考虑到我们方法的一般简单性时。 以下是基于 Twitter Trend Topic 数据的预测结果与实际选举结果的对比(红色代表 Partido dos Trabalhadores,蓝色代表 Partido da Social Democracia Brasileira):

社交网络分析与数据挖掘

改进的科学严谨性,以及更复杂的算法和指标,无疑将进一步改善结果。

例如,这里有一些指标可用于推断节点的重要性或影响力,进而可以告知本文中描述的预测分析类型:

  • 节点中心性。 存在许多节点中心性度量,可用于帮助识别网络中最重要或最有影响力的节点。 例如,中介中心性认为一个节点非常重要,如果它在许多其他节点之间形成桥梁。 另一方面,特征值中心性基于一个节点的重要性,它基于链接到它的其他非常重要的节点的数量。

  • 聚类系数。 节点的聚类系数衡量节点的“邻居”相互连接的程度。 这是另一个与评估节点对其相邻节点的假定影响程度相关的度量。

  • 度中心性。 度中心性基于到节点的链接(即连接)的数量。 这是衡量网络中节点“重要性”的最简单方法之一。

但即使没有这种复杂程度,通过这种简单的概念验证所取得的结果也提供了使用 Twitter 趋势主题数据进行有效预测分析的令人信服的证明。 显然,在未来进一步进行社交媒体数据分析的潜力。


进一步阅读 Toptal 工程博客:

  • 使用 Python/NetworkX 进行图形数据科学