將資料分組成間隔元件

本文描述如何在 Azure Machine Learning 設計工具中使用「將資料分組成間隔」元件,將數字分組或變更連續資料的分佈。

「將資料分組成間隔」元件支援多個選項來量化資料。 您可以自訂量化邊緣的設定方式,以及如何將值分配到 Bin 中。例如,您可以:

  • 手動輸入一系列值作為 Bin 界限。
  • 使用「分位數」或百分位數排名,將值指派給 Bin。
  • 強制將值平均散發至 Bin。

深入了解量化和群組

「量化 (Binning)」或分組資料 (有時稱為「量化 (Quantization)」)是為機器學習準備數值資料的重要工具。 在如下情節中很有用:

  • 連續數字的資料行有太多唯一值,難以有效建立模型。 因此,您自動或手動將值分配成群組,或建立一組較小的離散範圍。

  • 您想要以代表特定範圍的分類值來取代數字資料行。

    例如,您可能想要藉由指定自訂範圍 (例如,1-15、16-22、23-30 等等) 來將年齡資料行中的值群組在一起,以取得使用者人口統計。

  • 資料集有幾個極端的值,全都在預期的範圍外,而這些值對定型的模型有巨大影響。 為了減少模型中的偏差,您可以使用分位數方法,將資料轉換成均勻分佈。

    使用此方法時,「將資料分組成間隔」元件會決定理想的間隔位置和間隔寬度,以確保大約相同數目的樣本落在每個間隔中。 然後,根據您選擇的正規化方法,間隔中的值會轉換成百分位數或對應到間隔數字。

量化的範例

下圖顯示使用分位數方法進行量化前後,數值的分佈。 請注意,相較於左側的未經處理資料,資料已經過量化並轉換成一般單位的規模。

結果視覺效果

因為有這麼多的方式可將資料分組,而且全部都可以自訂,所以我們建議您試驗不同的方法和值。

如何設定將資料分組成 Bin

  1. 在設計工具中把將資料分組成間隔元件新增至管線。 您可以在資料轉換類別中找到此元件。

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

    如果資料集包含非數值的資料行,請使用選取資料集中的資料行元件,選取要使用的資料行子集。

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

    • 分位數:分位數方法會依據百分位等級,將值指派至分類收納。 此方法也稱為等高量化。

    • 等寬:使用此選項時,您必須指定間隔總數。資料行中的值會放入間隔中,使每個間隔在起始值與結束值之間形成相同的區間。 如此一來,如果資料聚集在特定點周圍,某些分類收納可能會更多值。

    • 自訂邊緣:您可以指定每個 Bin 開頭的值。 邊緣值一律是 Bin 的下限。

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

    注意

    工作室 (傳統) 中定義「熵 MDL」模式,尚無對應的開放原始碼套件可在設計工具中用來支援。

  4. 如果您使用分位數等寬量化模式,請使用 [間隔數目] 選項來指定您要建立多少間隔 (即「分位數」)。

  5. 針對 [要量化的資料行],使用資料行選取器來選擇資料行,其中含有您要量化的值。 資料行必須是數值資料類型。

    相同的量化規則會套用到您選擇的所有適用資料行。 如果您需要使用不同方法來量化一些資料行,請針對每一組資料行,使用個別的「將資料分組成間隔」元件執行個體。

    警告

    如果您選擇的資料行不是允許的類型,則會產生執行階段錯誤。 當元件發現有任何資料行是不允許的類型時,就會立即傳回錯誤。 如果您收到錯誤,請檢閱所有選取的資料行。 此錯誤不會列出所有無效的資料行。

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

    • Append:以量化值建立新的資料行,並附加至輸入資料表。

    • Inplace:以資料集中的新值取代原始值。

    • ResultOnly:只傳回結果資料行。

  7. 如果您選取分位數量化模式,請使用 [分位數正規化] 選項,以決定值在分類為分位數之前如何正規化。 請注意,將值正規化會轉換值,但不會影響最終的間隔數目。

    支援下列正規化類型:

    • Percent:值在 [0,100] 範圍內正規化。

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

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

  8. 如果您選擇 [自訂邊緣] 選項,請在 [量化邊緣的逗號分隔清單] 文字輸入框中,輸入以逗號分隔的數值清單,作為「量化邊緣」。

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

    必須以能夠從最低到最高建立間隔的順序來排序值。

  9. 選取 [將資料行標記為分類] 選項,表示應該將量化資料行當做分類變數來處理。

  10. 提交管線。

結果

「將資料分組成間隔」元件會傳回資料集,其中每個元素都根據指定的模式量化。

也會傳回「量化轉換」。 該函式可以傳遞至套用轉換元件,以使用相同的量化模式和參數來量化新的資料樣本。

提示

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

為確保一律使用相同的量化方法來轉換資料,建議您儲存實用的資料轉換。 然後使用套用轉換元件,將這些方法套用至其他資料集。

後續步驟

請參閱 Azure Machine Learning 可用的元件集