取代離散值

重要

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 (傳統) 中的「取代離散值」模組來產生可用來代表離散值的機率分數。 此分數有助於瞭解離散值的資訊值。

運作方式:

您可以選取包含離散 (或類別) 值的資料行,然後選取另一個資料行用於參考。

根據第二個數據行是類別或非類別,模組會計算下列其中一個值:

  • 第二個數據行的 條件 機率(指定第一個資料行中的值)。
  • 第一個資料行中每個值群組的 平均數標準差

此模組會輸出包含分數的資料集,以及您可以儲存並套用至其他資料集的函式。

如何設定取代離散值

提示

建議您一次只能使用一對資料行。 如果您選取多個要分析的資料行,此模組不會引發錯誤。 不過,在實務上,如果您選擇多個資料行,這些資料行會由內部啟發學習法進行比對,而不是依選取順序。

因此,我們建議您每次都選取一對資料行,一個用於 離散資料行 ,一個用於 取代資料行

如果您需要針對多個資料行產生分數,請使用不同的實例來 取代離散值

  1. 將 [ 取代離散值 ] 模組新增至您的實驗。 您可以在機器學習 Studio (傳統) 的實驗專案清單中的統計函數群組中找到此模組。

  2. 連線資料集,其中至少包含一個類別目錄資料的資料行。

  3. 離散資料行:按一下 [ 啟動資料行選取器 ],選擇包含離散 (或類別) 值的資料行。

    您選取的任何離散資料行都必須是類別。 如果您收到錯誤,請使用 [ 編輯中繼資料 ] 模組來變更資料行類型。

  4. 取代資料行:按一下 [ 啟動資料行選取器 ],選擇包含用來計算更換分數之值的資料行。

    如果您選取 [ 離散資料行的多個資料行],則必須選擇相等的取代資料行數目。

  5. 執行實驗。

    注意

    您無法選擇要套用的統計函數。 此模組會根據針對 [ 取代資料行] 選取之資料行的資料類型,計算適當的量值。

結果

模組會針對每一對資料行計算下列其中一個值:

  • 如果第二個數據行包含類別值,則此模組會計算第二個數據行的 條件 機率,並指定第一個資料行中的值。

    例如,假設您選擇 occupation人口普查 資料集做為離散資料行,並選擇 gender 做為取代資料行。 模組的輸出會是:

    P(gender | occupation)

  • 如果第二個數據行包含可以轉換成數位的非類別值 (例如 標示為類別) 的數值或布林值,則此模組會針對第一個資料行中的每個值群組,輸出 平均值標準差

    例如,假設您使用 occupation 做為 離散資料行 ,而另一個資料行是數值資料行 hours-per-week 。 此模組會輸出這些新的值:

    Mean(hours-per-week | occupation)

    Std-Dev(hours-per-week | occupation)

除了機率分數之外,模組也會輸出已轉換的資料集。 在此資料集中,選取做為 取代資料行 的資料行會取代為包含計算分數的資料行。

提示

作業不會實際變更或刪除源資料集中的資料行。分數資料行是由模組和輸出所產生的新資料行,而不是來源資料。

若要同時查看來源值和機率分數,請使用「 加入資料行 」模組。

範例

一些簡單的範例可說明 取代離散值 的使用方式。

範例 1-將類別值取代為機率分數

下表包含類別一個資料行 X 和一個含有 True/False 值 (視為類別值) 的資料行 Y。 當您使用 [ 取代離散值] 時,它會計算 Y 指定 X 之機率的條件機率分數,如第三個數據行所示。

X Y P(Y|X)
藍色 0 P(Y=0|X=Blue) = 0.5
藍色 1 P(Y=1|X=Blue) = 0.5
綠色 0 P(Y=0|X=Green) = 2/3
綠色 0 P(Y=0|X=Green) = 2/3
綠色 1 P(Y=1|X=Green) = 1/3
紅色 0 P(Y=0|X=Red) = .75
紅色 0 P(Y=0|X=Red) = .75
紅色 1 P(Y=1|X=Red) = .25
紅色 0 P(Y=0|X=Red) = .75

