经验概率密度图

经验概率密度图(Empirical Probability Density Function, EPDF)是一种非参数方法,用于估计和可视化数据的概率密度分布。通过对样本数据进行平滑处理,EPDF提供了一种直观的方式来观察数据的分布特性和趋势,常用于探索性数据分析和分布假设验证。

算法说明

经验概率密度图算法通过内核密度估计(Kernel Density Estimation, KDE)来估算样本数据的概率密度,与直方图类似,都是用于描述数据分布的工具。不同之处在于,KDE通过叠加每个数据点的内核函数来生成连续平滑的分布曲线,而直方图则是离散化的。在该算法中,非样本数据点的概率密度通过对样本点在高斯内核下的概率密度进行加权叠加来计算,从而提供了一种光滑的分布曲线。

配置组件

方式一:可视化方式

Designer工作流页面添加经验概率密度图组件,并在界面右侧配置相关参数:

参数类型

参数

描述

字段设置

输入列

选择输入列,只支持bigintdouble类型。

标签列

标签字段。

如果选择了该字段,会把输入列按照标签列所有的值进行分组计算。例如:标签列有01两个值,最终会输出两个结果,分别对应标签值01。

参数设置

计算频次区间数

值越大精度越高,会根据各列数据的取值范围进行区间划分计算区间数。

执行调优

核数目

计算的核心数,取值范围为正整数。

内存数

每个核心的内存,取值范围为1 MB~65536 MB。

方式二:PAI命令方式

使用PAI命令配置经验概率密度图组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见场景4:在SQL脚本组件中执行PAI命令

PAI -name empirical_pdf
    -project algo_public
    -DinputTableName="test_data"
    -DoutputTableName="test_epdf_out"
    -DfeatureColNames="col0,col1,col2"
    -DinputTablePartitions="ds='20160101'"
    -Dlifecycle=1
    -DintervalNum=100

参数

是否必选

默认值

描述

inputTableName

输入表的名称。

outputTableName

输出表名。

featureColNames

输入表中,用于训练的特征列名。

labelColName

输入表中,标签列的名称。

inputTablePartitions

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

  • partition_name=value

  • name1=value1/name2=value2:多级分区

说明

指定多个分区时,分区之间使用英文逗号(,)分隔,例如name1=value1,value2。

intervalNum

计算频次区间数,越大精度越高。取值范围[1,1E14)。

lifecycle

表的生命周期。

coreNum

系统自动分配

计算的核心数,取值范围为正整数。

memSizePerCore

系统自动分配

每个核心的内存,取值范围为1 MB~65536 MB。

