資料分割和取樣
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
根據取樣建立資料集的多個資料分割
類別: 資料轉換/取樣和分割
模組概觀
本文描述如何在機器學習 Studio (傳統) 中使用資料分割和範例模組,以在資料集上執行取樣,或從您的資料集建立資料分割。
取樣是重要的工具,在機器學習,因為它可讓您同時維持相同值的比例減少資料集的大小。 此模組支援在機器學習中有幾個重要的相關工作:
將資料分割成多個相同大小的子區段。
您可以使用分割區進行交叉驗證,或將案例指派給隨機群組。
將資料分隔成群組,然後使用特定群組中的資料。
將案例隨機指派給不同群組之後,您可能需要修改僅與一個群組相關聯的功能。
取樣。
您可以擷取一定百分比的資料、套用隨機取樣,或選擇資料行來用於平衡資料集並分層取樣其中的值。
建立較小的資料集來用於測試。
如果您有大量資料,您可能只想在設定實驗時使用前 n 個數據列,然後在建立模型時,切換到使用完整的資料集。 您也可以使用取樣來建立較小的資料集,以供開發使用。
如何設定資料分割和範例
此模組支援多種方法,以將您的資料分割成資料分割或進行取樣。 先選擇方法,然後再設定方法所需的其他選項。
- 取得頂端的資料列數目
從資料集取得 TOP N 個資料列
使用此模式可取得的第一個n資料列。 如果您想要測試少量資料列的實驗,而且不需要以任何方式平衡或取樣資料,這個選項就很有用。
將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。
分割或取樣模式:將此選項設定為 [頭]。
要選取的資料列數目:輸入要傳回的資料列數目。
您指定的資料列數目必須為非負整數。 如果選取的資料列數目大於資料集的資料列數目,則會傳回整個資料集。
執行實驗。
此模組會輸出單一資料集,其中只包含指定的資料列數目。 永遠會從資料集的頂端讀取資料列。
建立資料樣本
此選項支援簡單隨機取樣或分層隨機取樣。 如果您想要建立較小的代表性範例資料集來進行測試,這會很有用。
將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。
分割或取樣模式:將此設定為 取樣。
取樣率:輸入介於0和1之間的值。 此值指定應該將來源資料集的多少百分比資料列納入輸出資料集。
例如,如果您只想要取得原始資料集的一半,請輸入
0.5
,以指出取樣率應為50%。輸入資料集的資料列會隨機放置,並根據指定的比率選擇性地放入輸出資料集。
取樣的隨機種子:選擇性地輸入要做為種子值的整數。
如果每次都要以相同的方式分割資料列,此選項很重要。 預設值為 0,表示根據系統時鐘產生起始種子。 這可能會在您每次執行實驗時產生稍微不同的結果。
取樣的分層分割:如果資料集中的資料列必須平均除以某些索引鍵資料行,然後再進行取樣,請選取此選項。
針對 [取樣的分層索引鍵資料行],選取要在分割資料集時使用的單一「分層資料行」。 然後,資料集的資料列會分割如下:
所有輸入資料列依指定分層資料行中的值分組 (分層)。
將每個群組內的資料列打散
選擇性地將每個群組加入至輸出資料集,以符合指定的比率。
如需分層取樣的詳細資訊,請參閱 技術附注 一節。
執行實驗。
使用這個選項時,模組會輸出單一資料集,其中包含資料的代表性取樣。
資料集的其餘、未取樣的部分不會輸出。 不過,您可以使用 [套用SQL 轉換模組] 來建立資料集的聯結,以判斷哪些資料列未使用。
將資料分割成分割區
想要將資料集分割成資料的子集時,請使用此選項。 想要建立自訂數目的摺疊來進行交叉驗證,或將資料列分割成多個群組時,此選項也很有用。
將資料 分割和範例 模組新增至您在 Studio (傳統) 中的實驗,並串連資料組。
針對 [分割或取樣模式],請選取 [指派給摺疊]。
在資料分割中使用放回:如果想要將取樣的資料列放回資料列集區,以保留機會重複使用,請選取此選項。 因此,相同的資料列可能指派給數個摺疊。
如果您未使用取代 (預設選項) ,則取樣的資料列不會放回資料列集區中,以供潛在的重複使用。 因此,每個資料列只能指派給一個摺疊。
隨機化分割:如果想要將資料列隨機指派給摺疊,請選取此選項。
如果您未選取此選項,則會使用迴圈配置資源方法,將資料列指派給折迭。
隨機種子:選擇性地輸入要作為種子值使用的整數。 如果每次都要以相同的方式分割資料列,此選項很重要。 否則,預設值 0 表示的隨機將用於啟動種子。
指定分割區方法:使用下列選項,指出您要如何將資料分配至每個資料分割:
平均分割:使用此選項將相等數目的資料列放入每個分割區。 若要指定輸出分割區的數目,請在 [ 指定要平均分割成的 折迭數目] 文字方塊中輸入整數。
以自訂比例分割:使用此選項以逗點分隔清單指定每個分割區的大小。
例如,如果您想要建立三個數據分割,其中第一個資料分割包含50% 的資料,而其餘兩個分割區各包含25% 的資料,請按一下 [ 以逗號分隔的比例清單 ],然後輸入這些數位:
.5, .25, .25
所有分割區大小的總和必須剛好為 1。
如果您輸入的數字合計「小於 1」,則會建立額外分割區來保存剩餘資料列。 例如,如果您輸入值 .2 和 .3,則會建立第三個分割區,其中包含所有資料列的剩餘50%。
如果您輸入的數位加上 多達1個以上,當您執行實驗時,就會引發錯誤。
分層分割:如果想要在分割時將資料列分層,請選取此選項,然後選擇「分層資料行」。
如需分層取樣的詳細資訊,請參閱 技術附注 一節。
執行實驗。
使用這個選項時,模組會輸出多個資料集,並使用您指定的規則進行分割。
使用預先定義分割區中的資料
當您將資料集分割成多個資料分割,而現在想要載入每個資料分割以進行進一步的分析或處理時,會使用這個選項。
將資料 分割和範例 模組新增至 Studio (傳統) 中的實驗。
連線到先前的資料分割和範例的輸出。 該執行個體必須已使用 [指派給摺疊] 選項來產生一些分割區。
分割或取樣模式:選取 [挑選摺疊]。
指定要取樣的折迭:選取要使用的資料分割,方法是輸入其索引。 分割區索引是以 1 為基底。 例如,如果您將資料集分成三個部分,則分割區的索引為 1、2 和 3。
如果您輸入不正確索引值,則會引發設計階段錯誤:「錯誤0018:資料集包含不正確資料」。
除了依摺疊來分組資料集,您還可以將資料集分成兩個群組:目標摺疊及其他一切。 若要這樣做,請輸入單一折迭的索引,然後選取選項 [ 挑選所選折迭的補數],以取得指定之折迭中的所有資料。
如果您正在使用多個資料分割,則必須加入資料 分割和範例 模組的其他實例,以處理每個資料分割。
例如,假設先前已將患者分割成使用年齡的五個折迭。 若要使用每個個別的折迭,您需要資料 分割和範例 模組的五個複本,而在每個版本中,您可以選取不同的折迭。
提示
分割分割區和範例實驗範例會示範這項技術。
執行實驗。
使用這個選項時,模組會輸出單一資料集,其中只包含指派給該折迭的資料列。
注意
您無法直接查看折迭的稱號;它們只存在於中繼資料中。
範例
如需如何使用此模組的範例,請參閱 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 | 資料表 | 從分割產生的資料集 |