套用數學運算

本文描述 Azure Machine Learning 設計工具的元件。

使用「套用數學運算」來建立計算,在輸入資料集中套用至數值資料行。

數學運算包括算術函式、三角函數、四捨五入函式,以及在資料科學中使用的特殊函式,例如 gamma 和 error 函式。

在您定義運算並執行管線之後,這些值會新增至您的資料集。 視您設定元件的方式而定,您可以:

  • 將結果附加至您的資料集 (在確認運算的結果時很有用)。
  • 將資料行值取代為新的計算值。
  • 為結果產生新的資料行,而不顯示原始資料。

在以下類別中尋找您需要的運算:

  • 基本

    基本類別中的函式可以用來操作單一值或值的資料行。 例如,您可能會取得資料行中所有數字的絕對值,或計算資料行中每個值的平方根。

  • 比較

    比較類別中的函式全都用於比較:您可以對兩個資料行中的值進行成對的比較,也可以將資料行中的每個值與指定的常數進行比較。 例如,您可以比較資料行,以判斷兩個資料集中的值是否相同。 或者,您可以使用常數 (例如允許的最大值) 來尋找數值資料行中的極端值。

  • 作業

    運算類別包含基本數學函數:加法、減法、乘法和除法。 您可以使用資料行或常數。 例如,您可以將資料行 A 中的值加入至資料行 B 的值。或者,您可以從資料行 A 中的每個值減去常數,例如先前計算的平均值。

  • 四捨五入

    四捨五入類別包含各種不同的函數,可執行四捨五入、ceiling、floor 和截斷等各種程度的精確度。 您可以指定小數和整數的有效位數層級。

  • 特殊

    特殊類別包含在資料科學中特別使用的數學函數,例如橢圓積分和高斯誤差函數。

  • 三角

    三角類別包含所有標準三角函數。 例如,您可以將弧度轉換為度數,或計算函數,例如弧度或度數的正切函數。 這些函數是一元的,也就是說,其採用單一資料行的值作為輸入、套用三角函數,然後將值的資料行傳回作為結果。 請確定輸入資料行是適當的類型,且包含指定運算的正確數值類型。

如何設定套用數學運算

套用數學運算元件需要資料集,其中具有至少一個僅包含數字的資料行。 數字可以是離散或連續的,但必須是數值資料類型,而不是字串。

您可以將相同的運算套用至多個數值資料行,但是所有資料行都必須位於相同的資料集中。

此元件的每個執行個體一次只能執行一種類型的運算。 若要執行複雜的數學運算,您可能需要將套用數學運算元件的數個執行個體鏈結在一起。

  1. 套用數學運算元件新增至您的管線。

  2. 連線至少包含一個數值資料行的資料集。

  3. 選取一或多個要執行計算的來源資料行。

    • 您選擇的任何資料行都必須是數值資料類型。
    • 資料的範圍必須適用於所選取的數學運算。 否則可能會發生錯誤或 NaN (不是數字) 結果。 例如,Ln(-1.0) 是無效的運算,而且會產生值 NaN
  4. 選取 [類別],以選取要執行的數學運算 [類型]。

  5. 從該類別的清單中選擇特定的運算。

  6. 設定每一種運算類型所需的其他參數。

  7. 使用 [輸出模式] 選項來指出您要如何產生數學運算:

    • Append。 當做輸入使用的所有資料行都包含在輸出資料集內,再加上一個附加的額外資料行,其中包含數學運算的結果。
    • Inplace。 作為輸入的資料行中的值會取代為新的計算值。
    • ResultOnly。 傳回單一資料行,其中包含數學運算的結果。
  8. 提交管線。

結果

如果您使用 [Append] 或 [ResultOnly] 選項來產生結果,則傳回資料集的資料行標題會指出運算和所使用的資料行。 例如,如果您使用 Equals 運算子來比較兩個資料行,結果看起來如下所示:

  • Equals(Col2_Col1),表示您根據 Col1 測試了 Col2。
  • Equals(Col2_$10),表示您比較資料行 2 與常數 10。

即使您使用 [就地] 選項,也不會刪除或變更來源資料。原始資料集中的資料行仍然可在設計工具中使用。 若要檢視原始資料,您可以連接加入資料行元件,並將其聯結至套用數學運算的輸出。

基本數學運算

基本類別中的函數通常會採用資料行中的單一值、執行預先定義的運算,並傳回單一值。 針對某些函數,您可以將常數或資料行集指定為第二個引數。

Azure Machine Learning 支援基本類別中的下列函數:

Abs

傳回所選取資料行的絕對值。

Atan2

傳回四象限反正切函數。

選取包含點座標的資料行。 針對對應至 x 座標的第二個引數,您也可以指定常數。

對應至 MATLAB 中的 ATAN2 函數。

Conj

傳回所選取資料行中值的共軛。

CubeRoot

計算所選取資料行中值的立方根。

DoubleFactorial

計算所選取資料行中值的雙階乘。 雙階乘是一般階乘函數的延伸,表示為 x!!

Eps

傳回目前的值與次高雙精度數字之間的差距大小。 對應至 MATLAB 中的 EPS 函數。

