取代離散值
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
根據另一個資料行的數值來取代一個資料行的離散值
Category: 統計函數
模組概觀
本文描述如何使用機器學習 Studio (傳統) 中的「取代離散值」模組來產生可用來代表離散值的機率分數。 此分數有助於瞭解離散值的資訊值。
運作方式:
您可以選取包含離散 (或類別) 值的資料行,然後選取另一個資料行用於參考。
根據第二個數據行是類別或非類別,模組會計算下列其中一個值:
- 第二個數據行的 條件 機率(指定第一個資料行中的值)。
- 第一個資料行中每個值群組的 平均數 和 標準差 。
此模組會輸出包含分數的資料集,以及您可以儲存並套用至其他資料集的函式。
如何設定取代離散值
提示
建議您一次只能使用一對資料行。 如果您選取多個要分析的資料行,此模組不會引發錯誤。 不過,在實務上,如果您選擇多個資料行,這些資料行會由內部啟發學習法進行比對,而不是依選取順序。
因此,我們建議您每次都選取一對資料行,一個用於 離散資料行 ,一個用於 取代資料行。
如果您需要針對多個資料行產生分數,請使用不同的實例來 取代離散值。
將 [ 取代離散值 ] 模組新增至您的實驗。 您可以在機器學習 Studio (傳統) 的實驗專案清單中的統計函數群組中找到此模組。
連線資料集,其中至少包含一個類別目錄資料的資料行。
離散資料行:按一下 [ 啟動資料行選取器 ],選擇包含離散 (或類別) 值的資料行。
您選取的任何離散資料行都必須是類別。 如果您收到錯誤,請使用 [ 編輯中繼資料 ] 模組來變更資料行類型。
取代資料行:按一下 [ 啟動資料行選取器 ],選擇包含用來計算更換分數之值的資料行。
如果您選取 [ 離散資料行的多個資料行],則必須選擇相等的取代資料行數目。
執行實驗。
注意
您無法選擇要套用的統計函數。 此模組會根據針對 [ 取代資料行] 選取之資料行的資料類型,計算適當的量值。
結果
模組會針對每一對資料行計算下列其中一個值:
如果第二個數據行包含類別值,則此模組會計算第二個數據行的 條件 機率,並指定第一個資料行中的值。
例如,假設您選擇
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 錯誤碼。