1. GES服务说明
具体可以参考官网 GES,根据我的学习了解,GES提供了一种以图形化形式做数据分析的工具,也就是说,按照要求输入结构化数据,你可以在平台上看见数据之间是怎样联系的。本文就以实验中使用的点-边数据类型来进行分析。
2. 元数据分析
创建图的过程中需要提供三个文件,点数据vertex.csv
,边数据edge.csv
,映射模板schema.xml
。
2.1 点数据
在GES服务中,我们使用面向对象的思想,对于需要进行分析的数据都抽象为一个对象,每个对象拥有各自的属性,不同种类对象的属性不同,在实验中给出的电影喜好数据中,点数据即对象,存在同一个vertex.csv
文件中,我们可以看作有5个类,分别对应movie,user,genre,actor,director(虽然在GES中是以label表示)。
每一条数据的第一列是id,第二列是label,剩下其他列是一些附加属性,在GES中,每一个id对应一个点(唯一),点与点之间通过边数据联系起来,label用于筛选我们的分析目标,比如我们需要分析某个人喜欢的电影,那么这个人对应一个点,在这个点包括的所有边中,按照label筛选出另一端点为电影的点,那么按照分数排序就可以得到用户最喜欢的某些电影了。
2.2 边数据
边数据主要描述点与点之间的关系,在edge.csv
文件中,一共有like,friends,hasGener,hasActor,hasDirector五种。like对应user-movie,friends对应user-user,hasGener对应movie-gener,hasActor对应movie-actor,hasDirector对应movie-director。也就是说上面提到的根据某个用户喜欢某个电影来进行推荐,就是从一个点出发,找到所有边(label为movie),再加上一些其他的算法计算分数,就形成了最终推荐的结果。
推荐结果如下
2.3 映射模板
我们将不同类型的点数据都保存在同一csv文件中,因此需要用映射模板解析数据,解析的形式就是上面描述的按照label分类,不同label的数据包括不同的属性,属性有其各自的数据格式。
<?xml version="1.0" encoding="ISO-8859-1"?>
<PMML version="3.0"
xmlns="http://www.dmg.org/PMML-3-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema_instance" >
<labels>
<label name="like">
<