洛倫茲曲線(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