本文說明 Feature Transform Engine 如何執行特徵工程。特徵轉換引擎會執行特徵選取和特徵轉換。 如果啟用特徵選取功能,特徵轉換引擎會建立一組重要的特徵,並依重要性排序。如果啟用特徵轉換,特徵轉換引擎會處理特徵,確保模型訓練和模型服務的輸入內容一致。特徵轉換引擎可單獨使用,也可搭配任何表格訓練工作流程使用。支援 TensorFlow 和非 TensorFlow 架構。
輸入內容
將下列輸入內容提供給特徵轉換引擎:
- 原始資料 (BigQuery 或 CSV 資料集)。
- 資料分割設定。
- 特徵選取設定。
- 特徵轉換設定。
輸出內容
特徵轉換引擎會產生下列輸出內容:
dataset_stats
:描述原始資料集的統計資料。舉例來說,dataset_stats
會傳回資料集中的資料列數。feature_importance
:特徵的重要性分數。如果啟用特徵選取功能,系統就會產生這項輸出內容。materialized_data
,這是資料分割群組的轉換版本,內含訓練分割、評估分割和測試分割。training_schema
:OpenAPI 規格中的訓練資料結構定義,說明訓練資料的資料類型。instance_schema
:OpenAPI 規格中的執行個體結構定義,用於說明推論資料的資料類型。transform_output
:轉換的中繼資料。如果您使用 TensorFlow 進行轉換,中繼資料會包含 TensorFlow 圖形。
處理步驟
特徵轉換引擎會執行下列步驟:
- 產生用於訓練、評估和測試的資料集分割。
- 產生輸入資料集統計資料
dataset_stats
,說明原始資料集。 - 執行特徵選取。
- 使用資料集統計資料處理轉換設定,將自動轉換參數解析為手動轉換參數。
- 將原始特徵轉換為工程化特徵。 系統會針對不同類型的特徵進行不同的轉換。
特徵選取
特徵選取的主要目的是減少模型中使用的特徵數量。縮減後的功能集會以更精簡的方式擷取大部分的標籤資訊。選取特徵可降低訓練和服務模型的成本,同時不會大幅影響模型品質。
啟用特徵選取功能後,特徵轉換引擎會為每個特徵指派重要性分數。您可以選擇輸出完整特徵集或縮減子集 (僅含最重要的特徵) 的重要性分數。
Vertex AI 提供下列特徵選取演算法:
請注意,沒有任何特徵選取演算法適用於所有資料集和用途。請盡可能執行所有演算法,並合併結果。
調整後互資訊 (AMI)
AMI 是相互資訊 (MI) 分數的調整值,用於計算機率。 無論實際分享的資訊是否更多,如果叢集數量較多,MI 通常會較高,這項指標會將此事實納入考量。
AMI 擅長偵測特徵和標籤的相關性,但對特徵冗餘不敏感。如果特徵數量眾多 (例如超過 2000 個),且特徵冗餘程度不高,建議使用 AMI。這比這裡說明的其他演算法更快,但可能會選取多餘的特徵。
條件式互資訊最大化 (CMIM)
CMIM 是一種貪婪演算法,會根據候選特徵相對於所選特徵的條件互資訊,反覆選擇特徵。在每次疊代中,模型會選取尚未由所選特徵擷取的標籤,並盡量提高與該標籤的最低互資訊。
CMIM 可有效處理特徵冗餘問題,且在一般情況下運作良好。
聯合互資訊最大化 (JMIM)
JMIM 是類似於 CMIM 的貪婪演算法。JMIM 會選取可將新特徵和預先選取特徵與標籤的聯合互資訊最大化的特徵,而 CMIM 則會更注重冗餘。
JMIM 是高品質的特徵選取演算法。
最大相關性最小冗餘 (MRMR)
MRMR 是一種反覆運作的貪婪演算法。這與 CMIM 類似,每次疊代都會選擇與標籤最相關的特徵,同時盡量減少與先前疊代中所選特徵的成對冗餘。
MRMR 是高品質的特徵選取演算法。
後續步驟
完成特徵工程後,即可訓練模型進行分類或迴歸:
- 使用端對端 AutoML 訓練模型。
- 使用 TabNet 訓練模型。
- 使用廣度和深度訓練模型。