IDAX.STD_NORM - 将输入表的列标准化或正态化

使用此存储过程可将输入表的列标准化或正态化,并将转换后的列写入输出表。

权限

此语句的授权标识所拥有的特权必须包括 IDAX_USER 角色。

语法

IDAX.STD_NORM(in parameter_string varchar(32672))

参数描述

parameter_string
必需的单字符串参数,其中包含以逗号分隔的 <parameter>=<value> 条目对。
数据类型:VARCHAR(32672)
以下列表显示参数值:
intable
必需。
输入表的名称。
数据类型:VARCHAR(256)
incolumn
必需。
输入表中要考虑的列。
各个列之间以分号 (;) 分隔。
可以对每个列附加以下符号:
<column>:L
保持该列不变。
输出表也会包含该列,其中的值相同。
<column>:S
将该列标准化。
输出表包含 STD_<column> 列,该列包含标准化输入值。标准化值 S 等于 (x-mean)/stddev,其中 x 是输入值,mean 是该列的均值,而 stddev 是该列的标准差。标准化值的范围是从负无穷大到正无穷大。
<column>:N
将该列正态化。
<column>:U
指定该列的长度为一个单元。
另外,可以对两个列附加以下符号:
<col1>/<col2>:C
使 <col1> 列和 <col2> 列规范化为空间中的单元向量。
输出表包含 NRC_<rank>_<col1> 列和 NRC_<rank>_<col2> 列,其中 rank 是此转换在 :C 转换列表或 :V 转换列表中的秩(从 1 开始)。
这两列都包含它们自己的正规化输入值。<col1> 的规范化值 U1 等于 x/sqrt(x^2+y^2),其中 x 是 <col1> 的输入值,y 是 <col2> 的输入值。
<col2> 的规范化值 U2 等于 y/sqrt(x^2+y^2),其中 x 是 <col1> 的输入值,y 是 <col2> 的输入值。正规化值的范围是从 -1 到 1。
<col1>/<col2>:V
将列的值除以最长行向量的长度。
根据数据的最长行向量,使 <col1> 列和 <col2> 列规范化。
输出表包含 NRM_<rank>_<col1> 列和 NRM_<rank>_<col2> 列,其中 rank 是此转换在 :C 转换列表或 :V 转换列表中的秩(从 1 开始)。
这两列都包含它们自己的正规化输入值。<col1> 的规范化值 V1 等于 x/sqrt(maxssq),其中,x 是 <col1> 的输入值,maxssq 是 <col1> 和 <col2> 中各个值的平方和的最大值。
<col2> 的规范化值 V2 等于 y/sqrt(maxssq),其中,y 是 <col2> 的输入值,maxssq 是 <col1> 和 <col2> 中各个值的平方和的最大值。正规化值的范围是从 -1 到 1。
输出表将会包含 id 列以及 incolumn 参数所指定的输出列。如果指定了 by 参数,那么将添加额外的 by 列,以指出要针对哪个组计算转换。
输出列的命名约定有限制。具有相同后缀 :L、:S、:N 或 :U 的一个输入列在 incolumn 参数中不能出现两次。
数据类型:VARCHAR(ANY)
id
必需。
输入表的列,用于指示唯一实例标识。
数据类型:VARCHAR(128)
outtable
必需。
输出表,其中包含修改后的数据。
数据类型:VARCHAR(256)
by
可选。
输入表的列,用于将数据拆分为多个要执行转换的组。
缺省值:无
数据类型:VARCHAR(128)
view
可选。
一个标志,指出输出对象是应该存储为视图 (true) 还是表 (false)。
缺省值:false
数据类型:BOOLEAN

返回的信息

VARCHAR(1000):输出表中经转换的列数。使用后缀 :L 指定的列将被忽略。

示例

CALL IDAX.STD_NORM('intable=IRIS, incolumn=petallength:S;petallength:L;petallength:N;petallength:U;sepallength/petallength:C, id=id, outtable=IRIS_NORM1');
CALL IDAX.STD_NORM('intable=IRIS, incolumn=petallength:S;petallength:L;petallength:N;petallength:U;sepallength/petallength:C, id=id,outtable=IRIS_NORM2, by=class');