剪輯值
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
偵測極端值並裁剪或取代值
類別: 資料轉換/調整和縮減
模組概觀
本文說明如何使用機器學習 Studio (傳統) 中的 [剪輯值] 模組,來識別並選擇性地取代高於或低於指定臨界值的資料值。 當您想要移除極端值,或將它們取代為平均值、常數或其他替代值時,這會很有用。
您可以將模組連接到具有您要裁剪之數位的資料集、選擇要使用的資料行,然後設定閾值或值範圍,以及取代方法。 模組只會輸出結果,或是附加至原始資料集的變更值。
如何設定裁剪值
開始之前,請先識別您想要裁剪的資料行,以及要使用的方法。 建議您首先對小型資料子集測試任何裁剪方法。
模組會將相同的準則和取代方法套用至您在選取專案中包含的 所有 資料行。 因此,請務必排除您不想要變更的資料行。
如果您需要將裁剪方法或不同準則套用至某些資料行,則必須針對每一組類似的資料行使用新的裁剪值執行個體。
將 [ 剪輯值 ] 模組新增至您的實驗,並將其連接至您想要修改的資料集。 您可以在 [ 資料轉換] 下的 [ 調整規模和縮減 ] 分類中找到此模組。
在 [資料行清單] 中,使用資料行選取器來選擇將套用 [裁剪值] 的資料行。
針對 [閾值集],從下拉式清單中選擇下列其中一個選項。 這些選項會決定您如何設定可接受值的上限和下限,以及必須裁剪的值。
ClipPeaks:當您依尖峰來裁剪值時,只會指定上限。 會取代或移除大於該界限值的值。
ClipSubpeaks:當您依子尖峰來裁剪值時,只會指定較低的界限。 小於界限值的值會被取代或移除。
ClipPeaksAndSubpeaks:當您依尖峰和子尖峰來裁剪值時,您可以同時指定上限和下限。 範圍外的值會被取代或移除。 值若符合界限值,不會變更。
根據您在上一個步驟中所做的選取,您可以設定下列閾值:
- 閾值下限:只在您選擇 ClipSubPeaks 時才會顯示
- 閾值上限:只在您選擇 ClipPeaks 時才會顯示
- 閾值:只在您選擇 ClipPeaksAndSubPeaks 時才會顯示
針對每個閾值類型,選擇 [常數] 或 [百分位數]。
如果您選取 [常數],請在文字方塊中輸入最大值或最小值。 例如,假設您知道值 999 是用作預留位置值。 您可以針對上限臨界值選擇 [ 常數 ],然後在 [ 上限閾值] 的 [常數值] 中輸入999。
如果您選擇 [百分位數],則會將資料行的值限制為百分位數範圍。
例如,假設您只想保留 10-80 百分位數範圍中的值,並取代所有其他值。 您可以選擇 [ 百分位數],然後針對 [臨界 值下限] 的百分位數輸入10,然後針對 [ 臨界值上限] 的百分位數值輸入80。
如需如何使用百分位數範圍的一些範例,請參閱百分位數一節。
定義替代值。
完全符合您剛剛指定之界限的數位會被視為在允許的值範圍內,因此不會被取代或移除。 落在指定範圍外的所有數字都會以替代值取代。
- 替代尖峰的值:定義值來取代大於指定閾值的所有資料行值。
- 替代次尖峰的值:定義值來用作替代值,以替代小於指定閾值的所有資料行值。
- 如果您使用 ClipPeaksAndSubpeaks 選項,則可以針對裁剪值上限和下限指定不同的取代值。
支援下列取代值:
閾值:將裁剪的值取代為指定的閾值。
平均值:將裁剪的值取代為資料行值的平均值。 平均值是在裁剪值之前進行計算。
中間值:將裁剪的值取代為資料行值的中間值。 中間值是在裁剪值之前進行計算。
遺漏. 將裁剪的值取代為遺漏 (空白) 值。
新增指標資料行:如果您想要產生新的資料行,告訴您指定的裁剪作業是否套用到該資料列中的資料,請選取此選項。 當您測試一組新的裁剪和替代值時,這個選項特別有用。
覆寫旗標:指出您要如何產生新值。 根據預設,裁剪值會建立新的資料行,其中尖峰值會裁剪為所需的閾值。 新值會覆寫原始資料行。
若要保留原始資料行並新增具有裁剪值的新資料行,請取消選取此選項。
執行實驗。
以滑鼠右鍵按一下 [ 剪輯值 ] 模組的輸出,然後選取 [ 視覺化 ] 來檢查值,並確定裁剪作業符合您的期望。
範例
若要查看如何在機器學習實驗中使用此模組,請參閱 Azure AI 資源庫:
- 樹系火災極端值:此範例來自于資料科學中的 EdX couse 示範如何使用樹系引發範例資料集來裁剪方法。
使用百分位數裁剪
為了瞭解如何依百分位數來裁剪,假設資料集有 10 個資料列,每一個值 1-10 各有一個執行個體。
如果您使用百分位數做為臨界值上限,並決定值為第 90 個百分位數,則資料集的所有值中,90% 必須小於該值。
如果您使用百分位數做為臨界值下限,並決定值為第 10 個百分位數,則資料集的所有值中,10% 必須小於該值。
在 [臨界值設定] 中,選擇 [ClipPeaksAndSubPeaks]。
針對 [閾值上限],選擇 [百分位數],而針對 [百分位數],則輸入 90。
針對 [替代值上限],選擇 [遺漏值]。
在 [臨界值下限] 中選擇 [百分位數],在 [百分位數] 中輸入 10。
針對 [替代值下限],選擇 [遺漏值]。
取消選取 [覆寫旗標] 選項,並選取 [新增指標資料行] 選項。
現在,使用 60 做為百分位數臨界值上限和 30 做為百分位數臨界值下限,嘗試進行相同的實驗,並使用臨界值做為取代值。 下表比較這兩個結果:
取代遺漏;臨界值上限 = 90;臨界值下限 = 10
取代臨界值;百分位數上限 = 60;百分位數下限 = 30
原始資料 | 取代遺漏 | 取代臨界值 |
---|---|---|
1 2 3 4 5 6 7 8 9 10 |
TRUE true 3, FALSE 4, FALSE 5, FALSE 6, FALSE 7, FALSE 8, FALSE 9, FALSE true |
4, TRUE 4, TRUE 4, TRUE 4, TRUE 5, FALSE 6, FALSE 7, TRUE 7, TRUE 7, TRUE 7, TRUE |
技術說明
您只能在包含數位或日期/時間值的資料行上使用 [ 裁剪值 ]。
如果您包含具有文字或類別資料的資料行,將會略過這些資料行。
計算資料行的平均數或中位數時會忽略遺漏值。
[裁剪值] 不支援序數資料。
遺渥值傳播至輸出資料集時不會變更。 指出裁剪值的資料行一律包含 FALSE 來代表遺漏值。
預期的輸入
名稱 | 類型 | 說明 |
---|---|---|
資料集 | 資料表 | 輸入資料集 |
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
加入指標資料行 | TRUE/FALSE | Boolean | FALSE | 是否要加入指標以進行值的剪切 |
下限臨界值的常數值 | 任意 | Float | -1 | 將會裁剪 subpeaks 的值 |
上限臨界值的常數值 | 任意 | Float | 1 | 將會裁剪尖峰的上方值 |
下限臨界值的常數值 | 任意 | Float | -1 | Subpeaks 要裁剪的值 |
上限臨界值的常數值 | >=1 | Float | 1 | 已裁剪尖峰的上方值 |
資料行清單 | ColumnSelection | 要裁剪的資料行清單 | ||
較低的替代值 | 臨界值 平均數 Median Missing |
SubstituteValues | 臨界值 | 用於裁剪 subpeaks 的值 |
下限臨界值 | 常數 百分位數 |
閾值模式 | 常數 | Subpeaks 將會被裁剪模式的值 |
覆寫旗標 | TRUE/FALSE | Boolean | TRUE | (s 的裁剪資料行) 必須覆寫輸入資料行 (s) |
下限臨界值的百分位數數字 | [1; 99] | 整數 | 1 | 將會裁剪 subpeaks 的百分位數 |
上限臨界值的百分位數數字 | [1; 99] | 整數 | 99 | 將會裁剪尖峰的百分位數 |
下限臨界值的百分位數數字 | [1; 99] | 整數 | 1 | Subpeaks 被剪下的百分位數 |
上限臨界值的百分位數數字 | [1; 99] | 整數 | 99 | 已裁剪尖峰的百分位數 |
臨界值的集合 | ClipPeaks ClipSubPeaks ClipPeaksAndSubPeaks |
閾值設定 | ClipPeaks | 指定要使用的閾數值型別 |
peaks 的替代值 | 臨界值 平均數 Median Missing |
SubstituteValues | 臨界值 | 裁剪尖峰期間使用的值 |
Subpeaks 的替代值 | 臨界值 平均數 Median Missing |
SubstituteValues | 臨界值 | 裁剪期間使用的值 subpeaks |
臨界值 | 常數 百分位數 |
閾值模式 | 常數 | 高於和低於此值的尖峰將會裁剪模式 |
上方替代值 | 臨界值 平均數 Median Missing |
臨界值 | 臨界值 | 用於裁剪尖峰的值 |
上限臨界值 | 常數 百分位數 |
閾值模式 | 常數 | 高於此值的尖峰將會裁剪模式 |
輸出
名稱 | 類型 | 說明 |
---|---|---|
結果資料集 | 資料表 | 含裁剪資料行的資料集 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0011 | 如果傳遞的資料行集引數不適用於任何資料集資料行,就會發生例外狀況。 |
錯誤 0017 | 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。