共用方式為


資料分割和取樣

重要

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

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

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

根據取樣建立資料集的多個資料分割

類別: 資料轉換/取樣和分割

注意

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

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

模組概觀

本文描述如何在機器學習 Studio (傳統) 中使用資料分割和範例模組,以在資料集上執行取樣,或從您的資料集建立資料分割。

取樣是重要的工具,在機器學習,因為它可讓您同時維持相同值的比例減少資料集的大小。 此模組支援在機器學習中有幾個重要的相關工作:

  • 將資料分割成多個相同大小的子區段。

    您可以使用分割區進行交叉驗證,或將案例指派給隨機群組。

  • 將資料分隔成群組,然後使用特定群組中的資料。

    將案例隨機指派給不同群組之後,您可能需要修改僅與一個群組相關聯的功能。

  • 取樣。

    您可以擷取一定百分比的資料、套用隨機取樣,或選擇資料行來用於平衡資料集並分層取樣其中的值。

  • 建立較小的資料集來用於測試。

    如果您有大量資料,您可能只想在設定實驗時使用前 n 個數據列,然後在建立模型時,切換到使用完整的資料集。 您也可以使用取樣來建立較小的資料集,以供開發使用。

如何設定資料分割和範例

此模組支援多種方法,以將您的資料分割成資料分割或進行取樣。 先選擇方法,然後再設定方法所需的其他選項。

  • 取得頂端的資料列數目

從資料集取得 TOP N 個資料列

使用此模式可取得的第一個n資料列。 如果您想要測試少量資料列的實驗,而且不需要以任何方式平衡或取樣資料,這個選項就很有用。

  1. 將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。

  2. 分割或取樣模式:將此選項設定為 [頭]。

  3. 要選取的資料列數目:輸入要傳回的資料列數目。

    您指定的資料列數目必須為非負整數。 如果選取的資料列數目大於資料集的資料列數目,則會傳回整個資料集。

  4. 執行實驗。

此模組會輸出單一資料集,其中只包含指定的資料列數目。 永遠會從資料集的頂端讀取資料列。

建立資料樣本

此選項支援簡單隨機取樣或分層隨機取樣。 如果您想要建立較小的代表性範例資料集來進行測試,這會很有用。

  1. 將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。

  2. 分割或取樣模式:將此設定為 取樣

  3. 取樣率:輸入介於0和1之間的值。 此值指定應該將來源資料集的多少百分比資料列納入輸出資料集。

    例如,如果您只想要取得原始資料集的一半,請輸入 0.5 ,以指出取樣率應為50%。

    輸入資料集的資料列會隨機放置,並根據指定的比率選擇性地放入輸出資料集。

  4. 取樣的隨機種子:選擇性地輸入要做為種子值的整數。

    如果每次都要以相同的方式分割資料列,此選項很重要。 預設值為 0,表示根據系統時鐘產生起始種子。 這可能會在您每次執行實驗時產生稍微不同的結果。

  5. 取樣的分層分割:如果資料集中的資料列必須平均除以某些索引鍵資料行,然後再進行取樣,請選取此選項。

    針對 [取樣的分層索引鍵資料行],選取要在分割資料集時使用的單一「分層資料行」。 然後,資料集的資料列會分割如下:

    1. 所有輸入資料列依指定分層資料行中的值分組 (分層)。

    2. 將每個群組內的資料列打散

    3. 選擇性地將每個群組加入至輸出資料集,以符合指定的比率。

    如需分層取樣的詳細資訊,請參閱 技術附注 一節。

  6. 執行實驗。

    使用這個選項時,模組會輸出單一資料集,其中包含資料的代表性取樣。

    資料集的其餘、未取樣的部分不會輸出。 不過,您可以使用 [套用SQL 轉換模組] 來建立資料集的聯結,以判斷哪些資料列未使用。

將資料分割成分割區

