使用此存储过程可将输入表的列标准化或正态化,并将转换后的列写入输出表。
权限
此语句的授权标识所拥有的特权必须包括 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');