以篩選為基礎的特徵選取
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
識別資料集內具有最大的預測能力的特徵
類別: 特徵選取模組
模組概觀
本文說明如何在機器學習 Studio (傳統) 中使用以篩選器為基礎的特徵選取模組,以識別輸入資料集中具有最高預測能力的資料行。
一般而言, 特徵選取 是指將統計測試套用至輸入的程式(指定了指定的輸出),以判斷哪些資料行是更具預測性的輸出。 以 篩選器為基礎的特徵選取 模組提供多個特徵選取演算法,可供選擇,包括相互關聯方法,例如 Pearsons 的或肯德爾的相互關聯、相互資訊分數和卡方值。 機器學習也支援將功能值計數作為資訊值的指標。
當您使用 [以 篩選器為基礎的特徵選取 ] 模組時,您會提供資料集、識別包含標籤或相依變數的資料行,然後指定用來測量特徵重要性的單一方法。
此模組會輸出包含最佳特徵資料行的資料集,如預測能力的等級。 此外也會從選取的計量中,輸出特徵的名稱及其分數。
什麼是以篩選器為基礎的特徵選取,以及為何要使用它?
此項特徵選取模組稱為「以篩選為基礎」,因為您使用選取的度量來識別不相關的屬性,並從模型中篩選掉多餘的資料行。 您可以選擇適合您的資料的單一統計量值,且此模組會計算每個特徵資料行的分數。 傳回的資料行會依其特性分數排序。
選擇正確的特徵就有可能改善分類的精確度和效率。
您通常只會使用具有最佳分數的資料行來建置預測模型。 特徵選取分數不佳的資料行會留在資料集中,且在您建立模型時,會忽略該資料行。
如何選擇特徵選取計量
以 篩選器為基礎的特徵選取 可提供各種計量來評估每個資料行中的資訊值。 本節提供每個度量的一般描述,以及其套用方式。 使用每個計量的其他需求,會在 技術 提示區段和設定每個模組的 指示 中注明。
皮耳森相互關聯
皮耳森積差相關分析統計或皮耳森相關係數在統計模型中也稱為
r
值。 針對任何兩個變數,它會傳回一個值,指出相互關聯的強度。皮耳森相關係數的計算公式是先取兩個變數的共變異數,再除以其標準差的乘積。 兩個變數的尺度改變不影響此係數。
相互資訊
相互資訊分數會測量變數的比重,以減少另一個變數值的不確定性:亦即標籤。 相互資訊計分已設計出許多變化來配合不同的分布。
相互資訊計分在特徵選取中特別有用,因為它在具有許多維度的資料集裡將聯合分布與目標變數之間的相互資訊極大化。
肯德爾相關
肯德爾等級相關是幾種統計量的其中之一,可測量不同次序變數的排序之間或相同變數的不同排序之間的關係。 換句話說,依照數量排名時,它可測量排序的相似度。 此係數和史皮爾曼相關係數專門用於非參數和非常態分布資料。
史皮爾曼相關
史皮爾曼係數是兩個變數之間統計相依的非參數量數,有時候以希臘字母 rho 表示。 史皮爾曼係數表示兩個變數單調相關的程度。 因為它可用於次序變數,所以也稱為史皮爾曼等級相關。
卡方平方
雙向卡方測試是一種統計方法,它能測量期望值與實際結果之間的差距。 該方法假設變數是隨機的,並且是從適當的獨立變數範例中抽出。 產生的卡方統計量能指出結果與預期 (隨機) 結果之間的差距。
費雪計分
費雪計分 (也稱為費氏法,或費雪綜合機率評分) 有時稱為資訊計分,因為它代表一個變數針對某個相依的未知參數,所能提供的相關資訊量。
計分方式是測量資訊的期望值與觀察值之間的變異數。 變異數極小化時,資訊會極大化。 由於分數的期望值是零,費雪資訊也是分數的變異數。
以計數為基礎
以計數為基礎的特徵選取是尋找預測變數資訊既簡單又強大的方法。 以計數為基礎的基本特徵化基本概念是很簡單的:藉由計算資料行內個別值的計數,您可以瞭解值的分佈和加權,並從中瞭解哪些資料行包含最重要的資訊。
以計數為基礎的特徵選取是一種非監督式的特徵選取方法,這表示您不需要標籤資料行。 這個方法也會減少資料的維度,而不會遺失資訊。
如需有關如何建立以計數為基礎的功能,以及它們在機器學習中有用的原因的詳細資訊,請參閱Learning 計數。
提示
如果您需要不同的自訂特徵選取方法選項,請使用 [ 執行 R 腳本 ] 模組。
如何設定以篩選為基礎的特徵選取
此課程模組提供兩種方法來決定功能分數:
-
您可以選擇標準統計度量,而此模組會計算一組資料行、標籤資料行和特徵資料行之間的關聯性。
-
使用以計數為基礎的方法,模組只會根據資料行中的值來計算分數。
使用傳統統計計量產生特性分數
將以 篩選器為基礎的特徵選取 模組新增至您的實驗。 您可以在 Studio (傳統) 的 [ 特徵選取 ] 分類中找到它。
與輸入資料集連線,資料集中須至少包含兩個可能特徵的資料行。
若要確保資料行應該進行分析,並產生特性分數,請使用 [ 編輯中繼資料 ] 模組來設定 IsFeature 屬性。
重要
確定您提供做為輸入的資料行是可能的功能。 例如,包含單一值的資料行不具資訊價值。
如果您知道有哪些資料行會造成不良的功能,您可以從資料行選取專案中移除它們。 您也可以使用 [ 編輯中繼資料 ] 模組,將它們標示為 類別。
針對 [特徵評分方法] 選擇下列其中一個已建立的統計方法,以用於計算分數。
方法 規格需求 皮耳森相關 標籤可以是文字或數值。 特徵則必須是數值。 相互資訊 標籤和特徵可以是文字或數值。 使用此方法來計算兩個類別資料行的特徵重要度。 肯德爾相關 標籤可以是文字或數位,但功能必須是數值。 史皮爾曼相關 標籤可以是文字或數位,但功能必須是數值。 卡方 標籤和特徵可以是文字或數值。 使用此方法來計算兩個類別資料行的特徵重要度。 費雪計分 標籤可以是文字或數位,但功能必須是數值。 計數 請參閱: 若要使用 Count-Based 的特徵選取 提示
如果您變更選取的度量,則會重設所有其他選項,因此請務必先設定此選項! )
選取 [ 僅操作 feature 資料行 ] 選項,只針對先前標示為特徵的資料行產生分數。
如果您取消選取此選項,此模組會為任何符合準則的資料行建立分數,最多可達 所需功能所指定的資料行數目。
在 [ 目標資料行] 中,按一下 [ 啟動資料行選取器 ],依名稱或索引來選擇標籤資料行 (索引是以一為基礎的) 。
牽涉到統計相互關聯的所有方法都需要標籤資料行。 如果您選擇沒有標籤資料行或多個標籤資料行,此模組會傳回設計階段錯誤。
針對 所需的功能數目,輸入您想要傳回結果的功能資料行數目。
您可以指定的最小特徵數目為 1,但我們建議您增加這個值。
如果指定的所需特徵數目大於資料集中的資料行數目,則會傳回所有的功能,甚至是分數為零的所有功能。
如果您指定的結果資料行數目少於特徵資料行,則會以遞減分數來排列這些特徵的等級,而且只會傳回最高的特徵。
執行實驗,或選取以 篩選器為基礎的特徵選取 模組,然後按一下 [ 執行選取專案]。
特徵選取的結果
完成處理之後:
若要查看已分析的功能資料行及其分數的完整清單,請以滑鼠右鍵按一下模組,選取 [ 功能],然後按一下 [ 視覺化]。
若要根據您的特徵選取準則來查看所產生的資料集,請以滑鼠右鍵按一下模組,選取 [ 資料集],然後按一下 [ 視覺化]。
如果資料集包含的資料行數目少於預期,請檢查模組設定,以及提供作為輸入之資料行的資料類型。 例如,若您將 [所需的特徵數] 設定為 1,則輸出資料集只會包含兩個資料行:標籤資料行,以及最高順位的特徵資料行。
使用以計數為基礎的特徵選取
將以 篩選器為基礎的特徵選取 模組新增至您的實驗。 您可以在 [ 功能選取 ] 群組中,于 Studio (傳統) 的模組清單中找到它。
連線輸入資料集,其中至少包含兩個可能功能的資料行。
從 [功能評分方法] 下拉式清單中的統計方法清單中選取 [計數]。
針對 非零的元素數目下限,指出要包含在輸出中的最小特徵資料行數目。
依預設,此模組會輸出符合需求的所有資料行。 模組無法輸出任何取得零分數的資料行。
執行實驗,或只選取模組,然後按一下 [ 執行選取]。
以計數為基礎的特徵選取結果
- 若要查看具有其分數的功能資料行清單,請以滑鼠右鍵按一下模組,選取 [ 功能],然後按一下 [ 視覺化 ]。
- 若要查看包含已分析資料行的資料集,請以滑鼠右鍵按一下模組,選取 [ 資料集],然後按一下 [ 視覺化]。
不同于其他方法,以 計數為基礎 的特徵選取方法不會依最高分數將變數排名,但會以其原始順序傳回非零分數的所有變數。
字串功能一律得到零 (0) 分數,因此不會輸出。
範例
您可以查看 Azure AI 資源庫中如何使用特徵選取的範例:
文字分類;在此範例的第三個步驟中,會使用以 篩選器為基礎的特徵選取 來識別15個最佳功能。 特徵雜湊是用來將文字檔轉換成數位向量。 然後,皮耳森的相互關聯會用於向量功能。
機器學習功能選取和特徵設計:本文提供機器學習中的特徵選取和功能工程簡介。
若要查看特性分數的範例,請參閱 比較的分數表格。
技術說明
您可以在 [ 資料轉換] 下的 [ 篩選準則 ] 分類中找到此模組。
實作詳細資料
如果您在數值功能和類別標籤上使用皮耳森相互關聯、肯德爾相互關聯或史皮爾曼相互關聯,則會以下列方式計算功能分數:
針對類別資料行中的每個層級,計算數值資料行的條件平均值。
將條件平均值的資料行與數值資料行相互關聯。
規格需求
針對指定為 標籤 或 分數 資料行的任何資料行,無法產生特徵選取分數。
如果您嘗試在資料行上使用的計分法不支援該資料行的資料類型,此模組會引發錯誤,或對此資料行給予零分。
如果資料行包含邏輯 (true/false) 值,則會以 True = 1 和 False = 0 來處理。
如果您已將資料行指定為標籤或分數,該資料行便無法成為特徵。
如何處理遺漏值
您無法完全都是遺漏值的任何資料行指定為目標 (標籤) 資料行。
如果資料行包含遺漏值,計算此資料行的分數時會忽略這些值。
如果指定為特徵資料行的資料行完全都是遺漏值,則會給予零分。
比較分數的資料表
為了讓您瞭解分數在使用不同度量時的比較方式,下表顯示汽車價格資料集中多個特徵的一些特徵選取分數(假設相依變數 高速公路 mpg)。
功能資料行 | 皮耳森分數 | 計數分數 | 肯德爾分數 | 相互資訊 |
---|---|---|---|---|
highway-mpg | 1 | 205 | 1 | 1 |
city-mpg (市區油耗) | 0.971337 | 205 | 0.892472 | 0.640386 |
curb-weight (空車重量) | 0.797465 | 171 | 0.673447 | 0.326247 |
horsepower | 0.770908 | 203 | 0.728289 | 0.448222 |
price | 0.704692 | 201 | 0.651805 | 0.321788 |
長度 | 0.704662205 | 205 | 0.53193 | 0.281317 |
engine-size | 0.67747 | 205 | 0.581816 | 0.342399 |
width | 0.677218 | 205 | 0.525585 | 0.285006 |
bore (缸徑) | 0.594572 | 201 | 0.467345 | 0.263846 |
wheel-base | 0.544082 | 205 | 0.407696 | 0.250641 |
compression-ratio (壓縮比) | 0.265201 | 205 | 0.337031 | 0.288459 |
燃料系統 | NA | NA | NA | 0.308135 |
make | NA | NA | NA | 0.213872 |
磁片磁碟機-輪子 | NA | NA | NA | 0.213171 |
身高 | NA | NA | NA | 0.1924 |
正規化-損失 | NA | NA | NA | 0.181734 |
symboling (表示符號) | NA | NA | NA | 0.159521 |
圓柱的數目 | NA | NA | NA | 0.154731 |
引擎類型 | NA | NA | NA | 0.135641 |
願望 | NA | NA | NA | 0.068217 |
body-style | NA | NA | NA | 0.06369 |
燃料類型 | NA | NA | NA | 0.049971 |
大門數目 | NA | NA | NA | 0.017459 |
引擎-位置 | NA | NA | NA | 0.010166 |
您可以針對所有資料行類型(包括字串)建立相互資訊分數。
此資料表中包含的其他分數(例如皮耳森的相互關聯或以計數為基礎的特徵選取)需要數值。 字串特徵會取得0的分數,因此不會包含在輸出中。 如需例外狀況,請參閱 技術 提示一節。
以計數為基礎的方法不會以不同于特徵資料行的方式來處理標籤資料行。
預期的輸入
名稱 | 類型 | 說明 |
---|---|---|
資料集 | 資料表 | 輸入資料集 |
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
特徵計分法 | List | 計分方法 | 選擇計分方法 | |
僅限操作特徵資料行 | 任意 | 布林值 | true | 指出在計分過程中是否只使用特徵資料行 |
目標資料行 | 任意 | ColumnSelection | 無 | 指定目標資料行 |
所需的特徵數目 | >=1 | 整數 | 1 | 指定結果中輸出的特徵數目 |
非零元素的最少數目 | >=1 | 整數 | 1 | 指定輸出的特徵數目 (適用於 CountBased 方法) |
輸出
名稱 | 類型 | 說明 |
---|---|---|
篩選的資料集 | 資料表 | 篩選的資料集 |
功能 | 資料表 | 輸出資料行的名稱和特徵選取分數 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0001 | 如果找不到資料集的一或多個指定的資料行,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入為 Null 或空白,就會發生例外狀況。 |
錯誤 0004 | 如果參數小於或等於特定值,就會發生例外狀況。 |
錯誤 0017 | 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。