套用數學運算

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

將數學運算套用至資料行值

Category: 統計函數

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文說明如何使用機器學習 Studio (傳統) 中的 [套用數學運算] 模組,建立套用至輸入資料集內數值資料行的計算。

支援的數學運算包括一般算術函式,例如乘法和除法、三角函數、各種四捨五入函數,以及資料科學中使用的特殊函式,例如 gamma 和 error 函數。

在您定義作業並執行實驗之後,這些值會加入至您的資料集。 根據您設定模組的方式,您可以:

  • 將結果附加至資料集。 當您驗證作業的結果時,這會特別有用。
  • 將資料行值取代為新的計算值。
  • 為結果產生新的資料行,而不顯示原始資料。

提示

此模組一次執行單一數學運算。 針對複雜的數學運算,建議您改為使用這些模組:

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

  • 基本

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

  • 比較

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

  • 作業

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

  • 四捨五入

    此類別包含各種不同的函式,可讓您用來執行各種精確度層級的舍入、上限、樓層和截斷等作業。 您可以指定小數和整數的有效位數層級。

  • 特殊數學函數

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

  • 三角函式

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

範例

如需如何使用 [套用 數學運算] 的範例,請參閱 Azure AI 資源庫中的下列範例實驗:

  • 色彩量化:系統會從另一組資料行值減去另一組資料行值,然後以平方表示結果。

  • 客戶關係預測:常數1會加入至資料行中的所有值,以區分零和遺漏值。

  • 航班延誤預測:示範各種作業,包括舍入和除法。

  • 直接行銷:使用比較運算來判斷機率分數是否符合必要值。

如何使用套用數學運算

[套用 數學運算 ] 模組需要至少包含一個包含數位之資料行的資料集。 數字可以是離散或連續的,但必須是數值資料類型,而不是字串。

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

此模組的每個實例一次只能執行一種類型的作業。 若要執行複雜的數學運算,您可能需要將 [套用 數學運算 ] 模組的數個實例連結在一起。

  1. 將 [套用 數學運算 ] 模組新增至您的實驗。 您可以在 統計函數 類別中找到此模組。

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

  3. 按一下 [ 類別 ],選取要執行的數學運算 類型

    例如,若要在資料行上進行基本算數運算,請選擇 [ 作業]。 若要取得對數或上限,請選擇 [ 基本]。 若要比較值的資料行,請使用 [ 比較]。

    提示

    所有其他選項都會依據您選擇的數學運算類型而變更。 此外,對類別的任何變更都會重設所有其他選項。 因此,請務必先從 類別目錄 選取!

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

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

    • 您選擇的任何資料行都必須是數值資料類型。
    • 資料的範圍必須適用於所選取的數學運算。 否則可能會發生錯誤或 NaN (不是數字) 結果。 例如,Ln(-1.0) 是無效的運算,而且會產生值 NaN
  6. 設定每一種運算類型所需的其他參數。

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

    • Append。 當做輸入使用的所有資料行都包含在輸出資料集內,再加上一個附加的額外資料行,其中包含數學運算的結果。
    • Inplace。 作為輸入的資料行中的值會取代為新的計算值。
    • ResultOnly。 傳回單一資料行,其中包含數學運算的結果。
  8. 執行實驗,或只以滑鼠右鍵按一下 [套用 數學運算 ] 模組,然後選取 [ 執行選取的]。

結果

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

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

即使您使用 [ 就地 ] 選項,也不會刪除或變更來源資料。在 Studio (傳統) 中,仍可使用原始資料集中的資料行。 若要查看原始資料,您可以連接 [ 加入資料行 ] 模組,並將它聯結至 [套用 數學運算] 的輸出。

基本數學運算

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

機器學習支援基本類別中的下列功能:

Abs

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

Atan2

傳回四象限反正切函數。

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

對應至 Matlab 中的 ATAN2 函數。

Conj

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

CubeRoot

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

DoubleFactorial**

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

Eps

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

Exp

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

Exp2

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

針對 Exp2 ,您可以指定第二個引數 x,它可以是常數或值的另一個資料行。

在 [ 第二個引數類型] 中,指出您是否要將乘數 t 提供為常數,或資料行中的值。

您可以選取具有指數值的單一資料行,或在 [ 常數第二個引數 ] 文字方塊中輸入指數值。 然後,在 [資料 行集] 中,選取包含指數值的資料行。

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

ExpMinus1

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

階乘

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

Hypotenuse

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

ImaginaryPart

傳回選定資料行中之值的虛部。

自然對數

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

LnPlus1

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

記錄

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

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

Log10

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

Log2

針對所選資料行中的值,傳回以2為底數的對數。

