解释数据框分析 API

编辑

解释数据框分析配置。

请求

编辑

GET _ml/data_frame/analytics/_explain

POST _ml/data_frame/analytics/_explain

GET _ml/data_frame/analytics/<data_frame_analytics_id>/_explain

POST _ml/data_frame/analytics/<data_frame_analytics_id>/_explain

先决条件

编辑

需要以下权限

  • 集群:monitor_mlmachine_learning_user 内置角色授予此权限)
  • 源索引:readview_index_metadata

描述

编辑

此 API 提供对现有或尚未创建的数据框分析配置的解释。 提供以下解释:

  • 哪些字段包含在分析中或未包含在分析中以及原因,
  • 估计需要多少内存。 该估计值可用于在稍后决定 model_memory_limit 设置的适当值时使用。

如果您的对象字段或通过源过滤排除的字段,则不会包含在解释中。

路径参数

编辑
<data_frame_analytics_id>
(可选,字符串)数据框分析作业的标识符。

请求主体

编辑

创建数据框分析作业 中所述的数据框分析配置。 请注意,在此 API 的上下文中不需要提供 iddest

响应主体

编辑

API 返回包含以下内容的响应:

field_selection

(数组)一个对象数组,用于解释每个字段的选择,按字段名称排序。

field_selection 对象的属性
is_included
(布尔值)是否选择该字段包含在分析中。
is_required
(布尔值)是否需要该字段。
feature_type
(字符串)此字段用于分析的特征类型。可能是 categoricalnumerical
mapping_types
(字符串)字段的映射类型。
name
(字符串)字段名称。
reason
(字符串)未选择将字段包含在分析中的原因。
memory_estimation

(对象)包含内存估计值的对象。

memory_estimation 的属性
expected_memory_with_disk
(字符串)假设在数据框分析期间允许溢出到磁盘的估计内存使用量。expected_memory_with_disk 通常小于 expected_memory_without_disk,因为使用磁盘可以限制执行数据框分析所需的主内存。
expected_memory_without_disk
(字符串)假设整个数据框分析应在内存中发生(即不溢出到磁盘)的估计内存使用量。

示例

编辑
resp = client.ml.explain_data_frame_analytics(
    source={
        "index": "houses_sold_last_10_yrs"
    },
    analysis={
        "regression": {
            "dependent_variable": "price"
        }
    },
)
print(resp)
const response = await client.ml.explainDataFrameAnalytics({
  source: {
    index: "houses_sold_last_10_yrs",
  },
  analysis: {
    regression: {
      dependent_variable: "price",
    },
  },
});
console.log(response);
POST _ml/data_frame/analytics/_explain
{
  "source": {
    "index": "houses_sold_last_10_yrs"
  },
  "analysis": {
    "regression": {
      "dependent_variable": "price"
    }
  }
}

API 返回以下结果

{
  "field_selection": [
    {
      "field": "number_of_bedrooms",
      "mappings_types": ["integer"],
      "is_included": true,
      "is_required": false,
      "feature_type": "numerical"
    },
    {
      "field": "postcode",
      "mappings_types": ["text"],
      "is_included": false,
      "is_required": false,
      "reason": "[postcode.keyword] is preferred because it is aggregatable"
    },
    {
      "field": "postcode.keyword",
      "mappings_types": ["keyword"],
      "is_included": true,
      "is_required": false,
      "feature_type": "categorical"
    },
    {
      "field": "price",
      "mappings_types": ["float"],
      "is_included": true,
      "is_required": true,
      "feature_type": "numerical"
    }
  ],
  "memory_estimation": {
    "expected_memory_without_disk": "128MB",
    "expected_memory_with_disk": "32MB"
  }
}