聚类模型评估

基于原始数据和聚类结果,评估聚类模型的优劣性,从而输出评估指标。

使用限制

仅原PAI-Studio平台支持查看该组件的可视化报告。

背景信息

评估指标Calinski-Harabasz又称VRC(Variance Ratio Criterion),其计算公式如下。VRC公式

参数

描述

SSB

聚类之间的方差,定义如下。SSB其中:

  • k:聚类中心点的数量。

  • mi:聚类的中心点。

  • m:输入数据的均值。

SSW

聚类内的方差,定义如下。SSW其中:

  • k:聚类中心点的数量。

  • x:数据点。

  • ci:第i个聚类。

  • mi:聚类的中心点。

N

记录的总数量。

k

聚类中心点的数量。

组件配置

您可以使用以下任意一种方式,配置聚类模型评估组件参数。

方式一:可视化方式

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

页签

参数

描述

字段设置

参与评估列

参与评估的列名,该参数必须与模型存储的特征列保持一致。

输入为稀疏格式

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

kv键间分隔符

默认为英文逗号(,)。

kv键内分隔符

默认为英文冒号(:)。

执行调优

核心数

与参数每个核的内存大小搭配使用,取值范围为正整数。

每个核的内存大小

与参数核心数搭配使用,单位为MB。

方式二:PAI命令方式

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

PAI -name cluster_evaluation
    -project algo_public
    -DinputTableName=pai_cluster_evaluation_test_input
    -DselectedColNames=f0,f3
    -DmodelName=pai_kmeans_test_model
    -DoutputTableName=pai_ft_cluster_evaluation_out;

参数

是否必选

描述

默认值

inputTableName

输入表的名称。

selectedColNames

输入表中,参与评估的列名,多个列以英文逗号(,)分隔。该参数必须与模型存储的特征列保持一致。

所有列

inputTablePartitions

输入表中,参与训练的分区。支持以下格式:

  • Partition_name=value

  • name1=value1/name2=value2:多级格式

说明

如果指定多个分区,则使用英文逗号(,)分隔。

全表

enableSparse

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

false

itemDelimiter

稀疏格式KV对之间的分隔符。

英文逗号(,)

kvDelimiter

稀疏格式keyvalue之间的分隔符。

英文冒号(;)

modelName

输入的聚类模型。

outputTableName

输出表。

lifecycle

输出表的生命周期。

示例

  1. 使用SQL语句,生成测试数据。

    create table if not exists pai_cluster_evaluation_test_input as
    select * from
    (
      select 1 as id, 1 as f0,2 as f3
      union all
      select 2 as id, 1 as f0,3 as f3
      union all
      select 3 as id, 1 as f0,4 as f3
      union all
      select 4 as id, 0 as f0,3 as f3
      union all
      select 5 as id, 0 as f0,4 as f3
    )tmp;
  2. 使用PAI命令,构建聚类模型(以K均值聚类为例)。

    PAI -name kmeans
        -project algo_public
        -DinputTableName=pai_cluster_evaluation_test_input
        -DselectedColNames=f0,f3
        -DcenterCount=3
        -Dloop=10
        -Daccuracy=0.00001
        -DdistanceType=euclidean
        -DinitCenterMethod=random
        -Dseed=1
        -DmodelName=pai_kmeans_test_model
        -DidxTableName=pai_kmeans_test_idx
  3. 使用PAI命令,提交聚类模型评估组件的参数。

    PAI -name cluster_evaluation
        -project algo_public
        -DinputTableName=pai_cluster_evaluation_test_input
        -DselectedColNames=f0,f3
        -DmodelName=pai_kmeans_test_model
        -DoutputTableName=pai_ft_cluster_evaluation_out;
  4. 查看评估输出表pai_ft_cluster_evaluation_out,其可视化报告如下图所示。统计结果表中各字段含义如下。

    表字段

    描述

    count

    总记录数。

    centerCount

    聚类中心数。

    calinhara

    Calinski Harabasz指标。