範例 2-根據非類別資料行計算平均值和標準差

當第二個數據行是數值時, 取代離散值 會計算平均值和標準差,而不是條件機率分數。

下列範例是以 自動價格 範例資料集為基礎,簡化如下:

  • 已選取一小部分的資料行。

  • 使用資料分割和範例模組的Head選項,只解壓縮前30個數據列。

  • 取代離散值 」模組是用來計算車輛路緣權數的 平均值標準差 。 指定類別資料行 num-of-doors

下表說明結果:

主體 Num-of-doors Curb-weight Mean(curb-weight|num-of-doors) Std-Dev(curb-weight|num-of-doors)
std two 2548 2429.785714 507.45699
std 四個 2337 2625.6 493.409877
std two 2507 2429.785714 507.45699
turbo 四個 3086 2625.6 5 493.409877
std 四個 1989 2625.6 493.409877
turbo 2191
std 四個 2535 2625.6 493.409877

您可以使用 Excel 中的 AVERAGEIF 函數,來確認每個值群組的平均值。

範例 3-處理遺漏值

此範例示範如何在計算條件機率分數時,將遺漏值 (null) 傳播至結果。

  • 如果離散值資料行和計算查閱資料行未包含任何遺漏值,則遺漏值會傳播到新的資料行。

  • 如果離散值資料行只包含遺漏值,則此模組無法處理資料行並出現錯誤訊息。

X Y P(Y|X)
1 True P(Y=true|X=1) = 1/2
1 False P(Y=false|X=1) = 1/2
2 True P(Y=true|X=2) = 1/3
2 False P(Y=false|X=2) = 1/3
2 Null P(Y=null|X=2) = null

技術說明

  • 您必須確保您要取代的任何離散資料行是類別,否則此模組會傳回錯誤。 若要這樣做,請使用 [ 編輯中繼資料 ] 模組。

  • 如果第二個資料行包含布林值,則會將 True-False 值視為數值來處理,FALSE 和 TRUE 分別等同於 0 和 1。

  • 標準差資料行的公式會計算母體標準差。 因此,在分母中使用 N,而不是 (N-1) 。

  • 如果第二個數據行包含 (數值或布林值) 的非類別資料,則此模組會針對 X 的給定值,計算 Y 的平均數和標準差。

    也就是說,針對資料集中的每個資料列,依下列方式 i 編制索引:

    Mean(Y│X)i = Mean(Y│X = Xi)

    StdDev(Y│X)i = StdDev(Y│X = Xi)

  • 如果第二個數據行包含類別資料,或是不是數值或布林值的值,則此模組會針對 X 的給定值,計算 Y 的條件機率。

  • 第二個資料行中的任何布林值視為數值資料來處理,FALSE 和 TRUE 分別等同於 0 和 1。

  • 如果離散資料行中有一個組,使得含有遺漏值的資料列出現在第二個資料行中,則此組內的條件機率的總和小於 1。

預期的輸入

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

模組參數

名稱 範圍 類型 預設 描述
離散資料行 任意 ColumnSelection 選取包含離散值的資料行
取代資料行 任意 ColumnSelection 選取包含要用來取代離散值之資料的資料行

輸出

名稱 類型 說明
補充資料集 資料表 含有被取代資料的資料集
轉換函數 ITransform 介面 轉換函數的定義,可以套用至其他資料集

例外狀況

例外狀況 描述
錯誤 0001 如果找不到資料集的一或多個指定的資料行,就會發生例外狀況。
錯誤 0003 如果一或多個輸入為 Null 或空白,就會發生例外狀況。
錯誤 0020 如果傳遞給模組的某些資料集的資料行數目太少,就會發生例外狀況。
錯誤 0021 如果傳遞給模組的某些資料集的資料列數目太少,就會發生例外狀況。
錯誤 0017 如果一或多個指定的資料行具有目前的模組不支援的型別,就會發生例外狀況。
錯誤 0026 不允許具有相同名稱的資料行時,就會發生例外狀況。
錯誤 0022 如果輸入資料集中選取的資料行數目不等於預期的數目,就會發生例外狀況。

如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼

如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼

另請參閱

統計函數