共用方式為


分割數據元件

本文說明 Azure 機器學習 設計工具中的元件。

使用分割數據元件將數據集分割成兩個不同的集合。

當您需要將數據分成定型和測試集時,此元件很有用。 您也可以自訂資料分割的方式。 某些選項支持數據隨機化。 其他則是針對特定數據類型或模型類型量身打造。

設定元件

提示

選擇分割模式之前,請先閱讀所有選項,以判斷您需要的分割類型。 如果您變更分割模式,可能會重設所有其他選項。

  1. 將分割 數據 元件新增至設計工具中的管線。 您可以在 [範例和分割] 類別的 [資料轉換] 下找到此元件。

  2. 分割模式:選擇下列其中一種模式,視您擁有的數據類型以及要如何分割它而定。 每個分割模式都有不同的選項。

    • 分割數據列:如果您只想將數據分割成兩個部分,請使用此選項。 您可以指定要放入每個分割的數據百分比。 根據預設,數據會除以 50/50。

      您也可以隨機選取每個群組中的數據列,並使用分層取樣。 在分層取樣中,您必須選取要讓值在兩個結果數據集之間平均分配的單一數據行。

    • 正則表達式分割:當您想要藉由測試單一數據行的值來分割數據集時,請選擇此選項。

      例如,如果您正在分析情感,您可以檢查文字欄位中是否有特定產品名稱。 然後,您可以使用目標產品名稱和數據列,將數據集分割成數據列,而不需要目標產品名稱。

    • 相對表達式分割:每當您想要將條件套用至數位數據行時,請使用此選項。 數位可以是日期/時間欄位、包含年齡或金額的數據行,甚至是百分比。 例如,您可能想要根據專案成本、依年齡範圍分組人員,或依行事曆日期分隔數據,來分割數據集。

分割數據列

  1. 將分割 數據 元件新增至設計工具中的管線,並連接您要分割的數據集。

  2. 針對 [ 分割模式],選取 [ 分割數據列]。

  3. 第一個輸出數據集中的數據列分數:使用此選項來判斷將有多少數據列進入第一個 (左側) 輸出。 所有其他數據列都會進入第二個 (右側) 輸出。

    比率代表傳送至第一個輸出數據集的數據列百分比,因此您必須輸入介於 0 到 1 之間的十進位數。

    例如,如果您輸入 0.75 做為值,數據集將會分割 75/25。 在此分割中,75% 的數據列將會傳送至第一個輸出數據集。 其餘 25% 會傳送至第二個輸出數據集。

  4. 如果您想要將數據選取範圍隨機化為兩個群組,請選取 [ 隨機分割 ] 選項。 當您建立定型和測試數據集時,這是慣用的選項。

  5. 隨機種子:如果 隨機分割 設定為 false,則會忽略此參數。 否則,請輸入非負整數值,以啟動要使用的實例虛擬隨機序列。 這個預設種子會用於產生隨機數的所有元件中。

    指定種子可重現結果。 如果您需要重複分割作業的結果,您應該為隨機數產生器指定相同的種子編號。

  6. 分層分割:將此選項設定為 True,以確保兩個輸出數據集包含階層數據行或分層索引鍵數據行中值的代表性樣本。

    使用分層取樣時,數據會分割,讓每個輸出數據集取得每個目標值的大致相同百分比。 例如,您可能想要確保定型和測試集在結果或其他數據行(例如性別)方面大致平衡。

  7. 提交管線。

選取正則表達式

  1. 將分割 數據 元件新增至管線,並將它當做輸入連接到您想要分割的數據集。

  2. 針對 [分割模式],選取 [正則表示式分割]。

  3. 在 [ 正則表達式] 方塊中 ,輸入有效的正則表達式。

    正則表達式應該遵循正則表達式的 Python 語法。

  4. 提交管線。

    根據您提供的正則表示式,數據集分成兩組數據列:具有符合運算式和所有剩餘數據列的值的數據列。

下列範例示範如何使用正則表達式選項來分割數據集

單一單字

本範例會將包含數據行 Text中文字Gryphon的所有數據列放入第一個數據集中。 它會將其他數據列放入分割數據的第二個輸出中。

    \"Text" Gryphon  

本範例會在數據集第二個數據行內的任何位置尋找指定的字串。 位置會以 1 的索引值表示在這裡。 該比對會區分大小寫。

(\1) ^[a-f]

第一個結果資料集包含索引資料行開頭為下列其中一個字元的所有資料列:a、、、bcdef。 所有其他數據列都會導向至第二個輸出。

選取相對表達式

  1. 將分割 數據 元件新增至管線,並將它當做輸入連接到您想要分割的數據集。

  2. 針對 [分割模式],選取 [ 相對表達式]。

  3. 在 [ 關係表達式 ] 方塊中,輸入在單一數據行上執行比較作業的表達式。

    針對 [數值] 資料列

    • 數據列包含任何數值數據類型的數位,包括日期和時間數據類型。
    • 表達式最多可以參考一個數據行名稱。
    • 針對 AND 作業使用連字元和字元 &。 針對 OR 作業使用管道字元 |
    • 支援下列運算子:<、、、><=>===!=
    • 您無法使用 ()將作業分組。

    針對 [字串] 資料列

    • 支援下列運算子: ==!=
  4. 提交管線。

    表達式會將數據集分成兩組數據列:具有符合條件值的數據列,以及所有剩餘的數據列。

下列範例示範如何使用分割數據元件中的 [相對運算式] 選項來分割數據集

歷年

常見的案例是將數據集除以數年。 下列表達式會選取數據行中值大於 2010的所有數據列Year

\"Year" > 2010

日期表達式必須考慮數據行中包含的所有日期部分。 數據行中的日期格式必須一致。

例如,在使用 格式 mmddyyyy的日期數據行中,表達式應該如下所示:

\"Date" > 1/1/2010

數據行索引

下列表達式示範如何使用數據行索引來選取數據集第一個數據行中的所有數據列,其中包含小於或等於 30 的值,但不等於 20。

(\0)<=30 & !=20

下一步

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