本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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" : ["
"features" : [(column label for the node ID)
", "(node type)
"],(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_fasttext编码,此字段为必填字段,且必须指定以下语言之一:
en
(英语)zh
(中文)hi
(印地语)es
(西班牙语)fr
(法语)
但是,
text_fasttext
一次不能处理一种语言。 适用于text_sbert编码时,不使用此字段,因为 SBERT 编码是多语言的。
-
适用于text_word2vec编码,此字段为可选项,因为
text_word2vec
仅支持英语。如果存在,它必须指定英语语言模型的名称:"language" : "en_core_web_lg"
适用于tfidf编码时,不使用此字段。
-
-
max_length
— 此字段为可选项text_fasttext要素,其中指定输入文本要素中将要编码的标记的最大数量。之后输入文本max_length
将忽略已到达。例如,将 max_length 设置为 128 表示文本序列中第 128 位之后的任何标记都将被忽略。 -
separator
— 此字段可以选择用于category
、numerical
和auto
功能。它指定了可用于将属性值拆分为多个类别值或数值的字符。请参阅 这些区域有:separator领域。
-
range
— 此字段为必填字段bucket_numerical
功能。它指定了要划分为存储桶的数值范围。请参阅 这些区域有:range领域。
-
bucket_cnt
— 此字段为必填字段bucket_numerical
功能。它指定了由range
参数应该分成。请参阅 Neptune ML 中的存储桶数值功能。
-
slide_window_size
— 此字段可以选择用于bucket_numerical
为多个存储桶分配值的功能。 -
imputer
— 此字段可以选择用于numerical
、bucket_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
功能,用于指定日期时间值的哪些部分要对其进行明确编码。
节点中列出的节点标签对象的内容labels
排列
节点中列出的标签对象labels
array 定义了节点目标功能,并指定训练、验证和测试阶段将使用的节点比例。每个对象可以包含以下字段:
{ "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% 用于验证。