變數重要性

變數重要性 (也稱為特徵重要性) 是一種分數,用來表示特徵對模型的「重要性」。舉例來說,如果某個模型有兩個輸入特徵「f1」和「f2」,變數重要性為 {f1=5.8, f2=2.5},則特徵「f1」對模型而言比特徵「f2」更重要。與其他機器學習模型一樣,變數重要性是瞭解決策樹運作方式的簡單方法。

您可以將模型無關的變數重要性 (例如變換變數重要性) 套用至決策樹。

決策樹也有特定變數的重要性,例如:

  • 使用指定變數的拆分分數總和。
  • 含有指定變數的節點數量。
  • 在所有樹狀圖路徑中,首次出現特徵的平均深度。

變數的重要性可能因下列因素而異:

  • 語意
  • 的保護
  • 資源

此外,變數重要性會提供下列不同類型的資訊:

  • 模型
  • 資料集
  • 訓練過程

舉例來說,包含特定特徵的條件數量可指出決策樹查看這個特定特徵的程度,進而指出變數的重要性。畢竟,如果不重要,學習演算法就不會在多個條件下使用某個功能。不過,如果同一個特徵出現在多個條件中,也可能表示模型嘗試但未能將特徵模式推廣。舉例來說,如果某個特徵只是示例 ID,且沒有可概括的資訊,就可能發生這種情況。

另一方面,如果排序變數的重要性值偏高,表示移除特徵會對模型造成不利影響,這表示變數的重要性。不過,如果模型健全,移除任何一項特徵可能不會影響模型。

由於不同的變數重要性會提供模型的不同面向,因此同時查看多個變數重要性會提供有用的資訊。舉例來說,如果某項特徵根據所有變數重要性皆為重要,則該特徵很可能是重要特徵。舉另一個例子來說,如果某個特徵的「節點數量」變數重要性偏高,而「排列組合」變數重要性偏低,則該特徵可能難以推廣,並可能會影響模型品質。

YDF 代碼
在 YDF 中,您可以呼叫 model.describe() 並查看「變數重要性」分頁,瞭解模型的變數重要性。詳情請參閱 模型理解教學課程