洛伦兹曲线(Lorenz Curve)是一种用于描述数据集分布不平等程度的图形表示方法,常用于经济学中分析收入或财富分配。其通过绘制累积人口百分比与累积资源百分比之间的关系曲线,直观地展示了分布的不均衡性。在机器学习中,洛伦兹曲线可以用于评估模型预测的公平性或资源分配的偏差情况。
配置组件
方式一:可视化方式
在Designer工作流页面添加洛伦兹曲线组件,并在界面右侧配置相关参数:
参数类型 | 参数 | 描述 |
字段设置 | 选择字段列 | 选择用于绘制曲线的特征列。 这个字段列包含了你希望分析其分布不平等程度的数值数据,例如收入、财富、分数等。 |
参数设置 | 分位数 | 指定将数据集划分为多少个等概率的区间,以便绘制曲线。 通过选择合适的分位数,你可以控制曲线的细化程度,从而更详细地分析数据分布的不平等性。 |
执行调优 | 计算的核心数 | 计算的核心数,取值为正整数。 |
每个核心的内存(MB) | 每个核心的内存。 |
方式二:PAI命令方式
使用PAI命令配置洛伦兹曲线组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见场景4:在SQL脚本组件中执行PAI命令。
PAI -name LorenzCurve
-project algo_public
-DinputTableName=maple_test_lorenz_basic10_input
-DcolName=col0
-DoutputTableName=maple_test_lorenz_basic10_output -DcoreNum=20
-DmemSizePerCore=110;
参数名称 | 是否必选 | 默认值 | 描述 |
inputTableName | 是 | 无 | 输入表的名称。 |
outputTableName | 是 | 无 | 输出表名称列表。 |
colName | 否 | 无 | 输入表选择列名称。支持选择多列,列之间使用英文逗号(,)分隔。 |
N | 否 | 100 | 分位数。 |
inputTablePartitions | 否 | 无 | 输入表中,参与训练的分区。系统支持以下格式:
说明 指定多个分区时,分区之间使用英文逗号(,)分隔,例如name1=value1,value2。 |
lifecycle | 否 | 28 | 指定输出表的生命周期。取值为整数。单位:天。 |
coreNum | 否 | 默认自动计算 | 与参数memSizePerCore配对使用,取值为正整数。系统会根据输入数据量计算所起instance的数量。 |
memSizePerCore | 否 | 默认自动计算 | 单个节点内存大小,单位MB。取值为正整数,取值范围建议为(1024, 64*1024)。 |
使用示例
生成如下测试数据。
col0:double
4
7
2
8
6
3
9
5
0
1
10
执行如下PAI命令。
PAI -name LorenzCurve -project algo_public -DinputTableName=maple_test_lorenz_basic10_input -DcolName=col0 -DoutputTableName=maple_test_lorenz_basic10_output -DcoreNum=20 -DmemSizePerCore=110;
查看输出结果,如下表所示。
quantile
col0
0
0
1
0.01818181818181818
2
0.01818181818181818
3
0.01818181818181818
4
0.01818181818181818
5
0.01818181818181818
6
0.01818181818181818
7
0.01818181818181818
8
0.01818181818181818
9
0.01818181818181818
10
0.01818181818181818
11
0.05454545454545454
12
0.05454545454545454
13
0.05454545454545454
14
0.05454545454545454
...
...
85
0.8181818181818182
86
0.8181818181818182
87
0.8181818181818182
88
0.8181818181818182
89
0.8181818181818182
90
1
91
1
92
1
93
1
94
1
95
1
96
1
97
1
98
1
99
1
100
1