本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
这些区域有:features
字段中neptune_ml
属性值和 RDF 文字有不同的格式和数据类型。为了在机器学习中实现良好的性能,必须将这些值转换为称为数字编码功能.
Neptune ML 将特征提取和编码作为数据导出和数据处理步骤的一部分执行,如中所述Neptune ML 中的功能编码.
对于属性图数据集,导出过程会自动推断auto
字符串属性和包含倍数值的数字属性的功能。对于包含单个值的数字属性,它推断numerical
功能。对于日期属性,它推断datetime
功能。
如果要覆盖自动推断的功能规范,或者为属性添加存储桶数字、TF-IDF、FastText 或 SBERT 规范,则可以使用功能字段控制要素编码。
您只能使用features
字段来控制属性图数据的功能规格,而不是 RDF 数据的功能规范。
对于自由格式文本,Neptune ML 可以使用几种不同的模型将字符串属性值中的令牌序列转换为固定大小的实值矢量:
text_fasttext— 使用fastText
编码。对于使用 fastText 支持的五种语言中的一种而且仅使用其中一种的功能,建议使用这种编码。 text_sbert— 使用句子 BERT
(SBERT)编码模型。这是对文本的建议编码 text_fasttext
不支持。text_word2vec— 使用Word2Vec
最初发布的算法谷歌 对文本进行编码。Word2VEC 只支持英语。 text_tfidf— 使用术语频率 — 反向文档频率
用于编码文本的(TF-IDF)矢量器。TF-IDF 编码支持其他编码不支持的统计功能。
这些区域有:features
字段包含节点属性功能的 JSON 数组。数组中的对象可以包含以下字段:
目录
这些区域有:node
字段中features
这些区域有:node
字段指定要素折点的属性图标签。例如:
"node": "Person"
如果顶点有多个标签,请使用数组来包含它们。例如:
"node": ["Admin", "Person"]
这些区域有:edge
字段中features
这些区域有:edge
字段指定要素边的边类型。边缘类型由一个数组组成,其中包含源顶点的属性图标签、边的属性图标签和目标顶点的属性图标签。指定边要素时,必须提供所有三个值。例如:
"edge": ["User", "reviewed", "Movie"]
如果边类型的源或目标顶点具有多个标签,请使用另一个数组来包含它们。例如:
"edge": [["Admin", "Person"]. "edited", "Post"]
这些区域有:property
字段中features
使用属性参数指定由node
参数。例如:
"property" : "age"
可能的值type
功能字段
这些区域有:type
参数指定要定义的要素的类型。例如:
"type": "bucket_numerical"
可能的值type
参数
-
"auto"
— 指定 Neptune ML 应自动检测属性类型并应用正确的功能编码。网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的auto
功能也可以有可选项separator
字段中返回的子位置类型。请参阅 Neptune ML 中的自动功能编码。
-
"category"
— 此功能编码将属性值表示为许多类别之一。换句话说,该功能可以采用一个或多个离散值。一个category
功能也可以有可选项separator
字段中返回的子位置类型。请参阅 Neptune ML 中的分类功能。
-
"numerical"
— 此功能编码将数字属性值表示为连续间隔内的数字,其中 “大于” 和 “小于” 具有含义。一个
numerical
功能也可以有可选项norm
、imputer
, 和separator
字段之间没有不同。请参阅 Neptune ML 中的数字特征。
-
"bucket_numerical"
— 此功能编码将数字属性值分成一组桶或类别。例如,您可以将人们的年龄编码为 4 个桶:孩子(0-20 岁)、年轻成年人(20-40 岁)、中年(40-60 岁)和长者(60 岁及以上)。
一个
bucket_numerical
功能需要range
和bucket_cnt
字段,还可以选择包括imputer
和/或slide_window_size
字段中返回的子位置类型。请参阅 Neptune ML 中的存储桶数值功能。
-
"datetime"
— 此要素编码表示日期时间属性值,表示这些分类要素的数组:年、月、工作日和小时。这四个类别中的一个或多个可以使用
datetime_parts
参数。请参阅 Neptune ML 中的日期时间功能。
-
"text_fasttext"
— 此功能编码将由句子或自由格式文本组成的属性值转换为数字矢量fastText型号。它支持五种语言,即英语( en
), 中文zh
), 印地语 (hi
), 西班牙语 (es
) 和法语 (fr
)。对于这五种语言中任何一种语言的文本属性值,text_fasttext
是推荐的编码。但是,它无法处理同一句子包含一种以上语言的单词的情况。对于 fastText 支持的语言以外的其他语言,请使用
text_sbert
编码。如果你有许多属性值文本字符串长于(比如)120 个令牌,请使用
max_length
字段来限制每个字符串中的令牌数"text_fasttext"
编码。 -
"text_sbert"
— 此编码将文本属性值转换为数字矢量句子 BERT(SBERT)模型。Neptune 支持两种 SBERT 方法,即 text_sbert128
,如果您只指定,则默认值text_sbert
, 和text_sbert512
. 它们之间的区别在于文本属性中被编码的最大标记数量。这些区域有:text_sbert128
编码只对前 128 个令牌进行编码,而text_sbert512
对多达 512 个代币进行编码。因此,使用text_sbert512
可能需要比更长的处理时间text_sbert128
. 这两种方法都比慢text_fasttext
.这些区域有:
text_sbert
方法支持多种语言,并且可以对包含多种语言的句子进行编码。*
-
"text_word2vec"
— 此编码将文本属性值转换为数字矢量Word2Vec算法。它只支持英语。 -
"text_tfidf"
— 此编码使用术语频率 — 反向文档频率(TF-IDF)矢量器。 你定义的参数
text_tfidf
要素编码使用ngram_range
字段,min_df
字段中返回的子位置max_features
字段中返回的子位置类型。 -
"none"
— 使用none
类型导致不会发生任何要素编码。而是解析和保存原始属性值。使用
none
仅当您计划在自定义模型训练过程中执行自己的自定义功能编码时才能执行。
这些区域有:norm
领域
对于数字功能,此字段为必填字段。它指定了在数值上使用的标准化方法:
"norm": "min-max"
支持以下标准化方法:
-
“最小-最大”— 通过从每个值中减去最小值,然后除以最大值和最小值之间的差值来标准化每个值。
-
“标准”— 通过将每个值除以所有值的总和来标准化每个值。
-
“无”— 在编码过程中不要对数值进行标准化。
请参阅 Neptune ML 中的数字特征。
这些区域有:language
领域
语言字段指定文本属性值中使用的语言。它的用法取决于文本编码方法:
-
适用于text_fasttext编码时,此字段为必填字段,且必须指定以下语言之一:
en
(简体中文)zh
(中文)hi
(印地语)es
(西班牙语)fr
(法语)
适用于text_sbert编码时,不使用此字段,因为 SBERT 编码是多语言的。
-
适用于text_word2vec编码,此字段为可选项,因为
text_word2vec
仅支持英语。如果存在,它必须指定英语语言模型的名称:"language" : "en_core_web_lg"
适用于text_tfidf编码时,不使用此字段。
这些区域有:max_length
领域
这些区域有:max_length
字段为可选项text_fasttext
要素,其中指定输入文本要素中将要编码的标记的最大数量。输入长度超过的文本max_length
被截断。例如,将 max_length 设置为 128 表示文本序列中第 128 位之后的任何标记都将被忽略:
"max_length": 128
这些区域有:separator
领域
此字段可选择与category
、numerical
和auto
功能。它指定了一个可用于将属性值拆分为多个类别值或数值的字符:
"separator": ";"
只能使用separator
字段,当属性将多个分隔值存储在单个字符串中时,例如"Actor;Director"
要么"0.1;0.2"
.
这些区域有:range
领域
此字段为必填字段bucket_numerical
功能。它以格式指定了要划分为存储桶的数值范围[
:lower-bound
, upper-bound
]
"range" : [20, 100]
如果属性值小于下限,则将其分配给第一个存储桶,或者如果它大于上限,则将其分配给最后一个存储桶。
请参阅 Neptune ML 中的存储桶数值功能。
这些区域有:bucket_cnt
领域
此字段为必填字段bucket_numerical
功能。它指定了由range
参数应分为:
"bucket_cnt": 10
请参阅 Neptune ML 中的存储桶数值功能。
这些区域有:slide_window_size
领域
此字段可选择与bucket_numerical
将值分配给多个存储桶的功能:
"slide_window_size": 5
幻灯片窗口的工作方式是 Neptune ML 占用窗口大小s
然后转换每个数值v
属性的范围从 v - s/2
通过 v + s/2
. 然后,该值将分配给范围重叠的每个存储桶。
请参阅 Neptune ML 中的存储桶数值功能。
这些区域有:imputer
领域
此字段可选择与numerical
和bucket_numerical
功能用于提供用于填写缺失值的估算技术:
"imputer": "mean"
支持的归算技术有:
"mean"
"median"
"most-frequent"
如果不包括 imputer 参数,则当遇到缺少值时,数据预处理将停止并退出。
请参阅 Neptune ML 中的数字特征 和 Neptune ML 中的存储桶数值功能。
这些区域有:max_features
领域
可选择使用此字段text_tfidf
指定编码的最大术语数的功能:
"max_features": 100
如果设置为 100,TF-IDF 矢量器只对 100 个最常见的术语进行编码。未包含时的默认值max_features
为 5000。
请参阅 Neptune ML 中的文本要素的 TF-IDF 编码。
这些区域有:min_df
领域
可选择使用此字段text_tfidf
用于指定要编码的术语的最低文档频率的功能:
"min_df": 5
设置为 5 表示术语必须在至少 5 个不同的属性值中出现才能进行编码。
未包含min_df
参数为2
.
请参阅 Neptune ML 中的文本要素的 TF-IDF 编码。
这些区域有:ngram_range
领域
可选择使用此字段text_tfidf
功能,用于指定单词或标记序列应被视为可能编码的单个术语的大小:
"ngram_range": [2, 4]
值[2, 4]
规定应将 2、3 和 4 个单词的序列视为潜在的单个术语。
如果没有明确设置,则默认值ngram_range
是[1, 1]
,这意味着只有单个单词或标记被视为要编码的术语。
请参阅 Neptune ML 中的文本要素的 TF-IDF 编码。
这些区域有:datetime_parts
领域
可选择使用此字段datetime
用于指定日期时间值的哪些部分要对其进行分类编码的功能:
"datetime_parts": ["weekday", "hour"]
如果您不包含datetime_parts
,默认情况下,Neptune ML 对日期时间值的年、月、工作日和小时部分进行编码。值["weekday", "hour"]
表示只有工作日和小时的日期时间值应该在要素中进行绝对编码。
如果其中一个部件在训练集中没有多个唯一值,则不会对其进行编码。
请参阅 Neptune ML 中的日期时间功能。