Exp

傳回所選取資料行中值的乘冪。 此函數與 Excel EXP 函數相同。

Exp2

傳回引數的以 2 為底數的指數,並針對 y = x * 2t 進行求解,其中 t 是包含指數的值資料行。

在 [資料行集] 中,選取包含指數值 t 的資料行。

若為 Exp2,您可以指定第二個引數 x,可以是常數或值的另一個資料行。 在 [第二個引數類型] 中,指出您是否要將乘數 x 提供為常數,或資料行中的值。

例如,如果您選取具有乘數和指數值 {0,1,2,3,4,5} 的資料行,函數會傳回 {0,2,8,24,64 160)。

ExpMinus1

傳回所選取資料行中值的負指數。

階乘

傳回所選取資料行中值的階乘。

Hypotenuse

計算三角形的斜邊,其中某一邊的長度指定為值的資料行,而第二個邊的長度指定為常數或兩個資料行。

自然對數

傳回所選取資料行中值的自然對數。

LnPlus1

傳回所選取資料行中值的自然對數加一。

記錄

根據給定的指定基底,傳回選定資料行中之值的對數。

您可以指定基底 (第二個引數) 作為常數,或是選取另一個值的資料行。

Log10

傳回所選取資料行基底以 10 為對數的值。

Log2

傳回所選取資料行基底以 2 為對數的值。

NthRoot

使用您指定的 n,傳回值的第 n 個根。

使用 ColumnSet 選項,選取您要計算其根的資料行。

在 [第二個引數類型] 中,選取包含根的其他資料行,或指定要作為根的常數。

如果第二個引數是資料行,則會以資料行中的每個值作為對應資料列的 n 值。 如果第二個引數為常數,請在 [第二個引數] 文字方塊中輸入 n 的值。

Pow

針對所選取資料行中的每個值,計算 X 的 Y 次方。

首先,使用 [ColumnSet] 選項,選取包含基底 (應為浮點數) 的資料行。

在 [第二個引數類型] 中,選取包含指數的其他資料行,或指定要作為指數的常數。

如果第二個引數是資料行,則會以資料行中的每個值做為對應資料列的指數。 如果第二個引數為常數,請在 [第二個引數] 文字方塊中輸入指數的值。

Sqrt

傳回所選取資料行中值的平方根。

SqrtPi

針對所選取資料行中的每個值,將值乘以 pi,然後傳回結果的平方根。

Square

計算所選取資料行中值的平方。

比較運算

每當您需要針對彼此測試兩組值時,請使用 Azure Machine Learning 設計工具中的比較函數。 例如,在管線中,您可能需要執行下列比較運算:

  • 針對臨界值評估機率分數模型的資料行。
  • 判斷兩組結果是否相同。 針對不同的資料列,加入可用於進一步處理或篩選的 FALSE 旗標。

EqualTo

如果值相同,則傳回 True。

GreaterThan

如果 [資料行集] 中的值大於指定的常數,或大於比較資料行中的對應值,則傳回 True。

GreaterThanOrEqualTo

如果 [資料行集] 中的值大於或等於指定的常數,或者大於或等於比較資料行中的對應值,則傳回 True。

LessThan

如果 [資料行集] 中的值小於指定的常數,或小於比較資料行中的對應值,則傳回 True。

LessThanOrEqualTo

如果 [資料行集] 中的值小於或等於指定的常數,或者小於或等於比較資料行中的對應值,則傳回 True。

NotEqualTo

如果 [資料行集] 中的值不等於常數或比較資料行,則傳回 True,等於則傳回 False。

PairMax

傳回值,該值大於 [資料行集] 中的值或常數或比較資料行中的值。

PairMin

傳回值,該值小於 [資料行集] 中的值或常數或比較資料行中的值

算術運算

包含基本算術運算:加法和減法、除法和乘法。 因為大部分的運算都是二元,需要兩個數字,所以您必須先選擇運算,然後選擇要在第一個和第二個引數中使用的資料行。

