套用數學運算
本文說明 Azure 機器學習 設計工具的元件。
使用套用數學運算來建立套用至輸入數據集中數值數據行的計算。
數學運算包括算術函數、三角函數、四捨五入函數,以及用於數據科學的特殊函式,例如 gamma 和 error 函式。
定義作業並執行管線之後,值就會新增至您的數據集。 視您設定元件的方式而定,您可以:
- 將結果附加至數據集(在驗證作業結果時很有用)。
- 以新的計算值取代數據行值。
- 產生結果的新數據行,而不會顯示原始數據。
在這些類別中尋找您需要的作業:
-
Basic 類別中的函式可用來操作單一值或值的數據行。 例如,您可能會取得數據行中所有數字的絕對值,或計算數據行中每個值的平方根。
-
Compare 類別中的函式全部用於比較:您可以對兩個數據行中的值進行配對比較,也可以比較數據行中的每個值與指定的常數。 例如,您可以比較數據行,以判斷兩個數據集中的值是否相同。 或者,您可以使用常數,例如允許的最大值,來找出數值數據行中的極端值。
-
Operations 類別包含基本的數學函式:加法、減法、乘法和除法。 您可以使用資料列或常數。 例如,您可以將資料行 A 中的值新增至資料行 B 中的值。或者,您可能會從數據行 A 中的每個值減去常數,例如先前計算的平均值。
-
Rounding 類別包含各種函式,可用來執行運算,例如四捨五入、天花板、地板和截斷至各種精確度層級。 您可以指定小數和整數的有效位數層級。
-
特殊類別包含特別用於數據科學的數學函式,例如橢圓整數和高斯誤差函數。
-
Trigonometric 類別包含所有標準三角函數。 例如,您可以將弧度轉換成度,或計算函數,例如弧度或度數中的正切值。 這些函式是一元的,這表示它們會採用單一值數據行做為輸入、套用三角函數,並傳回結果的值數據行。 請確定輸入數據行是適當的類型,並且包含指定作業的正確值類型。
如何設定套用數學運算
套 用數學運算 元件需要至少包含一個僅包含數位之數據行的數據集。 數位可以是離散或連續的,但必須是數值數據類型,而不是字串。
您可以將相同的作業套用至多個數值數據行,但所有數據行都必須位於相同的數據集中。
此元件的每個實例一次只能執行一種作業。 若要執行複雜的數學運算,您可能需要將數個 套用數學運算 元件實例鏈結在一起。
將 [ 套用數學運算] 元件新增至您的管線。
連接包含至少一個數值數據行的數據集。
選取要在其中執行計算的一或多個源數據行。
- 您選擇的任何資料行都必須是數值資料類型。
- 數據範圍必須對選取的數學運算有效。 否則,可能會發生錯誤或 NaN(不是數位)結果。 例如,Ln(-1.0) 是無效的作業,而且會產生的值
NaN
。
選取 [類別 ] 以選取 要執行的數學運算類型 。
從該類別的清單中選擇特定作業。
設定每種作業類型所需的其他參數。
使用 [ 輸出模式 ] 選項來指出您要如何產生數學運算:
- Append。 做為輸入的所有數據行都包含在輸出數據集中,再加上附加一個額外的數據行,其中包含數學運算的結果。
- 就地。 做為輸入的數據行值會取代為新的導出值。
- ResultOnly。 傳回單一數據行,其中包含數學運算的結果。
提交管線。
結果
如果您使用 Append 或 ResultOnly 選項產生結果,傳回數據集的數據行標題會指出作業和所使用的數據行。 例如,如果您使用 Equals 運算子比較兩個數據行,結果看起來會像這樣:
- Equals(Col2_Col1),表示您已對 Col1 測試 Col2。
- Equals(Col2_$10),表示您比較數據行 2 與常數 10。
即使您使用 [ 就地 ] 選項,源數據也不會刪除或變更;原始數據集中的數據行仍可在設計工具中使用。 若要檢視原始數據,您可以連接 [加入數據行] 元件,並將它聯結至 [套用數學運算] 的輸出。
基本數學運算
Basic 類別中的函式通常會從數據行取得單一值、執行預先定義的作業,並傳回單一值。 對於某些函式,您可以將常數或數據行集指定為第二個自變數。
Azure 機器學習 支援基本類別中的下列函式:
Abs
傳回所選取數據行的絕對值。
Atan2
傳回四象限反正切值。
選取包含點座標的資料行。 針對對應至 x 座標的第二個自變數,您也可以指定常數。
對應至 MATLAB 中的 ATAN2 函式。
Conj
傳回所選取數據行中值的結合。
CubeRoot
計算所選取資料列中值的 Cube 根目錄。
DoubleFactorial
計算所選取資料行中值的雙因數。 雙因數是一般因數函式的延伸,其表示為 x!!
。
Eps
傳回目前值與下一個最高雙精確度數位之間的間距大小。 對應至 MATLAB 中的 EPS 函式。
Exp
傳回 e,以選取數據行中的值乘冪。 此函式與 Excel EXP 函式相同。
Exp2
傳回自變數的base-2指數,針對y = x* 2t 進行解算,其中 t 是包含指數的值數據行。
在 [ 數據行集] 中,選取包含指數值 t 的數據行。
針對 Exp2 ,您可以指定第二個自變數 x,它可以是常數或另一個值數據行。 在 [第二個自變數類型] 中,指出您要提供乘數 x 做為常數,還是數據行中的值。
例如,如果您選取具有乘數和指數值 {0,1,2,3,4,5} 的數據行,函式會傳回 {0、2、8、24、64 160)。
ExpMinus1
傳回所選數據行中值的負指數。
階乘
傳回所選數據行中值的因數。
斜邊
計算三角形的虛構,其中一側的長度指定為值的數據行,而第二邊的長度會指定為常數或兩個數據行。
Ln
傳回所選數據行中值的自然對數。
LnPlus1
會傳回自然對數,加上所選數據行中值的一個。
記錄
根據指定的基底,傳回所選取數據行中值的記錄。
您可以將基底 (第二個自變數) 指定為常數,或選取另一個值數據行。
Log10
傳回所選數據行的基底 10 對數值。
Log2
傳回所選數據行的基底 2 對數值。
NthRoot
使用您指定的 n 傳回值的第 n 個根目錄。
使用 ColumnSet 選項,選取您要計算根目錄的數據行。
在 [第二個自變數類型] 中,選取另一個包含根的數據行,或指定要當做根目錄使用的常數。
如果第二個自變數是數據行,則數據行中的每個值都會當做對應數據列的 n 值使用。 如果第二個自變數是常數,請在 [ 第二個自變數 ] 文本框中輸入 n 的值。
Pow
計算針對所選取資料列中每個值向 Y 乘冪的 X。
首先,使用 ColumnSet 選項,選取包含基底的數據行,這應該是浮點數。
在 [第二個自變數類型] 中,選取包含指數的數據行,或指定要當做指數使用的常數。
如果第二個自變數是數據行,則數據行中的每個值都會當做對應數據列的指數使用。 如果第二個自變數是常數,請在 [ 第二個自變數 ] 文本框中輸入指數的值。
Sqrt
傳回所選數據行中值的平方根。
SqrtPi
針對所選數據行中的每個值,將值乘以pi,然後傳回結果的平方根。
Square
將選取資料列中的值平方。
比較作業
您可以隨時在 Azure 機器學習 設計工具中使用比較函式,以互相測試兩組值。 例如,在管線中,您可能需要執行下列比較作業:
- 根據臨界值評估機率分數模型的數據行。
- 判斷兩組結果是否相同。 針對不同的每個數據列,新增可用於進一步處理或篩選的 FALSE 旗標。
EqualTo
如果值相同,則傳回 True。
GreaterThan
如果數據行集中的值大於指定的常數,或大於比較數據行中的對應值,則會傳回 True。
GreaterThanOrEqualTo
如果數據行集中的值大於或等於指定的常數,或大於或等於比較數據行中的對應值,則會傳回 True。
LessThan
如果數據行集中的值小於指定的常數,或小於比較數據行中的對應值,則會傳回 True。
LessThanOrEqualTo
如果數據行集中的值小於或等於指定的常數,或小於或等於比較數據行中的對應值,則會傳回 True。
NotEqualTo
如果數據行集中的值不等於常數或比較數據行,則會傳回 True,如果值相等,則會傳回 False。
PairMax
傳回大於的值—Column 集合中的值,或常數或比較數據行中的值。
PairMin
傳回小於的值—Column 集合中的值,或常數或比較數據行中的值
算術運算
包含基本算術運算:加法和減法、除法和乘法。 因為大部分的作業都是二進位的,需要兩個數位,您必須先選擇作業,然後選擇要在第一個和第二個自變數中使用的數據行或數位。
除法和減法的順序如下:
- 減法(Arg1_Arg2) = Arg1 - Arg 2
- Divide(Arg1_Arg2) = Arg1 / Arg 2
下表顯示一些範例
作業 | Num1 | Num2 | 結果數據行 | 結果值 |
---|---|---|---|---|
加法 | 1 | 5 | Add(Num2_Num1) | 6 |
乘法 | 1 | 5 | Multiple(Num2_Num1) | 5 |
減 | 5 | 1 | 減去(Num2_Num1) | 4 |
減 | 0 | 1 | 減去(Num2_Num1) | -1 |
除法 | 5 | 1 | 除(Num2_Num1) | 5 |
除法 | 1 | 0 | 除(Num2_Num1) | Infinity |
加
使用數據行集指定源數據行,然後將這些值新增至 Second 自變數中指定的數位。
若要在兩個數據行中新增值,請使用 Column set 選擇資料行或數據行,然後使用 Second 自變數選擇第二個數據行。
分割
將 Column 中的值除以常數或第二個自變數中定義的數據行值。 換句話說,您會先挑選除數,然後再挑選除數。 輸出值是商數。
乘積
將數據列中的值乘以指定的常數或數據行值。
差集
使用 [數據行集] 選項,藉由選擇不同的數據行,指定要操作的值數據行(minuend)。 然後,使用 [第二個自變數] 下拉式清單,指定要減去的數位(減去)。 您可以選擇常數或值的數據行。
四捨五入作業
Azure 機器學習 設計工具支援各種四捨五入作業。 對於許多作業,您必須指定捨入時要使用的有效位數。 您可以使用指定為常數的靜態有效位數層級,也可以套用從值數據行取得的動態有效位數值。
如果您使用常數,請將 [精確度類型] 設定為 [常數],然後在 [常數有效位數] 文本框中,將數字數輸入為整數。 如果您輸入非整數,則元件不會引發錯誤,但結果可能會非預期。
若要針對數據集中的每個數據列使用不同的有效位數值,請將Precision Type 設定為 ColumnSet,然後選擇包含適當有效位數值的數據行。
Ceiling
傳回數據行集中值的上限。
CeilingPower2
傳回數據行集中值的平方上限。
底板
傳回 Column 集合中值的地板,以指定有效位數。
Mod
將數據行集中值的分數部分傳回指定的有效位數。
商數
將數據行集中值的分數部分傳回指定的有效位數。
餘數
傳回數據行集中值的餘數。
RoundDigits
傳回數據行集中的值,以 4/5 規則四捨五入到指定的位數。
RoundDown
傳回數據行集中的值,四捨五入為指定的位數。
RoundUp
傳回數據行集中的值,四捨五入為指定的位數。
ToEven
傳回數據行集中的值,四捨五入為最接近的整數,偶數。
ToOdd
傳回數據行集中的值,四捨五入為最接近的整數奇數。
Truncate
藉由移除指定有效位數不允許的所有位數,截斷數據行中設定的值。
特殊數學函式
此類別包含經常用於數據科學的特製化數學函式。 除非另有說明,否則函式為一元,並針對選取的數據行或數據行中的每個值傳回指定的計算。
Beta
傳回 Euler Beta 函式的值。
橢圓形IntegralE
傳回不完整橢圓整數的值。
橢圓形IntegralK
傳回完整橢圓整數 (K) 的值。
Erf
傳回錯誤函式的值。
誤差函數(也稱為高斯誤差函數)是描述擴散機率的 sigmoid 形狀的特殊函數。
Erfc
傳回互補錯誤函式的值。
Erfc
定義為 1 – erf(x)。
ErfScaled
傳回縮放錯誤函式的值。
錯誤函式的縮放版本可用來避免算術下溢。
ErfInverse
傳回反向 erf
函式的值。
ExponentialIntegralEin
傳回指數整數 Ei 的值。
伽馬
傳回 gamma 函式的值。
GammaLn
傳回 gamma 函式的自然對數。
GammaRegularizedP
傳回正規化不完整伽瑪函式的值。
此函式會採用第二個自變數,其可做為常數或值的數據行。
GammaRegularizedPInverse
傳回反向正規化不完整伽瑪函式的值。
此函式會採用第二個自變數,其可做為常數或值的數據行。
GammaRegularizedQ
傳回正規化不完整伽瑪函式的值。
此函式會採用第二個自變數,其可做為常數或值的數據行。
GammaRegularizedQInverse
傳回反一般化正規化不完整伽瑪函式的值。
此函式會採用第二個自變數,其可做為常數或值的數據行。
PolyGamma
傳回 polygamma 函式的值。
此函式會採用第二個自變數,其可做為常數或值的數據行。
三角函式
這個類別 iIncludes 大部分重要的三角函數和反向三角函數。 所有三角函數都是一元的,不需要額外的自變數。
Acos
計算數據行值的反餘弦值。
AcosDegree
以度為單位計算數據行值的反餘弦值。
Acosh
計算數據行值的雙曲反餘弦值。
Acot
計算數據行值的反正切值。
AcotDegrees
以度為單位計算數據行值的反正切值。
Acoth
計算數據行值的雙曲反正切值。
Acsc
計算數據行值的反餘數。
AcscDegrees
以度為單位計算數據行值的反餘數。
4 秒
計算數據行值的弧度。
AsecDegrees
以度為單位計算數據行值的弧度。
Asech
計算數據行值的雙曲反正弦值。
Asin
計算數據行值的反正弦值。
AsinDegrees
以度為單位計算數據行值的反正弦值。
Asinh
計算數據行值的雙曲反正弦值。
Atan
計算數據行值的反正切值。
AtanDegrees
以度為單位計算數據行值的反正切值。
Atanh
計算數據行值的雙曲反正切值。
Cos
計算數據行值的餘弦值。
CosDegrees
計算數據行值的餘弦值,以度為單位。
Cosh
計算數據行值的雙曲餘弦值。
Cot
計算數據行值的餘切值。
CotDegrees
計算數據行值的餘切值,以度為單位。
Coth
計算數據行值的雙曲餘切值。
Csc
計算數據行值的共secant。
CscDegrees
以度為單位計算數據行值的共同秒數。
Csch
計算數據行值的雙曲餘弦值。
DegreesToRadians
將度數轉換成弧度。
次要
計算數據行值的秒數。
aSecDegrees
計算數據行值的秒數,以度為單位。
aSech
計算數據行值的雙曲秒數。
符號
傳回數據行值的符號。
Sin
計算數據行值的正弦值。
Sinc
計算數據行值的正弦值。
SinDegrees
計算數據行值的正弦值,以度為單位。
Sinh
計算數據行值的雙曲正弦值。
Tan
計算數據行值的正切值。
TanDegrees
計算自變數的正切值,以度為單位。
Tanh
計算數據行值的雙曲正切值。
技術注意事項
當您選取多個數據行做為第二個運算符時,請小心。 結果很容易理解作業是否簡單,例如將常數新增至所有數據行。
假設您的數據集有多個數據行,而您會將數據集新增至本身。 在結果中,每個數據行都會新增至本身,如下所示:
Num1 | Num2 | Num3 | Add(Num1_Num1) | Add(Num2_Num2) | Add(Num3_Num3) |
---|---|---|---|---|---|
1 | 5 | 2 | 2 | 10 | 4 |
2 | 3 | -1 | 4 | 6 | -2 |
0 | 1 | -1 | 0 | 2 | -2 |
如果您需要執行更複雜的計算,您可以鏈結多個套 用數學運算實例。 例如,您可以使用一個套用數學運算實例來新增兩個數據行,然後使用另一個套用數學運算實例,將總和除以常數來取得平均值。
或者,使用下列其中一個元件,使用 SQL、R 或 Python 腳本一次執行所有計算: