共用方式為


將數據分組到 Bins 元件

本文說明如何使用群組數據到 Azure 機器學習 設計工具中的 Bins 元件,將數位分組或變更連續數據的分佈。

將數據分組至 Bin 元件支援多個量化資料選項。 您可以自定義量化邊緣的設定方式,以及如何將值分派到量化中。例如,您可以:

  • 手動輸入一系列值,做為 bin 界限。
  • 使用 分位數或百分位數排名將值指派給 bin。
  • 強制將值平均分佈到量化中。

進一步瞭解量化和分組

量化或分組數據(有時稱為量化)是準備機器學習數值數據的重要工具。 在這類案例中,它很有用:

  • 連續數字的數據行具有太多唯一值,無法有效地建立模型。 因此,您會自動或手動將值指派給群組,以建立一組較小的離散範圍。

  • 您想要以代表特定範圍的類別值取代數字數據行。

    例如,您可以藉由指定自定義範圍,例如 1-15、16-22、23-30 等方式,將年齡數據行中的值分組。

  • 數據集有一些極端值,全都超出預期範圍,而這些值對定型的模型有超量的影響。 若要減輕模型中的偏差,您可以使用分位數方法將數據轉換成統一分佈。

    使用此方法,將數據分組至 Bins 元件會決定理想的量化位置和量化寬度,以確保大約相同數目的樣本落入每個量化。 然後,根據您選擇的正規化方法,bin 中的值會轉換成百分位數或對應至量化編號。

量化範例

下圖顯示使用 分位數 方法量化前後的數值分佈。 請注意,相較於左側的原始數據,數據已量化並轉換成單位一般小數字數。

結果視覺效果

因為有許多方式可將數據分組,所以所有可自定義,建議您試驗不同的方法和值。

如何將群組數據設定為 Bin

  1. 將群組 數據新增至 Bins 元件至設計工具中的管線。 您可以在資料轉換類別中找到此元件。

  2. 將具有數值數據的數據集連線到 bin。 量化只能套用至包含數值數據的數據行。

    如果數據集包含非數值數據行,請使用 [ 選取數據集 中的數據行] 元件來選取要使用的數據行子集。

  3. 指定量化模式。 量化模式會決定其他參數,因此請務必先選取 [ 量化模式 ] 選項。 支援下列型態的量化:

    • 分位數:分位數方法會根據百分位數排名將值指派給 bin。 這個方法也稱為相等高度量化。

    • 相等寬度:使用此選項時,您必須指定間隔總數。數據行中的值會放在量化中,讓每個間隔在開始和結束值之間具有相同的間隔。 因此,如果數據在某一點周圍縮水,某些量化可能會有更多的值。

    • 自訂邊緣:您可以指定開始每個量化的值。 邊緣值一律是 bin 的下限。

      例如,假設您想要將值分組為兩個量化。一個的值會大於0,一個值會小於或等於0。 在此情況下,針對 bin 邊緣,您會在以逗號分隔的 bin 邊緣清單中輸入 0。 元件的輸出會是 1 和 2,表示每個資料列值的 bin 索引。 請注意,逗號分隔值清單必須以遞增順序排列,例如 1、3、5、7。

    注意

    Entropy MDL 模式是在 Studio 中定義(傳統版),而且沒有對應的 開放原始碼 套件可以運用在設計工具中支援。

  4. 如果您使用 Quantiles 和 Equal Width 量化模式,請使用 [量化數目] 選項來指定您要建立的量化或分位數。

  5. 針對 [ 數據行到量化],使用數據行選取器來選擇具有您要量化值的數據行。 數據行必須是數值數據類型。

    相同的量化規則會套用至您選擇的所有適用數據行。 如果您需要使用不同的方法來量化某些數據行,請針對每組數據行使用個別的 Group Data 實例到 Bins 元件。

    警告

    如果您選擇不是允許類型的數據行,就會產生運行時錯誤。 元件會在找到不允許類型的任何數據行時立即傳回錯誤。 如果您收到錯誤,請檢閱所有選取的數據行。 錯誤不會列出所有無效的數據行。

  6. 針對 [輸出] 模式,指出您要如何輸出量化值:

    • 附加:使用量化值建立新的數據行,並將該數據行附加至輸入數據表。

    • 就地:以數據集中的新值取代原始值。

    • ResultOnly:只傳回結果數據行。

  7. 如果您選取 [ Quantiles 量化] 模式,請使用 [分位數正規化 ] 選項來判斷值在排序為分位數之前如何正規化。 請注意,正規化值會轉換值,但不會影響量化的最終數目。

    支援下列正規化類型:

    • 百分比:值會在 [0,100] 範圍內正規化。

    • PQuantile:值會在 [0,1] 範圍內正規化。

    • QuantileIndex:值會在 [1,bins 數目] 範圍內正規化。

  8. 如果您選擇 [自定義邊緣] 選項,請在 [間隔邊緣] 文本框的逗號分隔清單中輸入逗號分隔的數位清單做為 bin 邊緣

    值會標示分割量化的點。例如,如果您輸入一個 bin 邊緣值,將會產生兩個 bin。 如果您輸入兩個 bin 邊緣值,則會產生三個 bin。

    值必須依照建立間隔的順序排序,從最低到最高。

  9. 選取 [ 將數據行標記為類別 ] 選項,以指出應該將量化數據行當做類別變數來處理。

  10. 提交管線。

結果

群組數據到 Bins 元件會傳回數據集,其中每個元素都已根據指定的模式進行量化。

它也會傳 回量化轉換。 您可以使用相同的量化模式和參數,將該函式傳遞至 套用轉換 元件至量化新數據樣本。

提示

如果您在定型數據上使用量化,則必須在用於測試和預測的數據上使用相同的量化方法。 您也必須使用相同的量化位置和量化寬度。

若要確保數據一律使用相同的量化方法來轉換,建議您儲存有用的數據轉換。 然後使用套用 轉換 元件將它們套用至其他數據集。

下一步

請參閱 Azure 機器學習 可用的元件集。