除法和減法的順序如下:

  • Subtract(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 Subtract(Num2_Num1) 4
0 1 Subtract(Num2_Num1) -1
部門 5 1 Divide(Num2_Num1) 5
部門 1 0 Divide(Num2_Num1) Infinity

使用 [資料行集] 來指定來源資料行,然後將 [第二個引數] 中指定的數字加入至這些值。

若要在兩個資料行中加入值,請使用 [資料行集] 選擇一個資料行,然後使用 [第二個引數] 選擇第二個資料行。

除以

將 [資料行集] 中的值除以常數或 [第二個引數] 中定義的資料行值。 換句話說,您會先挑選除數,然後再挑選被除數。 輸出值為商數。

乘以

將 [資料行集] 中的值乘以指定的常數或資料行值。

減去

使用 [資料行集] 選項選擇不同的資料行,以指定要運算的值資料行 (被減數)。 然後,使用 [第二個引數] 下拉式清單,指定要減去的數字 (減數)。 您可以選擇常數或值的資料行。

捨入運算

Azure Machine Learning 設計工具支援各種捨入運算。 對於許多運算而言,您必須指定進位時要使用的精確度量。 您可以使用指定為常數的靜態精確度層級,也可以套用從值資料行取得的動態精確度值。

  • 如果您使用常數,請將 [精確度類型] 設為 [常數],然後在 [常數精確度] 文字方塊中輸入整數的位數。 如果您輸入非整數,元件不會引發錯誤,但是結果可能是非預期的結果。

  • 若要針對資料集中的每個資料列使用不同的精確度值,請將 [精確度類型] 設定為 [ColumnSet],然後選擇包含適當精確度值的資料行。

Ceiling

傳回 [資料行集] 中之值的最高限度。

CeilingPower2

傳回 [資料行集] 中之值的平方最高限度。

樓層

傳回 [資料行集] 中之值的最低限度 (依據指定的精確度)。

Mod

傳回 [資料行集] 中之值的小數部分 (依據指定的精確度)。

商式

傳回 [資料行集] 中之值的小數部分 (依據指定的精確度)。

餘數

傳回 [資料行集] 中之值的餘數。

RoundDigits

傳回 [資料行集] 中的值 (依據四捨五入規則捨入至指定的位數)。

RoundDown

傳回 [資料行集] 中的值 (捨去至指定的位數)。

RoundUp

傳回 [資料行集] 中的值 (進位至指定的位數)。

ToEven

傳回 [資料行集] 中的值 (捨入至最接近的偶數整數)。

ToOdd

傳回 [資料行集] 中的值 (捨入至最接近的奇數整數)。

Truncate

移除指定的精確度不允許的所有位數,截斷 [資料行集] 中的值。

特殊數學函數

此類別包含通常用於資料科學的特殊數學函數。 除非另有說明,否則函數為一元,並針對所選取資料行中的每個值傳回指定的計算。

Beta

傳回 Euler Beta 函數的值。

EllipticIntegralE

傳回不完整橢圓積分的值。

EllipticIntegralK

傳回完整橢圓積分 (K) 的值。

Erf

傳回誤差函數的值。

誤差函數 (也稱為高斯誤差函數) 是一個 S 形的特殊函數,可在機率中用來說明擴散。

Erfc

傳回互補誤差函數的值。

Erfc 定義為 1 – erf(x)。

ErfScaled

傳回調整誤差函數的值。

調整版的誤差函數可用來避免算術反向溢位。

ErfInverse

傳回反向 erf 函數的值。

ExponentialIntegralEin

傳回指數整數 Ei 的值。

色差補正

傳回 gamma 函數的值。

Gammaln 函數

傳回 gamma 函數的自然對數。

GammaRegularizedP

傳回正則化不完整 gamma 函數的值。

此函數會採用第二個引數,可提供作為常數或值的資料行。

GammaRegularizedPInverse

傳回反向正則化不完整 gamma 函數的值。

此函數會採用第二個引數,可提供作為常數或值的資料行。

GammaRegularizedQ

傳回正則化不完整 gamma 函數的值。

此函數會採用第二個引數,可提供作為常數或值的資料行。

GammaRegularizedQInverse

傳回反向廣義正則化不完整 gamma 函數的值。

此函數會採用第二個引數,可提供作為常數或值的資料行。

PolyGamma

傳回 polygamma 函數的值。

此函數會採用第二個引數,可提供作為常數或值的資料行。

三角函式

此類別包含大部分的重要三角函數和反三角函數。 所有三角函數都是一元的,不需要額外的引數。

Acos

計算資料行值的反餘弦值。

AcosDegree

計算資料行值的反餘弦值,以度為單位。

Acosh

計算資料行值的雙曲反餘弦值。

Acot

計算資料行值的反餘切值。

AcotDegrees

計算資料行值的反餘切值,以度為單位。

Acoth

計算資料行值的雙曲反餘切值。

Acsc

計算資料行值的反餘割值。

AcscDegrees

計算資料行值的反餘割值,以度為單位。

Asec

計算資料行值的反正割值。

AsecDegrees

計算資料行值的反正割值,以度為單位。

Asech

計算資料行值的雙曲反正割值。

Asin

計算資料行值的反正弦值。

AsinDegrees

計算資料行值的反正弦值,以度為單位。

Asinh

計算資料行值的雙曲反正弦值。

Atan

計算資料行值的反正切值。

AtanDegrees

計算資料行值的反正切值,以度為單位。

Atanh

計算資料行值的雙曲反正切值。

Cos

計算資料行值的餘弦值。

CosDegrees

計算資料行值的餘弦值,以度為單位。

Cosh

計算資料行值的雙曲餘弦值。

Cot

計算資料行值的餘切值。

CotDegrees

計算資料行值的餘切值,以度為單位。

Coth

計算資料行值的雙曲餘切值。

Csc

計算資料行值的餘割值。

CscDegrees

計算資料行值的餘割值,以度為單位。

Csch

計算資料行值的雙曲餘割值。

DegreesToRadians

將角度轉換為弧度。

Sec

計算資料行值的正割值。

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 指令碼一次執行所有計算:

後續步驟

請參閱 Azure Machine Learning 可用的元件集