中的features字段neptune_ml - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

中的features字段neptune_ml

属性值和 RDF 文字有不同的格式和数据类型。为了在机器学习中获得良好的性能,必须将这些值转换为称为特征的数字编码。

作为数据导出和数据处理步骤的一部分,Neptune ML 执行特征提取和编码,如中所述Neptune ML 中的特征编码

对于属性图数据集,导出过程会自动推断字符串属性和包含多个值的数值属性的要auto素。对于包含单个值的数值属性,它会推断出numerical特征。对于日期属性,它可以推断出datetime特征。

如果您想覆盖自动推断的功能规范,或者为属性添加存储段数字、TF-IDF 或 SBERT 规范,则可以使用功能字段控制要素编码。 FastText

注意

您只能使用该features字段来控制属性图数据的功能规范,不能控制 RDF 数据的功能规范。

对于自由格式的文本,Neptune ML 可以使用多种不同的模型将字符串属性值中的标记序列转换为固定大小的实值向量:

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 应自动检测属性类型并应用正确的要素编码。一个auto要素也可以有一个可选separator字段。

    请参阅Neptune ML 中的自动特征编码

  • "category"— 此特征编码将属性值表示为多个类别之一。换句话说,该要素可以采用一个或多个离散值。一个category要素也可以有一个可选separator字段。

    请参阅Neptune ML 中的分类特征

  • "numerical"— 此特征编码将数字属性值表示为连续间隔内的数字,其中 “大于” 和 “小于” 具有含义。

    numerical要素也可以有可选的normimputer、和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"— 此功能编码使用 FastT ext 模型将由句子或自由格式文本组成的属性值转换为数字向量。它支持五种语言,即英语 (en)、中文 (zh)、印地语 (hi)、西班牙语 (es) 和法语 (fr)。对于任何一种语言的文本属性值,推荐使用text_fasttext这五种语言的编码。但是,它无法处理同一个句子包含多种语言的单词的情况。

    对于 FastText 支持的语言以外的其他语言,请使用text_sbert编码。

    如果您有许多属性值文本字符串的长度超过(比如)120 个标记,请使用该max_length字段限制"text_fasttext"编码的每个字符串中的标记数量。

    请参阅Neptune ML 中文本属性值的@@ fast Text 文本编码

  • "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*方法支持多种语言,并且可以对包含多种语言的句子进行编码。

    请参阅Neptune ML 中文本特征的句子 BERT (SBERT) 编码

  • "text_word2vec"— 此编码使用 Word2Vec 算法将文本属性值转换为数字向量。它只支持英语。

    请参阅Neptune ML 中文本要素的 Word2Vec 编码

  • "text_tfidf"— 此编码使用术语频率—反向文档频率 (TF-IDF) 矢量器将文本属性值转换为数字向量。

    您可以使用字段、字段和ngram_range字段定义text_tfidf要素编码的max_features参数。min_df

    请参阅Neptune ML 中文本要素的 TF-IDF 编码

  • "none"— 使用该none类型会导致不发生任何特征编码。取而代之的是解析和保存原始属性值。

    none仅在计划将自己的自定义特征编码作为自定义模型训练的一部分时使用。

norm领域

此字段是按。它指定了一种用于数值的标准化方法:

"norm": "min-max"

支持对使用以下标准化方法:

  • “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领域

此字段可选择与categorynumericalauto要素一起使用。它指定了一个字符,该字符可用于将属性值拆分为多个类别值或数值:

"separator": ";"

仅当该属性在单个字符串中存储多个分隔值(例如"Actor;Director"或)时才使用该字separator"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领域

此字段可选择与numericalbucket_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为 5,000。

请参阅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 中的日期时间功能