用图表分析欧洲电视网歌曲大赛
#database #算法 #memgraph #graphdatabse

介绍

在2020年欧洲电视网歌曲大赛取消之后,我们比以往任何时候都更加兴奋,但我们中间的极客不能只等一下!
欧洲电视网每年都会为我们带来奢华的服装,醒目的歌曲和大胆的舞蹈动作。在闪闪发光和彩虹的表面下,在互连数据集合中隐藏了一个复杂的地缘政治,竞争和战术的故事。

我们将在图形分析的帮助下尝试解开战略投票,邻居偏好和政治竞争。

数据模型

我们的数据集很简单。有51个Country节点具有以下属性:namecapitallatlngflag。属性latlng代表一个国家首都的坐标,对于在地图上可视化数据至关重要。 flag属性也是如此。

每年的获胜者和亚军分别连接到WinnerRunnerUp节点,其中包含属性yearpoints的边缘IS

Country节点(如果它们是邻近的国家 /地区)与BORDERS边缘连接。VOTE_JURYVOTE_TELEVOTE边缘具有属性yearpointsVOTE_JURY边缘代表了每个国家的专业陪审团给出的许多积分,而VOTE_TELEVOTE边缘代表了1997年引入的公众投票。到目前为止,投票系统已更改了几次陪审团和公众平等分开。

使用Memgraph Lab可视化图

您可以在Memgraph Lab和Memgraph Playground Online上找到Eurovision Song竞赛数据集。
Memgraph Lab是一种集成开发环境,用于导入数据,开发,调试和配置文件数据库查询并可视化查询结果。只需转到数据集选项卡并加载 Eurovision投票结果数据集。

可视化memgraph中的数据非常简单。 memgraph Lab自动检测具有数值latlng属性的节点,并将其显示在地图上。
您可以通过在Memgraph Lab中使用样式编辑器来将地图定型为您的喜好。要了解有关样式编辑器的更多信息,请看一下this tutorial
每个国家节点还具有用于显示图像的flag属性。您可以使用以下样式脚本在地图上显示标志:

@NodeStyle {
  size: 100
  border-width: 2
  border-color: #ffffff
  shadow-color: #bab8bb
  shadow-size: 6
}

@NodeStyle Greater(Size(Labels(node)), 0) {
  label: Format(":{}", Join(Labels(node), " :"))
}

