組建計數轉換
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
建立將計數資料表轉換成特徵的轉換,讓您可以將轉換套用至多個資料集
Category:具有計數的 Learning
模組概觀
本文說明如何使用機器學習 Studio (傳統) 中的組建計數轉換模組來分析定型資料。 從這項資料中,模組會建立 計數資料表 ,以及一組可用於預測模型中的 計數功能 。
如果指定的標籤資料行,計數資料表就會包含所有特徵資料行的聯合散發。 這類統計資料有助於判斷哪些資料行有最多的資訊值。 以計數為基礎的特徵化很有用,因為這類功能比原始定型資料更精簡,但會捕捉所有最有用的資訊。 您可以使用模組參數來自訂如何將計數轉換成一組新的計數型功能。
產生計數並將其轉換成特徵之後,您可以將進程儲存為轉換,以重複使用相關資料。 您也可以修改一組功能,而不需要產生一組新的計數,或合併計數和功能與另一組計數和功能。
重新使用並重新套用以計數為基礎的功能,在下列案例中很有用:
- 新的資料會變成可用來改善資料集的涵蓋範圍或餘額。
- 您的原始計數和功能是以您不想要重新處理的大型資料集為基礎。 藉由合併您可以使用新資料來更新的計數。
- 您想要確保在實驗中使用的所有資料集都能套用一組以計數為基礎的相同功能。
如何設定組建計數轉換
您可以直接從資料集建立以計數為基礎的功能轉換,並在每次執行實驗時重新執行。 或者,您可以產生一組計數,然後將它與新的資料合併,以建立更新的計數資料表。
-
如果您之前尚未建立計數,請從這裡開始。 您可以使用「 建立計數轉換 」模組來建立計數資料表,並自動產生一組功能。
此程式會建立一個功能轉換,您可以使用「套用 轉換 」模組將它套用至資料集。
-
如果您已經從先前的資料集產生計數資料表,只會產生新資料的計數,或匯入在舊版機器學習中建立的現有計數資料表。 然後,合併這兩組計數資料表
此程式會建立新的功能轉換,您可以使用「套用 轉換 」模組將它套用至資料集。
從資料集建立以計數為基礎的功能
在機器學習 Studio (傳統) 中,將組建計數轉換模組新增至您的實驗。 您可以在 [資料轉換] 下的 [包含計數的 Learning] 類別中找到模組。
連線您想要用來作為以計數為基礎之功能基礎的資料集。
您可以使用 [ 類別數目 ] 選項來指定標籤資料行中的值數目。
- 針對任何二元分類問題,請輸入
2
。 - 針對具有兩個以上可能輸出的分類問題,您必須事先指定要計算的確切級別數目。 如果您輸入的數位小於實際的類別數目,模組會傳回錯誤。
- 如果您的資料集包含多個類別值,而且類別標籤值為非連續的,您就必須使用 [ 編輯中繼資料 ] 來指定資料行包含類別值。
- 針對任何二元分類問題,請輸入
針對 [ 雜湊函數的位] 選項,表示雜湊值時要使用多少位數。
除非您知道有許多要計數的值,而且可能需要較高的位元數目,否則通常可以安全地接受預設值。
在 雜湊函數的種子中,您可以選擇性地指定要植入雜湊函數的值。 手動設定種子通常是在您想要確保相同實驗的各回合都具有決定性時,才會進行。
您可以使用 [ 模組類型 ] 選項,根據儲存模式指出您將計算的資料類型:
資料集:如果您要計算機器學習 Studio (傳統) 中儲存為資料集的資料,請選擇此選項。
Blob:如果用來建立計數的來源資料在 Windows Azure 儲存體中儲存為區塊 Blob,請選擇此選項。
MapReduce:如果您想要呼叫 Map/減少函式來處理資料,請選擇此選項。
若要使用此選項,必須在 Windows Azure 儲存體中將新的資料提供為 blob,而且您必須能夠存取已部署的 HDInsight 叢集。 當您執行實驗時,會在叢集中啟動對應/減少作業來執行計數。
針對非常大型的資料集,建議您盡可能使用此選項。 雖然您可能會產生使用 HDInsight 服務的額外成本,但是在 HDInsight 中計算大型資料集可能會更快。
指定資料儲存模式之後,請提供所需資料的任何其他連接資訊:
- 如果您使用 Hadoop 或 blob 儲存體中的資料,請提供叢集位置和認證。
- 如果您先前在實驗中使用 [匯 入資料 ] 模組來存取資料,您必須重新輸入帳戶名稱和認證。 組建計數轉換模組會個別存取資料儲存區,以便讀取資料並建立所需的資料表。
針對 標籤資料行或索引,請選取一個資料行做為 [標籤] 資料行。
需要標籤資料行。 此資料行必須已標示為標籤,否則會引發錯誤。
使用 [ 選取要計算的資料行] 選項,然後選取要產生計數的資料行。
一般而言,最好的選擇是高維度的資料行,以及與這些資料行相互關聯的任何其他資料行。
使用 [ 計數資料表類型 ] 選項,即可指定用來儲存計數資料表的格式。
Dictionary:建立字典計數資料表。 選取資料行中的所有資料行值會視為字串,並使用大小最多為 31 位元的位元陣列來進行雜湊處理。 因此,所有資料行值會以 32 位元非負整數來表示。
一般來說,您應該針對較小的資料集使用此選項 (小於 1 GB 的) ,並針對較大的資料集使用 CMSketch 選項。
選取此選項之後,請設定雜湊函數使用的位數,並設定初始化雜湊函數的種子。
CMSketch:建立 count 最小的草繪資料表。 使用這個選項時,會使用範圍較小的多個獨立雜湊函數來提高記憶體效率並降低雜湊衝突的機會。 雜湊位大小和雜湊種子的參數不會影響這個選項。
執行實驗。
此模組會建立 特徵化轉換 ,您可以使用它做為「套用 轉換 」模組的輸入。 「套用 轉換 」模組的輸出是轉換的資料集,可用來將模型定型。
(選擇性)如果您想要合併一組以計數為基礎的特徵,以及另一組以計數為基礎的功能,您可以儲存轉換。 如需詳細資訊,請參閱 合併計數轉換。
來自多個資料集的合併計數和特徵
在機器學習 Studio (傳統) 中,將組建計數轉換模組新增至您的實驗,然後連接包含您想要新增之新資料的資料集。
使用 Module type 選項來指出新資料的來源。 您可以合併來自不同來源的資料。
資料集:如果在機器學習 Studio (傳統) 中提供新的資料做為資料集,請選擇此選項。
Blob:如果新的資料在 Windows Azure 儲存體中以區塊 Blob 的形式提供,請選擇此選項。
MapReduce:如果您想要呼叫 Map/減少函式來處理資料,請選擇此選項。
若要使用此選項,必須在 Windows Azure 儲存體中將新的資料提供為 blob,而且您必須能夠存取已部署的 HDInsight 叢集。 當您執行實驗時,將會在叢集中啟動對應/減少工作,以執行計數。
指定資料儲存模式之後,請提供新資料的任何其他連接資訊:
如果您使用 Hadoop 或 blob 儲存體中的資料,請提供叢集位置和認證。
如果您先前在實驗中使用 [匯 入資料 ] 模組來存取資料,您必須重新輸入帳戶名稱和認證。 原因是 組建計數轉換 模組會個別存取資料儲存區,以便讀取資料並建立所需的資料表。
合併計數時,下列選項在兩個計數資料表中必須完全相同:
- 類別數目
- 雜湊函數的位元
- 雜湊函數的種子
- 選取要計算的資料行
標籤資料行可以不同,只要它包含相同的類別數目即可。
使用 [ 計數資料表類型 ] 選項,即可指定更新計數資料表的格式和目的地。
提示
您要合併的兩個計數資料表的格式必須相同。 換句話說,如果您使用 字典 格式儲存先前的計數資料表,則無法將它與使用 CMSketch 格式儲存的計數合併。
執行實驗。
此模組會建立 特徵化轉換 ,您可以使用它做為「套用 轉換 」模組的輸入。 「套用 轉換 」模組的輸出是轉換的資料集,可用來將模型定型。
若要使用一組現有的計數功能來合併這組計數,請參閱 合併計數轉換。
範例
請參閱下列文章,以取得有關計數演算法的詳細資訊,以及與其他方法相較之下,以計數為基礎的模型效力。
Azure AI 資源庫中的下列實驗示範如何使用以計數為基礎的學習來建立各種預測模型:
模組參數
下列參數適用于所有選項:
名稱 | 類型 | 範圍 | 選擇性 | 預設 | 描述 |
---|---|---|---|---|---|
類別數目 | 整數 | >= 2 | 必要 | 2 | 標籤的級別數目。 |
雜湊函數的位元 | 整數 | [12; 31] | 必要 | 20 | 雜湊函數範圍的位數目。 |
雜湊函數的種子 | 整數 | 任意 | 必要 | 1 | 雜湊函數的種子。 |
模組類型 | 必要 | 資料集 | 產生計數資料表時要使用的模組類型。 | ||
計數資料表類型 | CountTableType | 從清單中選取 | 必要 | 字典 | 指定計數資料表的格式。 |
選取 blob 選項時,適用下列選項。
名稱 | 類型 | 範圍 | 選擇性 | 預設 | 描述 |
---|---|---|---|---|---|
Blob 名稱 | String | 任意 | 必要 | 輸入 blob 的名稱。 請勿包含容器名稱。 | |
帳戶名稱 | String | 任意 | 必要 | 儲存體帳戶的名稱。 | |
帳戶金鑰 | SecureString | 任意 | 必要 | 儲存體帳戶的金鑰。 | |
容器名稱 | String | 任意 | 必要 | 包含輸入 blob 的 Azure blob 容器。 | |
計數資料行 | String | 任意 | 必要 | 要執行計數的資料行群組之以一為基礎的索引。 | |
標籤資料行 | 整數 | >=1 | 必要 | 1 | 標籤資料行的索引(以一為基礎)。 |
Blob 格式 | 任意 | 必要 | CSV | Blob 文字檔格式。 |
使用MapReduce產生計數時,適用下列參數:
名稱 | 類型 | 範圍 | 選擇性 | 預設 | 描述 |
---|---|---|---|---|---|
預設儲存體帳戶名稱 | String | 任意 | 必要 | 無 | 包含輸入 blob 的儲存體帳戶名稱。 |
預設儲存體帳戶金鑰 | SecureString | 任意 | 必要 | 無 | 包含輸入 blob 之儲存體帳戶的金鑰。 |
預設容器名稱 | String | 任意 | 必要 | 無 | 要寫入計數資料表的 blob 容器名稱。 |
叢集 URI | String | 任意 | 必要 | 無 | HDInsight Hadoop 叢集的 URI。 |
使用者名稱 | String | 任意 | 必要 | 無 | 登入 HDInsight Hadoop 叢集的使用者名稱。 |
下列參數定義計數資料表的格式:
名稱 | 類型 | 範圍 | 選擇性 | 預設 | 描述 |
---|---|---|---|---|---|
計數資料表類型 | CountTableType | List | 必要 | 字典 | 計數資料表的類型。 |
標籤資料行索引或名稱 | ColumnSelection | 如果 count 資料表另存為資料集,則為必要 | 無 | 選取 [標籤] 資料行。 | |
選取要計算的資料行 | ColumnSelection | 如果 count 資料表另存為資料集,則為必要 | 選取用於計數的資料行。 這些資料行會視為類別功能。 | ||
CM 略表的深度 | 整數 | >=1 | 如果 count 資料表使用 CMSketch 格式,則為必要 | 4 | CM 草圖資料表的深度,等於雜湊函數的數目。 |
CM 略表的寬度 | 整數 | [1;31] | 如果 count 資料表使用 CMSketch 格式,則為必要 | 20 | CM 草圖資料表的寬度,也就是雜湊函數範圍的位數。 |
標籤資料行索引或 namecolumn | ColumnSelection | 如果 count 資料表另存為資料集,則為必要 | 選取標籤資料行。 | ||
選取要計算的資料行 | ColumnSelection | 如果 count 資料表另存為資料集,則為必要 | 選取要計算的資料行。 這些資料行會視為類別功能。 | ||
計數資料表類型 | 如果 count 資料表另存為資料集,則為必要 | 字典 | 指定計數資料表的型別。 | ||
CM 略表的深度 | 整數 | >=1 | 如果將計數資料表儲存為 CMSketch,則為必要 | 4 | CM 草圖資料表深度,等於雜湊函數的數目。 |
CM 略表的寬度 | 整數 | [1;31] | 如果將計數資料表儲存為 CMSketch,則為必要 | 20 | CM 草圖資料表寬度,也就是雜湊函式範圍的位數。 |
輸出
名稱 | 類型 | 說明 |
---|---|---|
計算轉換 | ITransform 介面 | 計數轉換。 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0003 | 如果一或多個輸入為 Null 或空白,就會發生例外狀況。 |
錯誤 0004 | 如果參數小於或等於特定值,就會發生例外狀況。 |
錯誤 0005 | 如果參數小於特定值,就會發生例外狀況。 |
錯誤 0007 | 如果參數大於特定值,就會發生例外狀況。 |
錯誤 0009 | 如果指定的 Azure 儲存體帳戶名稱或容器名稱不正確,就會發生例外狀況。 |
錯誤 0065 | 如果未正確指定 Azure Blob 名稱,就會發生例外狀況。 |
錯誤 0011 | 如果傳遞的資料行集引數不適用於任何資料集資料行,就會發生例外狀況。 |
錯誤 0049 | 無法剖析檔案時,就會發生例外狀況。 |
錯誤 1000 | 內部程式庫例外狀況。 |
錯誤 0059 | 如果無法剖析資料行選擇器中指定的資料行索引,就會發生例外狀況。 |
錯誤 0060 | 當資料行選擇器中指定超出範圍的資料行範圍時,就會發生例外狀況。 |
錯誤 0089 | 當指定的類別數目小於資料集中用於計算的實際類別數目時所發生的例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。