本文說明 Azure 機器學習 設計工具中的元件。
使用此元件透過正規化轉換數據集。
正規化是通常會在機器學習數據準備中套用的技術。 正規化的目標是將數據集中的數值數據行值變更為使用一般小數位數,而不會扭曲值範圍的差異或遺失資訊。 某些演算法也需要正規化,才能正確建立數據模型。
例如,假設您的輸入數據集包含一個數據行,其值範圍從0到1,而另一個資料行的值範圍從10,000到100,000。 當您嘗試在模型化期間將值合併為特徵時,數位小數位數的巨大差異可能會導致問題。
正規化 可藉由建立新的值來避免這些問題,這些值會維護源數據中的一般分佈和比例,同時將值保留在模型中使用的所有數值數據行內套用的尺規內。
此元件提供數個選項來轉換數值資料:
- 您可以將所有值變更為 0-1 小數位數,或將值表示為百分位數排名,而不是絕對值來轉換值。
- 您可以將正規化套用至單一數據行,或套用至相同數據集中的多個數據行。
- 如果您需要重複管線,或將相同的正規化步驟套用至其他數據,您可以將步驟儲存為正規化轉換,並將其套用至具有相同架構的其他數據集。
警告
某些演算法需要在定型模型之前將數據正規化。 其他演算法會執行自己的數據調整或正規化。 因此,當您選擇要用於建置預測模型的機器學習演算法時,請務必先檢閱演算法的數據需求,再將正規化套用至定型數據。
設定標準化數據
您一次只能使用此元件套用一個正規化方法。 因此,相同的正規化方法會套用至您選取的所有數據行。 若要使用不同的正規化方法,請使用 Normalize Data 的第二個實例。
將 [標準化數據 ] 元件新增至管線。 您可以在 [調整和縮減] 類別的 [數據轉換] 底下,在 Azure 機器學習 中找到元件。
連接包含至少一個所有數位數據行的數據集。
使用 [資料行選取器] 選擇要正規化的數值資料行。 如果您未選擇個別數據行,則預設會包含輸入中的所有數值類型數據行,並將相同的正規化程式套用至所有選取的數據行。
如果您包含不應該正規化的數值數據行,這可能會導致奇怪的結果! 請務必仔細檢查數據行。
如果未偵測到數值數據行,請檢查數據行元數據,以確認數據行的數據類型是否為支援的數值類型。
提示
為了確保特定類型的數據行是以輸入的形式提供,請嘗試在標準化數據之前使用選取數據集中的數據行元件。
核取時,請針對常數數據行使用 0:當任何數值數據行包含單一未變更的值時,請選取此選項。 這可確保這類數據行不會用於正規化作業。
從 [ 轉換方法 ] 下拉式清單中,選擇單一數學函式,以套用至所有選取的數據行。
Zscore:將所有值轉換成 z 分數。
資料列中的值會使用下列公式來轉換:
平均和標準偏差會分別計算每個數據行。 使用母體標準偏差。
MinMax:min-max 正規化程式會以線性方式將每個功能重新調整為 [0,1] 間隔。
重新調整為 [0,1] 間隔是藉由將每個特徵的值移位,使最小值為0,然後除以新的最大值(這是原始最大值和最小值之間的差異)。
資料列中的值會使用下列公式來轉換:
羅吉斯:數據行中的值會使用下列公式來轉換:
LogNormal:此選項會將所有值轉換成對數正規小數位數。
資料列中的值會使用下列公式來轉換:
此處μ和σ是每個數據行分別根據數據的經驗計算的分佈參數,作為最大可能性估計值。
TanH:所有值都會轉換成雙曲正切值。
資料列中的值會使用下列公式來轉換:
提交管線,或按兩下 [標準化數據 ] 元件,然後選取 [ 執行選取]。
結果
標準化資料元件會產生兩個輸出:
若要檢視轉換的值,請以滑鼠右鍵單擊元件,然後選取 [ 可視化]。
根據預設,值會就地轉換。 如果您想要比較轉換的值與原始值,請使用 [加入 數據行] 元件來重新組合數據集,並排檢視數據行。
若要儲存轉換,以便將相同的正規化方法套用至另一個數據集,請選取元件,然後在右面板中的 [輸出] 索引卷標下選取 [註冊數據集]。
然後,您可以從左窗格的 [ 轉換 ] 群組載入已儲存的轉換,然後使用 [ 套用轉換] 將它套用至具有相同架構的數據集。