想要將資料集分割成資料的子集時,請使用此選項。 想要建立自訂數目的摺疊來進行交叉驗證,或將資料列分割成多個群組時,此選項也很有用。

  1. 將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。

  2. 針對 [分割或取樣模式],請選取 [指派給摺疊]。

  3. 在資料分割中使用放回:如果想要將取樣的資料列放回資料列集區,以保留機會重複使用,請選取此選項。 因此,相同的資料列可能指派給數個摺疊。

    如果您未使用取代 (預設選項) ,則取樣的資料列不會放回資料列集區中,以供潛在的重複使用。 因此,每個資料列只能指派給一個摺疊。

  4. 隨機化分割:如果想要將資料列隨機指派給摺疊,請選取此選項。

    如果您未選取此選項,則會使用迴圈配置資源方法,將資料列指派給折迭。

  5. 隨機種子:選擇性地輸入要作為種子值使用的整數。 如果每次都要以相同的方式分割資料列,此選項很重要。 否則,預設值 0 表示的隨機將用於啟動種子。

  6. 指定分割區方法:使用下列選項,指出您要如何將資料分配至每個資料分割:

    • 平均分割:使用此選項將相等數目的資料列放入每個分割區。 若要指定輸出分割區的數目,請在 [ 指定要平均分割成的 折迭數目] 文字方塊中輸入整數。

    • 以自訂比例分割:使用此選項以逗點分隔清單指定每個分割區的大小。

      例如,如果您想要建立三個數據分割,其中第一個資料分割包含50% 的資料,而其餘兩個分割區各包含25% 的資料,請按一下 [ 以逗號分隔的比例清單 ],然後輸入這些數位: .5, .25, .25

      所有分割區大小的總和必須剛好為 1。

      • 如果您輸入的數字合計「小於 1」,則會建立額外分割區來保存剩餘資料列。 例如,如果您輸入值 .2 和 .3,則會建立第三個分割區,其中包含所有資料列的剩餘50%。

      • 如果您輸入的數位加上 多達1個以上,當您執行實驗時,就會引發錯誤。

  7. 分層分割:如果想要在分割時將資料列分層,請選取此選項,然後選擇「分層資料行」。

    如需分層取樣的詳細資訊,請參閱 技術附注 一節。

  8. 執行實驗。

    使用這個選項時,模組會輸出多個資料集,並使用您指定的規則進行分割。

使用預先定義分割區中的資料

當您將資料集分割成多個資料分割,而現在想要載入每個資料分割以進行進一步的分析或處理時,會使用這個選項。

  1. 將資料 分割和範例 模組新增至 Studio (傳統) 中的實驗。

  2. 連線到先前的資料分割和範例的輸出。 該執行個體必須已使用 [指派給摺疊] 選項來產生一些分割區。

  3. 分割或取樣模式:選取 [挑選摺疊]。

  4. 指定要取樣的折迭:選取要使用的資料分割,方法是輸入其索引。 分割區索引是以 1 為基底。 例如,如果您將資料集分成三個部分,則分割區的索引為 1、2 和 3。

    如果您輸入不正確索引值,則會引發設計階段錯誤:「錯誤0018:資料集包含不正確資料」。

    除了依摺疊來分組資料集,您還可以將資料集分成兩個群組:目標摺疊及其他一切。 若要這樣做,請輸入單一折迭的索引,然後選取選項 [ 挑選所選折迭的補數],以取得指定之折迭中的所有資料。

  5. 如果您正在使用多個資料分割,則必須加入資料 分割和範例 模組的其他實例,以處理每個資料分割。

    例如,假設先前已將患者分割成使用年齡的五個折迭。 若要使用每個個別的折迭,您需要資料 分割和範例 模組的五個複本,而在每個版本中,您可以選取不同的折迭。

    提示

    分割分割區和範例實驗範例會示範這項技術。

  6. 執行實驗。

    使用這個選項時,模組會輸出單一資料集,其中只包含指派給該折迭的資料列。

注意

您無法直接查看折迭的稱號;它們只存在於中繼資料中。

範例

如需如何使用此模組的範例,請參閱 Azure AI 資源庫

  • 二元分類的交叉驗證:已套用20% 的取樣率來建立較小的隨機取樣資料集。 原始人口普查資料集有超過30000個數據列;取樣的資料集有大約6500。

  • 回歸的交叉驗證:資料會隨機且平均地指派給五個折迭(沒有分層),而且結果會用於交叉驗證。

  • 分割分割區和範例:示範使用資料分割和取樣的多種方式。 首先,使用 [ 指派給 折迭] 選項,將資料集中的資料列指派給三個平均大小群組的其中一個。 然後,您可以使用挑選折迭模式來新增三個數據分割和範例的實例,以將作業套用到資料的子集

    • 在第一個折迭 (1) 的索引中,資料列會隨機分割。
    • 在第二個折迭 (2) 的索引中,資料列是依教育來分割。
    • 在第三個折迭 (索引 3) 中,資料列會依年齡分割。