@NodeStyle HasLabel(node, "Country") {
  color: #dd2222
  color-hover: Darker(#dd2222)
  color-selected: #dd2222
}

@NodeStyle HasProperty(node, "name") {
  label: AsText(Property(node, "name"))
}

@EdgeStyle {
  width: 10
  label: Type(edge)
  color: gray
}

@NodeStyle {
  image-url: Property(node, "flag")
}

要获取图形,请运行以下Cypher查询:

MATCH (c:Country) 
RETURN c;

如果一切正常,您应该得到类似于下面的可视化。

数据分析

一些国家在制作好音乐(或与邻居保持牢固的关系)方面比其他国家更成功。让我们检查哪个国家是1975年以来最胜利的国家:

MATCH (c:Country)-[i:IS]-(w:Winner) 
RETURN c.name AS Country, count(i) AS Wins 
ORDER BY Wins DESC;

有趣的是,尽管我们的数据集不完整,但爱尔兰和瑞典仍然处于顶峰。

在欧洲电视网上排名第二,就像在奥运会上赢得了奖牌。让我们检查欧洲电视网的最大亚军:

MATCH (c:Country)-[i:IS]-(r:RunnerUp) 
RETURN c.name AS Country, count(i) AS RunnerUp
ORDER BY RunnerUp DESC;

似乎英国是历史上最著名的亚军。

,但这并不全是赢!支持您喜欢的歌曲和投票有特别的满意。

有些国家在预测赢家方面比其他国家更好,还是有些国家的品味更好?让我们检查哪些国家在整个历史上给获胜者的分数最多:

MATCH (c:Country)-[vote:VOTE_JURY]->(: Country)-[i:IS]->(w:Winner)
WHERE vote.points = 12 AND vote.year = i.year
WITH c, COUNT(vote.points) AS points
RETURN c.name AS Country, points
ORDER BY points DESC 
LIMIT 10;

但事实证明这不是好或坏的问题。当我们查看这些年来没有给赢家任何观点的国家清单时:

MATCH (c:Country)-[v:VOTE_JURY]->(:Country)-[i:IS]->(w:Winner)
WHERE v.points = 0 AND v.year=i.year
RETURN c.name AS Country, count(v) AS WasWrong
ORDER BY WasWrong DESC
LIMIT 10;

英国再次处于我们的榜首。

那么,欧洲电视网投票到底是什么?真的有一首醒目的歌曲才能赢得什么,还是还有更多?也许类似的语言或熟悉的文化发挥作用。
让我们检查谁是谁通过研究哪个国家彼此交流最多要点的幻想:

MATCH (c1:Country)-[v1:VOTE_JURY]->(c2:Country), (c1: Country)<-[v2:VOTE_JURY]-(c2:Country)  
WHERE v1.year = v2.year
WITH c1.name AS Country1, c2.name AS Country2, SUM(v1.points) + sum(v2.points) AS Points
RETURN Country1, Points, Country2
ORDER BY Points DESC;

关系是对称的,因此对于每对,都有两个结果。在两个结果中,计算的点数都是相同的,但国家转换位置。
毫不奇怪,大多数爱在邻居之间交换!

让我们检查一下邻居多年来如何影响赢家的选择:

MATCH (w: Winner)-[i:IS]-(c1: Country)-[b:BORDERS]-(c2: Country), 
      (c1: Country)<-[v:VOTE_JURY]-(c2: Country)
WHERE i.year = v.year
WITH c1.name AS Country, sum(v.points) AS neighbour_points, i.points AS total_points
RETURN Country, round(1.0 * neighbour_points/total_points * 100) as Percent_of_neighbour_votes 
ORDER BY Percent_of_neighbour_votes DESC;

看起来法国与邻居有着惊人的关系。但这是关于质量还是数量?

首先,让我们找出谁有最多的邻居参加比赛:

MATCH (c1:Country)-[:BORDERS]-(c2:Country)
WITH DISTINCT c2.name AS Neighbor, c1.name as Country
RETURN Country, COUNT(Neighbor) AS Number_of_neighbors
ORDER BY Number_of_neighbors DESC LIMIT 10;
在这种情况下,

似乎赢了。法国,俄罗斯和德国的邻居数量最多,对他们的胜利影响最大。

让我们结束一个具体的例子,说明地理位置对投票有多大影响。俄罗斯是2008年的赢家,但是如果禁止投票给邻居,将获得多少积分?

MATCH (c1:Country)-[b:BORDERS]-(c2:Country {name: 'Russia'}),
      (c1:Country)-[v:VOTE_JURY {year: 2008}]->(c2:Country)
WITH sum(v.points) AS border_vote, c2.name AS name
MATCH (:Country)-[v:VOTE_JURY {year: 2008}]->(c:Country {name: 'Russia'})
RETURN c.name AS Country, sum(v.points) AS Points, sum(v.points)-border_vote AS Points_without_neighbours;

这是一个重要的差异!

结论

还有很多要解开和探索的,但是随着2021总决赛即将到来,是时候停止分析了。在发现今年的赢家之后,我们将更新数据集,并在明年进行新的,更令人兴奋的分析。
在此之前,有关如何使用图形分析分析网络数据的更多有趣示例,请访问Memgraph Playground并查看其中一个可用的教程。您也可以下载B Memgraph Lab并在本地尝试。

现在放松并享受所有欧洲电视网!
“晚安,欧洲!和澳大利亚早上好!”