將資料標準化

重要

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

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

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

重新調整數值資料以將資料集值限制為標準範圍

類別: 資料轉換/調整和縮減

注意

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

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

模組概觀

本文說明如何使用 機器學習 Studio (傳統) 中的Normalize Data模組,透過正規化轉換資料集。

正規化是一種技術,通常會在機器學習的資料準備過程中套用。 正規化的目標是要將資料集中數值資料行的值變更為使用一般縮放,而不會在值範圍下產生扭曲差異或遺失資訊。 某些演算法也需要正規化,才能正確地為資料建立模型。

例如,假設您的輸入資料集包含一個資料行,其值範圍從 0 到 1,而另一個資料行的值範圍從 10,000 到 100,000。 嘗試在模型化期間將值結合成特徵時,數值量表的大幅差異可能會造成問題。

正規化可避免這些問題,方法是建立新的值,以在來源資料中保有一般分佈和比例,同時將量表內的值對模型中所使用的所有數值資料行套用。

此課程模組提供數個選項來轉換數值資料:

  • 您可以將所有值變更為 0-1 量表,或藉由將它們以百分位數排名而非絕對值表示來轉換值。
  • 您可以將正規化套用至單一資料行,或相同資料集中的多個資料行。
  • 如果您需要重複實驗,或將相同的正規化步驟套用至其他資料,您可以將步驟儲存為正規化轉換,並將其套用至具有相同架構的其他資料集。

警告

有些演算法會要求在定型模型之前必須先將資料正規化。 其他演算法則會執行其本身的資料調整或正規化。 因此,選擇要在建置預測性模型中使用的機器學習演算法時,請務必先檢閱演算法的資料需求,然後再將正規化套用至定型資料。

如何設定標準化資料

您一次只能使用此課程模組來套用一個正規化方法。 因此會將相同的正規化方法套用至您選取的所有資料行。 若要使用不同的正規化方法,請使用正規化資料的第二個執行個體。

  1. 標準化資料 模組新增至實驗。 您可以在 [調整和縮減] 類別的 [資料轉換] 底下,于 [機器學習 Studio] (傳統) 中找到模組。

  2. 連接包含至少一個全為數字資料行的資料集。

  3. 使用資料行選取器來選擇要正規化的數值資料行。 如果您未選擇個別資料行,則預設會包含輸入中的所有數值類型資料行,並將相同的正規化程序套用至所有選取的資料行。

    如果您包含不應該正規化的數值資料行,這可能會導致奇怪的結果! 一律仔細檢查資料行。

    如果未偵測到任何數值資料行,請檢查資料行中繼資料,以驗證資料行的資料類型是支援的數值類型。

    提示

    若要確保提供特定類型的資料行做為輸入,請在正規化資料之前,先嘗試使用 [選取資料集中的資料行]模組。

  4. 核取時對常數資料行使用 0:當任何數值資料行包含單一不變的值時,請選取此選項。 這可確保在正規化作業中不會使用這類資料行。

  5. [轉換方法] 下拉式清單中,選擇要套用至所有選取資料行的單一數學函數。

    • Zscore:將所有值轉換為 z 分數。

      資料行中的值會使用下列公式進行轉換:

      normalization using z-scores

      平均值和標準差會針對每個資料行而分開計算。 使用母體擴展標準差。

    • MinMax:min-max 正規器會以線性方式將每個特徵重新調整為 [0,1] 間隔。

      轉換每個特徵的值而使最小值為 0,然後再除以新的最大值 (這是原始最大值與最小值之間的差異),重新調整為 [0,1] 間隔的作業即完成。

      資料行中的值會使用下列公式進行轉換:

      normalization using the min-max function

    • Logistic:資料行中的值會使用下列公式進行轉換:

      formula for normalization by logistic function

    • LogNormal:此選項會將所有的值轉換為對數量表。

      資料行中的值會使用下列公式進行轉換:

      formula log-normal distribution

      這裡的 μ 和 σ 是分佈的參數,針對每個資料行而分開計算,從資料中根據實證以最大可能性估計來計算。

    • TanH:所有值都會轉換為雙曲正切。

      資料行中的值會使用下列公式進行轉換:

      normalization using the tanh function

  6. 執行實驗,或按兩下 [正規化資料 ] 模組,然後選取 [ 執行選取]。