使用示例

  1. 添加SQL脚本组件,去勾选使用Script模式是否由系统添加Create Table语句,并在SQL脚本中输入以下SQL语句。

        drop table if exists epdf_test;
        create table epdf_test as
        select
          *
        from
        (
          select 1.0 as col1
            union all
          select 2.0 as col1
            union all
          select 3.0 as col1
            union all
          select 4.0 as col1
            union all
          select 5.0 as col1
        ) tmp;
  2. 添加SQL脚本组件,去勾选使用Script模式是否由系统添加Create Table语句,在SQL脚本中输入以下PAI命令,并将步骤 1和步骤 2的组件进行连线。

    drop table if exists ${o1};
    PAI -name empirical_pdf
        -project algo_public
        -DinputTableName=epdf_test
        -DoutputTableName=${o1}
        -DfeatureColNames=col1;
  3. 单击左上角image,运行工作流。

  4. 待运行结束,右键单击步骤 2的组件,选择查看数据 > SQL脚本的输出,查看训练结果。

    | colname | label | x                  | pdf                 |
    | ------- | ----- | ------------------ | ------------------- |
    | col1    |       | 1.0                | 0.12775155176809325 |
    | col1    |       | 1.0404050505050506 | 0.1304256933829622  |
    | col1    |       | 1.0808101010101012 | 0.13306325897429525 |
    | col1    |       | 1.1212151515151518 | 0.1356613897616418  |
    | col1    |       | 1.1616202020202024 | 0.1382173796574596  |
    | col1    |       | 1.202025252525253  | 0.1407286844875733  |
    | col1    |       | 1.2424303030303037 | 0.14319293014274642 |
    | col1    |       | 1.2828353535353543 | 0.14560791960033242 |
    | col1    |       | 1.3232404040404049 | 0.14797163876379316 |
    | col1    |       | 1.3636454545454555 | 0.1502822610772349  |
    | col1    |       | 1.404050505050506  | 0.1525381508819247  |
    | col1    |       | 1.4444555555555567 | 0.1547378654919243  |
    | col1    |       | 1.4848606060606073 | 0.1568801559764068  |
    | col1    |       | 1.525265656565658  | 0.15896396664681753 |
    | col1    |       | 1.5656707070707085 | 0.16098843325768245 |
    | col1    |       | 1.6060757575757592 | 0.1629528799404685  |
    | col1    |       | 1.6464808080808098 | 0.16485681490034038 |
    | col1    |       | 1.6868858585858604 | 0.16669992491584543 |
    | col1    |       | 1.727290909090911  | 0.16848206869138338 |
    | col1    |       | 1.7676959595959616 | 0.17020326912168932 |
    | col1    |       | 1.8081010101010122 | 0.17186370453638117 |
    | col1    |       | 1.8485060606060628 | 0.17346369900080946 |
    | col1    |       | 1.8889111111111134 | 0.17500371175692428 |
    | col1    |       | 1.929316161616164  | 0.17648432589456017 |
    | col1    |       | 1.9697212121212146 | 0.17790623634938396 |
    | col1    |       | 2.0101262626262653 | 0.1792702373286898  |
    | col1    |       | 2.050531313131316  | 0.18057720927022053 |
    | col1    |       | 2.0909363636363665 | 0.18182810544221673 |
    | col1    |       | 2.131341414141417  | 0.18302393829491406 |
    | col1    |       | 2.1717464646464677 | 0.18416576567472337 |
    | col1    |       | 2.2121515151515183 | 0.1852546770123305  |
    | col1    |       | 2.252556565656569  | 0.18629177959496213 |
    | col1    |       | 2.2929616161616195 | 0.18727818503109434 |
    | col1    |       | 2.33336666666667   | 0.18821499601297229 |
    | col1    |       | 2.3737717171717208 | 0.18910329347850022 |
    | col1    |       | 2.4141767676767714 | 0.18994412426940221 |
    | col1    |       | 2.454581818181822  | 0.19073848937711185 |
    | col1    |       | 2.4949868686868726 | 0.19148733286168018 |
    | col1    |       | 2.535391919191923  | 0.1921915315221827  |
    | col1    |       | 2.575796969696974  | 0.19285188538972659 |
    | col1    |       | 2.6162020202020244 | 0.19346910910630113 |
    | col1    |       | 2.656607070707075  | 0.19404382424446043 |
    | col1    |       | 2.6970121212121256 | 0.1945765526142701  |
    | col1    |       | 2.7374171717171762 | 0.19506771059517916 |
    | col1    |       | 2.777822222222227  | 0.19551760452158667 |
    | col1    |       | 2.8182272727272775 | 0.19592642714194602 |
    | col1    |       | 2.858632323232328  | 0.1962942551623821  |
    | col1    |       | 2.8990373737373787 | 0.1966210478770638  |
    | col1    |       | 2.9394424242424293 | 0.1969066468790639  |
    | col1    |       | 2.97984747474748   | 0.19715077683721793 |
    | col1    |       | 3.0202525252525305 | 0.19735304731663747 |
    | col1    |       | 3.060657575757581  | 0.19751295561309964 |
    | col1    |       | 3.1010626262626317 | 0.19762989056457925 |
    | col1    |       | 3.1414676767676823 | 0.19770313729675995 |
    | col1    |       | 3.181872727272733  | 0.19773188285349683 |
    | col1    |       | 3.2222777777777836 | 0.19771522265793107 |
    | col1    |       | 3.262682828282834  | 0.19765216774530828 |
    | col1    |       | 3.303087878787885  | 0.19754165270453194 |
    | col1    |       | 3.3434929292929354 | 0.19738254426210697 |
    | col1    |       | 3.383897979797986  | 0.19717365043938664 |
    | col1    |       | 3.4243030303030366 | 0.19691373021193162 |
    | col1    |       | 3.4647080808080872 | 0.1966015035982942  |
    | col1    |       | 3.505113131313138  | 0.19623566210464843 |
    | col1    |       | 3.5455181818181885 | 0.19581487945135703 |
    | col1    |       | 3.585923232323239  | 0.19533782250778076 |
    | col1    |       | 3.6263282828282897 | 0.1948031623623475  |
    | col1    |       | 3.6667333333333403 | 0.1942095854560816  |
    | col1    |       | 3.707138383838391  | 0.19355580470939734 |
    | col1    |       | 3.7475434343434415 | 0.19284057057394655 |
    | col1    |       | 3.787948484848492  | 0.19206268194364004 |
    | col1    |       | 3.8283535353535427 | 0.19122099686158253 |
    | col1    |       | 3.8687585858585933 | 0.19031444296253852 |
    | col1    |       | 3.909163636363644  | 0.1893420275936375  |
    | col1    |       | 3.9495686868686946 | 0.18830284755928747 |
    | col1    |       | 3.989973737373745  | 0.1871960984396676  |
    | col1    |       | 4.030378787878796  | 0.18602108343567092 |
    | col1    |       | 4.070783838383846  | 0.18477722169674377 |
    | col1    |       | 4.111188888888897  | 0.1834640560916829  |
    | col1    |       | 4.151593939393948  | 0.1820812603860928  |
    | col1    |       | 4.191998989898998  | 0.18062864579383914 |
    | col1    |       | 4.232404040404049  | 0.179106166873458   |
    | col1    |       | 4.272809090909099  | 0.17751392674406796 |
    | col1    |       | 4.31321414141415   | 0.17585218159888508 |
    | col1    |       | 4.353619191919201  | 0.17412134449794325 |
    | col1    |       | 4.394024242424251  | 0.1723219884250765  |
    | col1    |       | 4.434429292929302  | 0.17045484859762067 |
    | col1    |       | 4.4748343434343525 | 0.16852082402064342 |
    | col1    |       | 4.515239393939403  | 0.1665209782808102  |
    | col1    |       | 4.555644444444454  | 0.16445653957824907 |
    | col1    |       | 4.596049494949504  | 0.16232889999798905 |
    | col1    |       | 4.636454545454555  | 0.16013961402571825 |
    | col1    |       | 4.6768595959596055 | 0.1578903963157465  |
    | col1    |       | 4.717264646464656  | 0.15558311872216193 |
    | col1    |       | 4.757669696969707  | 0.1532198066072439  |
    | col1    |       | 4.798074747474757  | 0.1508026344442397  |
    | col1    |       | 4.838479797979808  | 0.14833392073462115 |
    | col1    |       | 4.878884848484859  | 0.14581612226291346 |
    | col1    |       | 4.919289898989909  | 0.1432518277151203  |
    | col1    |       | 4.95969494949496   | 0.1406437506896507  |
    | col1    |       | 5.00010000000001   | 0.13799472213247665 |

    列名

    数据类型

    描述

    colName

    string

    表示输入列。

    label

    string

    表示标签列。不设置时,label字段输出为空。

    x

    double

    表示图像里x轴的值,是使用插值算法插入的值,而非实际值。

    pdf

    double

    表示概率密度。