K近邻

更新时间:2024-05-17 05:18:30

K近邻算法进行分类的原理是针对预测表的每行数据,从训练表中选择与其距离最近的K条记录,将这K条记录中类别数量最多的类,作为该行的类别。

组件配置

您可以使用以下任意一种方式,配置K近邻组件参数。

方式一:可视化方式

Designer工作流页面配置组件参数。

页签

参数

描述

页签

参数

描述

字段设置

选择训练表特征列

用于训练的特征列。

选择训练表的标签列

训练的目标列。

选择预测表特征列

如果未配置该参数,则表示其与训练表特征列相同。

产出表附加ID

用于标识该列的身份,从而获得某列对应的预测值。系统默认使用预测表特征列,作为附加ID列。

输入表数据是稀疏格式

使用KV格式表示稀疏数据。

kv间的分隔符

默认为英文逗号(,)。

keyvalue的分隔符

默认为英文冒号(:)。

参数设置

近邻个数

默认值为100。

执行调优

核心数

默认系统自动分配。

内存数

默认系统自动分配。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本

PAI -name knn
    -DtrainTableName=pai_knn_test_input
    -DtrainFeatureColNames=f0,f1
    -DtrainLabelColName=class
    -DpredictTableName=pai_knn_test_input
    -DpredictFeatureColNames=f0,f1
    -DoutputTableName=pai_knn_test_output
    -Dk=2;

参数

是否必选

描述

默认值

参数

是否必选

描述

默认值

trainTableName

训练表的表名。

trainFeatureColNames

训练表的特征列名。

trainLabelColName

训练表的标签列名。

trainTablePartitions

训练表中,参与训练的分区。

所有分区

predictTableName

预测表的表名。

outputTableName

输出表的表名。

predictFeatureColNames

预测表的特征列名。

trainFeatureColNames相同

predictTablePartitions

预测表中,参与预测的分区。

所有分区

appendColNames

输出表中,附加预测表的列名。

predictFeatureColNames相同

outputTablePartition

输出表的分区。

全表

k

最近邻的数量。取值范围为1~1000。

100

enableSparse

输入表数据是否为稀疏格式。取值范围为{true,false}

false

itemDelimiter

如果输入表数据为稀疏格式,则KV对之间的分隔符。

英文逗号(,)

kvDelimiter

如果输入表数据为稀疏格式,则keyvalue之间的分隔符。

英文冒号(:)

coreNum

节点数量。与memSizePerCore搭配使用,取值范围为1~20000。

系统自动计算

memSizePerCore

单个节点的内存,取值范围为1024 MB~64*1024 MB。

系统自动计算

lifecycle

输出表的生命周期。

示例

  1. 生成训练数据。

    create table pai_knn_test_input as
    select * from
    (
      select 1 as f0,2 as f1, 'good' as class
      union all
      select 1 as f0,3 as f1, 'good' as class
      union all
      select 1 as f0,4 as f1, 'bad' as class
      union all
      select 0 as f0,3 as f1, 'good' as class
      union all
      select 0 as f0,4 as f1, 'bad' as class
    )tmp;
  2. 使用PAI命令,提交K近邻算法组件参数。

    pai -name knn
        -DtrainTableName=pai_knn_test_input
        -DtrainFeatureColNames=f0,f1
        -DtrainLabelColName=class
        -DpredictTableName=pai_knn_test_input
        -DpredictFeatureColNames=f0,f1
        -DoutputTableName=pai_knn_test_output
        -Dk=2;
  3. 查看训练结果。K近邻示例结果其中:

    • f0f1表示结果附件列。

    • prediction_result表示分类结果。

    • prediction_score表示分类结果对应的概率。

    • prediction_detail表示最近的K个分类及其对应的概率。

  • 本页导读 (1)
  • 组件配置
  • 方式一:可视化方式
  • 方式二:PAI命令方式
  • 示例