本文說明功能轉換引擎如何執行功能工程。特徵轉換引擎會執行特徵選取和特徵轉換作業。如果啟用特徵選取功能,特徵轉換引擎會建立一組重要特徵,並依重要性排序。如果啟用特徵轉換,特徵轉換引擎會處理特徵,確保模型訓練和模型服務的輸入內容一致。特徵轉換引擎可單獨使用,也可以搭配任何表格訓練工作流程使用。同時支援 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 訓練模型。
- 使用 廣度和深度訓練模型。