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

背景信息

评估指标Calinski-Harabasz又称VRC(Variance Ratio Criterion),其计算公式如下。VRC公式
参数 描述
SSB 聚类之间的方差,定义如下。SSB其中:
  • k:聚类中心点的数量。
  • mi:聚类的中心点。
  • m:输入数据的均值。
SSW 聚类内的方差,定义如下。SSW其中:
  • k:聚类中心点的数量。
  • x:数据点。
  • ci:第i个聚类。
  • mi:聚类的中心点。
N 记录的总数量。
k 聚类中心点的数量。

组件配置

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 参与评估列 参与评估的列名,该参数必须与模型存储的特征列保持一致。
    输入为稀疏格式 使用KV格式表示稀疏数据。
    kv键间分隔符 默认为英文逗号(,)。
    kv键内分隔符 默认为英文冒号(:)。
    执行调优 核心数 与参数每个核的内存大小搭配使用,取值范围为正整数。
    每个核的内存大小 与参数核心数搭配使用,单位为MB。
  • 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;
    参数 是否必选 描述 默认值
    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 from dual
      union all
      select 2 as id, 1 as f0,3 as f3 from dual
      union all
      select 3 as id, 1 as f0,4 as f3 from dual
      union all
      select 4 as id, 0 as f0,3 as f3 from dual
      union all
      select 5 as id, 0 as f0,4 as f3 from dual
    )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,其可视化报告如下图所示。聚类模型评估可视化结果该图表与pai_ft_cluster_evaluation_out表中字段对应关系如下。
    表字段 可视化图表
    count 总记录数
    centerCount 聚类中心数
    calinhara Calinski Harabasz指标
    clusterCounts 各聚类包含的点数目