您可以使用此儲存程序將輸入表格的直欄標準化或正規化,以及將轉換後的直欄寫入至輸出表格。
授權
陳述式的授權 ID 所持有的專用權必須包括 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。
- 輸出表格包含由 incolumn 參數指定的 id 直欄及輸出直欄。如果已指定 by 參數,則會新增另一個 by 直欄,以指出要計算哪一個群組的轉換。
- 輸出直欄的命名慣例受到限制。具有相同字尾 :L、:S、:N 或 :U 的輸入直欄不能在 incolumn 參數中出現兩次。
- 資料類型:VARCHAR(ANY)
- id
- 必要。
- 輸入表格中用來識別唯一實例 ID 的直欄。
- 資料類型:VARCHAR(128)
- outtable
- 必要。
- 包含已修改資料的輸出表格。
- 資料類型:VARCHAR(256)
- by
- 選用。
- 輸入表格的直欄,它將資料分割成數個要執行轉換的群組。
- 預設值:none
- 資料類型: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');