技術說明

  • 分層資料行必須是具有離散值的類別。 如果資料行尚未分類,而您收到錯誤,請使用 [ 編輯中繼資料 ] 來變更資料行屬性。

  • 您指定的分層資料行不能包含連續的資料:亦即,每個資料格中有浮點值的數值資料。 否則,模組無法處理資料並傳回錯誤。

    原因是,用於階層式任何資料行都必須有一組有限的可能值。 如果指定的分層資料行包含任何浮點值,而且資料行不屬於類別類別目錄,它可能會包含無限數量的值。

  • 如果分層資料行包含布林值,而且您想要將它們解釋為類別,您必須使用 [ 編輯中繼資料 ] 模組來變更中繼資料標籤。

  • 如果您的分層資料行包含具有太多唯一值的字串或數值資料,則此資料行不是分層取樣的理想候選。

深入瞭解分層取樣

分層取樣 可確保資料子集具有所選分層資料行的代表性取樣。 這個技術非常有用,例如,您想要確保定型資料包含的年齡值分佈與測試資料相同,反之亦然。 或者,您可能想要在健康醫療研究中依性別資料行來分層,以確保分割資料時平均分佈男性和女性。 分層可確保維持所選值的比率。

您可以選取單一資料行做為 分層資料行,以指定要用來分隔資料的值。

此模組要求分層資料行必須是類別資料行。 如果您想要使用整數值的資料行來分層,最佳的作法是將類別類型指派給此資料行。 您可以透過資料的架構來執行這項作業,然後再將它新增至機器學習 Studio (傳統) ,或者可以使用編輯中繼資料來更新資料行的中繼資料。

連續資料 (也就是數值資料使用浮點值在每個資料格) 的資料行不當做 strata 資料行。 如果您收到錯誤,您可以使用 群組資料放在 bin 中,將值設為離散範圍,然後使用 [ 編輯中繼資料 ] 來保證將資料行視為類別。

預期的輸入

名稱 類型 說明
資料集 資料表 要分割的資料集

模組參數

名稱 範圍 類型 預設 描述
資料分割或取樣模式 List 取樣方法 取樣 選取資料分割或取樣模式
在資料分割中使用取代 任意 布林值 指出折迭是否應脫離 (預設值-沒有取代) 或重迭 (true-使用取代)
隨機分割 任意 布林值 True 指出是否隨機分割
隨機種子 任意 整數 0 指定亂數產生器的種子
指定分割器方法 List 資料分割方法 平均分割 選取 [ 平均分割 ] 以分割成相等大小的折迭,或選取 具有自訂比例 的資料分割,以分割為自訂大小的折迭
指定平均分割成的摺疊數目 >=1 整數 5 選取要分割的磁碟分割數目
分層的分割 List True/False 類型 False 指出是否分割 (stratified sampling)
分層索引鍵資料行 任意 ColumnSelection 包含 stratification 索引鍵
以逗號分隔的比例清單 任意 String 以逗號分隔的清單比例
自訂摺疊指派的分層分割 任意 True/False 類型 False 指出是否分割 (stratified sampling) 的自訂摺疊指派
自訂摺疊指派的分層索引鍵資料行 任意 ColumnSelection 包含分層索引鍵來用於自訂摺疊指派的資料行
指定要取樣的摺疊 >=1 整數 1 包含要取樣之折迭的索引
挑選所選摺疊的補充 任意 布林值 選取指定折迭的補數
取樣率 任意 Float 0.01 選擇取樣率
取樣的隨機種子 任意 整數 0 指定亂數產生器的種子
取樣的分層分割 任意 True/False False 指出是否分割 (stratified sampling) 的取樣
取樣的分層索引鍵資料行 任意 ColumnSelection 包含取樣 stratification 金鑰
選取的資料列數目 >=0 整數 10 允許傳遞至下一個模組的最大記錄數目

輸出

名稱 類型 說明
oDataset 資料表 從分割產生的資料集

另請參閱

取樣和分割
資料分割
編輯中繼資料
將資料分組成 Bin