JSON 训练数据配置文件的结构 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JSON 训练数据配置文件的结构

培训配置文件是指导出过程中保存的 CSV 文件nodes/edges/文件夹。

下的每个文件nodes/存储有关具有相同属性图节点标签的节点的信息。节点文件中的每一列都存储节点 ID 或节点属性。文件的第一行包含一个标头,该标头指定~id或每列的属性名称。

下的每个文件edges/存储有关具有相同属性图边缘标签的节点的信息。节点文件中的每一列都存储源节点 ID、目标节点 ID 或 edge 属性。文件的第一行包含一个标头,指定~from~to,或者每列的属性名称。

训练数据配置文件包含三个顶级元素:

{ "version" : "v2.0", "query_engine" : "gremlin", "graph" : [ ... ] }
  • version— (字符串) 正在使用的配置文件的版本。

  • query_engine— (字符串) 用于导出图表数据的查询语言。目前,只有 “gremlin” 有效。

  • graph—(JSON 数组)列出了一个或多个配置对象,其中包含将要使用的每个节点和边的模型参数。

    图表数组中的配置对象具有下一节介绍的结构。

中列出的配置对象的内容graph排列

中的配置对象graph数组可以包含三个顶级节点:

{ "edges" : [ ... ], "nodes" : [ ... ], "warnings" : [ ... ], }
  • edges—(JSON 对象数组)每个 JSON 对象都指定一组参数,用于定义在模型处理和训练期间如何处理图表中的边缘。这仅与 Gremlin 引擎一起使用。

  • nodes—(JSON 对象数组)每个 JSON 对象都指定一组参数,以定义在模型处理和训练期间如何处理图表中的节点。这仅与 Gremlin 引擎一起使用。

  • warnings—(JSON 对象数组)每个对象都包含在数据导出过程中生成的警告。

中列出的边缘配置对象的内容edges排列

中列出的边缘配置对象edges数组可以包含以下顶级字段:

{ "file_name" : "(path to a CSV file)", "separator" : "(separator character)", "source" : ["(column label for starting node ID)", "(starting node type)"], "relation" : ["(column label for the relationship name)", "(the prefix name for the relationship name)"], "dest" : ["(column label for ending node ID)", "(ending node type)"], "features" : [(array of feature objects)] "labels" : [(array of label objects)] }
  • file_name— 一个字符串,用于指定 CSV 文件的路径,该文件存储有关具有相同属性图标签的边缘的信息。

    该文件的第一行包含列标签的标题行。

    前两个列标签是~from~to. 第一栏(~from列)存储边缘起始节点的 ID,第二个节点(~to列)存储边缘的结束节点的 ID。

    标题行中的剩余列标签为其余每列指定值已导出到该列的 edge 属性的名称。

  • separator— 包含分隔符的字符串,用于分隔该 CSV 文件中的列。

  • source— 包含两个指定边缘起始节点的字符串的 JSON 数组。第一个字符串包含存储起始节点 ID 的列的标头名称。第二个字符串指定节点类型。

  • relation— 包含两个指定边缘关系类型的字符串的 JSON 数组。第一个字符串包含关系名称 (relname) 存储在中。第二个字符串包含关系名称的前缀 (prefixname)。

    完整的关系类型由两个字符串组成,两个字符串之间有连字符,如下所示:prefixname-relname.

    如果第一个字符串为空,则所有边都具有相同的关系类型,即prefixname字符串。

  • dest— 包含两个指定边缘结束节点的字符串的 JSON 数组。第一个字符串包含存储节点 ID 的列的标头名称。第二个字符串指定节点类型。

  • features— 属性价值要素对象的 JSON 数组。每个属性值要素对象包含以下字段:

    • 功能— 一个由三个字符串组成的 JSON 数组。第一个字符串包含包含属性值的列的标题名称。第二个字符串包含功能名称。第三个字符串包含要素类型。

    • 规范— (可选) 指定要应用于属性值的标准化方法。

  • labels— 对象的 JSON 数组。每个对象都定义了边缘的目标特征,并指定训练和验证阶段应采取的边的比例。每个对象包含以下字段:

    • 标签— 由两个字符串组成的 JSON 数组。第一个字符串包含包含目标要素属性值的列的标题名称。第二个字符串指定以下目标任务类型之一:

      • "classification"— 边缘分类任务。由第一个字符串标识的列中提供的属性值label数组被视为分类值。对于边缘分类任务,中的第一个字符串label数组不能为空。

      • "regression"— 边缘回归任务。由第一个字符串标识的列中提供的属性值label数组被视为数值。对于边缘回归任务,中的第一个字符串label数组不能为空。

      • "link_prediction"— 链接预测任务。不需要属性值。对于链接预测任务,中的第一个字符串label忽略数组。