結果

標準化資料模組會產生兩個輸出:

  • 若要檢視轉換的值,請以滑鼠右鍵按一下模組,選取 [ 已轉換的資料集],然後按一下 [ 視覺化]。

    預設會就地轉換值。 如果您想要比較已轉換的值與原始值,請使用 [新增 資料行] 模組來重新組合資料集,並排檢視資料行。

  • 若要儲存轉換,以便您將相同的正規化方法套用至另一個類似的資料集,請以滑鼠右鍵按一下模組,選取 [轉換函式],然後按一下 [ 另存新檔轉換]。

    然後,您可以從左側瀏覽窗格的 [轉換] 群組載入已儲存的轉換,然後使用套用轉換將它套用至具有相同結構描述的資料集。

範例

如需如何在機器學習中使用正規化的範例,請參閱 Azure AI 資源庫

  • 信用風險預測:在此範例中,正規化會套用至類別資料行以外的所有數值資料,也就是信用風險分數。 這個範例會使用 tanh 轉換,將所有數值特徵轉換成 0-1 範圍內的值。

技術說明

本課程模組僅支援 How to 區段中所列的標準正規化方法,而且不支援矩陣正規化或其他複雜的轉換。

如果您需要建立自訂正規化方法,您可以使用 執行 R 腳本執行 Python 腳本 模組來計算並套用轉換。

套用正規化的演算法

正規化功能,使其使用一般規模是許多機器學習演算法的一般需求。

  • 在線性分類演算法中,會將執行個體視為多維度空間中的向量。 由於原始資料的值範圍變化很大,因此有些目標函數未經正規化即無法正常運作。 例如,如果其中一項特徵的值範圍很大,則點之間的距離就會受到此特徵的控制。

    因此應正規化數值特徵,使每個特徵均等地貢獻於最終距離。 這可以大幅提升速度和精確度。

  • 使用 羅吉斯回歸平均 Perceptron 演算法時,根據預設,特徵會在定型之前正規化。

延伸閱讀和資源

如果您不確定哪種類型的正規化適合您的資料,請參閱下列資源:

  • 建議「我的資料模組」:Azure ML小組成員的這個自訂模組會評估您的資料集,並建議清除和調整資料的步驟。

  • 特徵調整:Wikipedia 中的本文說明用來正規化數值資料的基本方法。

  • 資料採礦的資料準備 涵蓋許多資料準備步驟。 如需資料正規化的討論,請參閱第 7 章。

預期的輸入

名稱 類型 描述
資料集 資料表 輸入資料集

模組參數

名稱 範圍 類型 預設 描述
轉換方法 任意 TransformationMethods ZScore 選擇用於調整的數學方法
要轉換的資料行 任意 ColumnSelection NumericAll 選取要套用所選轉換的所有資料行

輸出

名稱 類型 描述
已轉換的資料集 資料表 已轉換的資料集
轉換函數 ITransform 介面 轉換函數的定義,可以套用至其他資料集

例外狀況

例外狀況 描述
錯誤 0001 如果找不到資料集的一或多個指定的資料行,就會發生例外狀況。
錯誤 0003 如果一或多個輸入為 Null 或空白,就會發生例外狀況。
錯誤 0017 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。
錯誤 0020 如果傳至模組的某些資料集中的資料行數目太少,就會發生例外狀況。
錯誤 0021 如果傳至模組的某些資料集中的資料列數目太少,就會發生例外狀況。

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

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

另請參閱

擴充和縮減