MaxCompute K均值聚类最佳实践

本文为您介绍如何通过提交一个使用MaxCompute计算资源的超参数调优实验,来运行K均值聚类和聚类模型评估组件,以获取K均值聚类组件算法的较优超参数组合。

步骤一:准备数据

您可以参考聚类模型评估中的示例来准备测试数据和评估数据。

本方案使用公开数据源pai_online_project.pai_kmeans_test_inputpai_online_project.pai_cluster_evaluation_test_input,您可以直接使用。

步骤二:新建实验

  1. 进入新建实验页面。具体操作,请参见新建实验

  2. 新建实验页面,配置以下关键参数,其他参数配置详情,请参见新建实验

    • 执行配置:image.png

      参数

      描述

      任务类型

      选择MaxCompute。

      命令

      配置以下两个命令,按照顺序依次排列,后续会按顺序执行命令。

      • cmd1:使用准备好的测试数据,运行K均值聚类组件,构建聚类模型。各个参数的配置说明,请参见方式二:PAI命令方式

        pai -name kmeans
            -project algo_public
            -DinputTableName=pai_online_project.pai_kmeans_test_input
            -DselectedColNames=f0,f1
            -DappendColNames=f0,f1
            -DcenterCount=${centerCount}
            -Dloop=10
            -Daccuracy=0.01
            -DdistanceType=${distanceType}
            -DinitCenterMethod=random
            -Dseed=1
            -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id}
            -DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id}
            -DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id}
            -DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};

        其中:${centerCount}${distanceType}为定义的超参数变量。

      • cmd2:基于cmd1生成的聚类结果,运行聚类模型评估组件,来评估聚类模型的优劣性。各个参数的配置说明,请参见方式二:PAI命令方式

      • PAI -name cluster_evaluation
            -project algo_public
            -DinputTableName=pai_online_project.pai_cluster_evaluation_test_input
            -DselectedColNames=f0,f1
            -DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id}
            -DoutputTableName=pai_ft_cluster_evaluation_out_${exp_id}_${trial_id};

      超参数

      每个超参数对应的约束类型和搜索空间配置如下:

      • centerCount:

        • 约束类型:choice。

        • 搜索空间:单击image.png,增加4个枚举值,分别为2、3、45。

      • distanceType:

        • 约束类型:choice。

        • 搜索空间:单击image.png,增加3个枚举值,分别为euclidean、cosinecityblock。

      使用上述配置可以生成12种超参数组合,后续实验会分别为每种超参数组合创建一个Trial,在每个Trial中使用一组超参数组合来运行K均值聚类组件和聚类模型评估组件。

    • Trial配置:

      参数

      描述

      指标类型

      选择table

      计算方式

      选择best

      指标权重

      • key:vrc。

      • Value:1。

      指标来源

      配置为select GET_JSON_OBJECT(summary, '$.calinhara') as vrc from pai_ft_cluster_evaluation_out_${exp_id}_${trial_id};

      优化方向

      选择越大越好

      模型名称

      配置为pai_kmeans_test_output_model_${exp_id}_${trial_id}

    • 搜索配置:

      参数

      描述

      搜索算法

      选择TPE

      最大搜索次数

      配置为6。

      最大并发量

      配置为3。

  3. 单击提交

    系统在实验列表页面自动创建一个实验。

步骤三:查看实验详情和运行结果

  1. 实验列表页面,单击实验名称,进入实验详情页面。

    在该页面,您可以查看Trial的执行进度和状态统计。image.png

    实验根据配置的搜索算法和最大搜索次数自动创建6Trial。

  2. 单击Trial列表,您可以在该页面查看该实验自动生成的所有Trial列表,以及每个Trial的执行状态、最终指标和超参数组合。image.png

    根据配置的优化方向(越大越好),从上图可以看出,最终指标为59089对应的超参组合(centerCount:2;distanceType:cityblock)较优。