中列出的节点配置对象的内容nodes排列

中列出的节点配置对象nodes数组可以包含以下字段:

{ "file_name" : "(path to a CSV file)", "separator" : "(separator character)", "node" : ["(column label for the node ID)", "(node type)"], "features" : [(feature array)], "labels" : [(label array)], }
  • file_name— 一个字符串,用于指定 CSV 文件的路径,该文件存储有关具有相同属性图标签的节点的信息。

    该文件的第一行包含列标签的标题行。

    第一列标签是~id,以及第一列(~id列)存储节点 ID。

    标题行中的其余列标签为剩余的每列指定值已导出到该列的节点属性的名称。

  • separator— 包含分隔符的字符串,用于分隔该 CSV 文件中的列。

  • node— 包含两个字符串的 JSON 数组。第一个字符串包含存储节点 ID 的列的标头名称。第二个字符串指定图表中的节点类型,该类型与节点的属性图标签相对应。

  • features— 节点要素对象的 JSON 数组。请参阅中列出的要素对象的内容features节点或边缘的数组

  • labels— 节点标签对象的 JSON 数组。请参阅节点中列出的节点标签对象的内容labels排列

中列出的要素对象的内容features节点或边缘的数组

节点中列出的节点要素对象features数组可以包含以下顶级字段:

  • feature— 一个由三个字符串组成的 JSON 数组。第一个字符串包含包含要素属性值的列的标题名称。第二个字符串包含功能名称。

    第三个字符串包含要素类型。中列出了有效功能类型。可能的值type要素字段.

  • norm— 对于数字要素,此字段是必填字段。它指定了在数值上使用的标准化方法。有效值为"none""min-max"和 “标准”。有关更多信息,请参阅 这些区域有:norm领域

  • language— 此字段为必填字段。text_word2vec功能。它指定用于编码属性值字符串的语言模型的名称。目前,Neptune ML 只支持"en_core_web_lg"(对于英语)。

    请参阅Neptune ML 中的文本 Word2VEC 功能

  • separator— 此字段可以选择用于categorynumericalauto功能。它指定了一个字符,可用于将属性值拆分为多个类别值或数值。

    请参阅这些区域有:separator领域

  • range— 此字段为必填字段。bucket_numerical功能。它指定了要划分为存储桶的数值范围。

    请参阅这些区域有:range领域

  • bucket_cnt— 此字段为必填字段。bucket_numerical功能。它指定了由range参数应分成。

    请参阅Neptune ML 中的存储桶数值功能

  • slide_window_size— 此字段可以选择用于bucket_numerical为多个存储桶分配值的功能。

    请参阅这些区域有:slide_window_size领域

  • imputer— 此字段可以选择用于numericalbucket_numerical, 和datetime功能以提供用于填写缺失值的估算技术。支持的归算技术有:"mean""median", 和"most_frequent".

    请参阅这些区域有:imputer领域

  • max_features— 此字段可以选择由text_tfidf指定最大编码术语数的功能。

    请参阅这些区域有:max_features领域

  • min_df— 此字段可以选择由text_tfidf用于指定要编码的术语的最低文档频率的功能

    请参阅这些区域有:min_df领域

  • ngram_range— 此字段可以选择由text_tfidf功能,用于指定一系列单词或标记数量,将其视为可能要编码的单个术语

    请参阅这些区域有:ngram_range领域

  • datetime_parts— 此字段可以选择由datetime功能,用于指定日期时间值的哪些部分要对其进行明确编码。

    请参阅这些区域有:datetime_parts领域

节点中列出的节点标签对象的内容labels排列

节点中列出的标签对象labelsarray 定义了节点目标功能,并指定训练、验证和测试阶段将使用的节点比例。每个对象可以包含以下字段:

{ "label" : ["(column label for the target feature property value)", "(task type)"], "split_rate" : [(training proportion), (validation proportion), (test proportion)], "separator" : "(separator character for node-classification category values)", }
  • label— 包含两个字符串的 JSON 数组。第一个字符串包含存储要素属性值的列的标题名称。第二个字符串指定目标任务类型,可以是:

    • "classification"— 节点分类任务。指定列中的属性值用于创建分类要素。

    • "regression"— 节点回归任务。指定列中的属性值用于创建数字要素。

  • split_rate— 包含 0 到 1 之间的三个数字的 JSON 数组,这些数字加起来为 1,表示训练、验证和测试阶段将分别使用的节点比例的估计值。请参阅split_rate

  • separator— 包含分隔符的字符串,用于分隔分类任务的分类要素值。

注意

如果没有为边缘和节点提供标签对象,则自动假定该任务是链接预测,并且边随机分割为 90% 进行训练,10% 用于验证。