NthRoot

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

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

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

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

Pow

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

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

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

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

RealPart

傳回所選資料行中值的實數部分。

Sqrt

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

SqrtPi

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

Square

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

比較運算

使用機器學習 Studio (傳統) 中的比較函式,隨時都需要測試兩組值。 例如,在實驗中,您可能需要執行下列比較作業:

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

EqualTo

如果值相同,則傳回 True。

GreaterThan

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

GreaterThanOrEqualTo

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

LessThan

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

LessThanOrEqualTo

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

NotEqualTo

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

PairMax

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

PairMin

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

算術運算

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

您選擇除法和減法資料行的順序可能會違反直覺;不過,為了讓您更容易瞭解結果,資料行標題會提供作業名稱,以及使用資料行的順序。

作業 Num1 Num2 結果資料行 結果值
加法 1 5 Add(Num2_Num1) 4
乘法 1 5 Multiple(Num2_Num1) 5
1 5 Subtract(Num2_Num1) 4
0 1 Subtract(Num2_Num1) 0
部門 1 5 Divide(Num2_Num1) 5
部門 0 1 Divide(Num2_Num1) Infinity

使用資料 行集來指定來源資料行,然後將 常數作業引數中指定的數位加入至這些值。

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

除以

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

乘以

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

減去

使用 [作業引數] 下拉式清單,指定要 (減數) 減去的數位。 您可以選擇常數或值的資料行。 然後,使用第二個數據行 set選項,藉由選擇不同的資料行,指定要 (被減數) 的值資料行。

您可以從值資料行中的每個值減去常數,但不能減去反向運算。 若要這樣做,請改用加法。

捨入運算

Studio (傳統) 支援各種舍入作業。 對於許多運算而言,您必須指定進位時要使用的精確度量。 您可以使用指定為常數的靜態精確度層級,也可以套用從值資料行取得的動態精確度值。

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

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

Ceiling

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

CeilingPower2

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

樓層

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

Mod

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

商式

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

餘數

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

RoundDigits

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

RoundDown

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

RoundUp

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

ToEven

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

ToOdd

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

Truncate

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

特殊數學函數

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

Beta

傳回歐拉 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

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

Cis

從使用定義 ci θ = cos θ + isin θ的正弦和余弦函數傳回復雜值函式。

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 腳本一次執行所有計算:

一元和二元函數

一元運算中,您會根據資料行值建立計算,而不會參考其他資料行或常數。

例如,您可以將資料行的值截斷至特定精確度、將值進位或捨去,或找出最高限度值或最低限度值。

Abs(X) 是一元運算的範例之一,其中 X 是提供做為輸入的資料行。

二元運算中,您會指定兩組值。 第一個引數必須一律是資料行或一組資料行,而第二個引數可以是您指定為常數或另一個資料行的數位。

Subtract(X,Y) 是使用兩個資料行之二元運算的範例之一,其中 X 是您選取的第一個資料行,Y 是第二個資料行。

Subtract(X,mean) 是使用結合了資料行和常數之二元運算的範例之一,其中,您輸入了資料行平均值做為常數,並將資料行 X 中的每個值減去此常數。

在類別資料行中處理數位

以數位呈現的類別值支援取決於函式,以及函式所採用的引數數目。

  • 如果您的作業包含指定為類別資料行的數位,則可以將一元運算套用至類別資料值。

  • 如果將一元運算套用至類別資料行,則輸入資料行的類別資料值可以轉換為輸出資料行的相同相關聯類別資料值。 在此情況下,值會合並,讓輸出中的類別資料值數目一律小於輸入中的值數目。

  • 如果將二元運算套用至類別資料行和其他資料行,則預期的行為如下所示:

    • 如果另一個是稠密資料行,則輸出資料行是類別資料行。

      輸入中存在的類別資料值會遺失。

      輸出資料行只包含輸出資料行資料中出現的那些值。

    • 如果另一個是稀疏資料行,則輸出資料行是稀疏資料行。

    • 如果二元運算的兩個引數都是稀疏資料行,則產生的資料行會在兩個輸入資料行都包含背景零的所有位置中包含背景零。

處理稀疏資料行

在一元運算中,對應至背景零的稀疏資料行的所有元素都會保持未處理。

在二元運算中,如果有一個引數是稀疏資料行,而另一個引數是密集資料行,則產生的資料行會是稀疏的,而且所有背景零都會從稀疏資料行的輸入傳播。

預期的輸入

名稱 類型 說明
資料集 資料表 輸入資料集

輸出

名稱 類型 說明
結果資料集 資料表 結果資料集

另請參閱

統計函數
A-Z 模組清單