2013-04-27 350 views

回答

23

PCA是找出哪些特徵對於最好地描述數據集中的方差很重要的一種方法。它最常用於降低大型數據集的維數,以便在原始數據具有固有高維度(如圖像識別)的情況下應用機器學習變得更加實用。

PCA有一些限制,因爲它依賴於特徵元素之間的線性關係,在開始之前通常不清楚這些關係是什麼。由於它也「隱藏」了對數據變化影響不大的特徵元素,因此它有時可以根除一個小但顯着的差異因素,從而影響機器學習模型的性能。

+1

我認爲這裏的一個關鍵是PCA是一種無監督技術,而特徵選擇通常(但並非總是)指的是受監督的問題。可以使用PCA來描述一個數據集 - 可以通過在幾臺PC上的絕對高負載顯示某些變量是重要的 - 或者在監督模型中拋出主要組件,以使模型更容易運行。但一般來說,PCA本身不是特徵選擇工具。 – 2015-09-27 19:04:38

5

您可以使用PCA進行功能選擇。

主成分分析(PCA)是

的技術「使用正交變換的一組 可能相關的變量的觀測轉換成一組不相關的 變量稱爲主成分的值的」。

PCA幫助我們從根本上回答的問題是:這些M參數中的哪一個解釋了包含在數據集內的重要變化量 ? PCA基本上有助於應用規則:參數的一小部分(比如說20%)可以解釋數據變化的80%或更多 ?

(see here)

但它也有一些缺點:它是對規模敏感,更側重於數據震級的更高階。數據規範化不可能永遠是解決辦法,因爲這裏說明:

http://www.simafore.com/blog/bid/105347/Feature-selection-with-mutual-information-Part-2-PCA-disadvantages

還有其他的方法可以做到特徵選擇:

特徵選擇算法可以被看作是一個 搜索的組合用於提出新的特徵子集的技術,以及對不同的特徵子集進行評分的評估測量。最簡單的算法是測試每個可能的子集的特徵,發現最小化差錯率的特徵子組。這是該空間的詳盡搜索 ,並且除了最小的特徵集之外的所有區域都是計算上難以處理的。評估指標的選擇很大程度上影響着算法,正是這些評估指標可以區分算法:包裝器,過濾器和嵌入式方法的三大類特徵選擇算法。

(see here)

在某些領域,特徵提取可以提出具體的目標:在圖像處理,你可能要執行的斑點,邊緣或脊檢測。

+0

這是如何解決通過PCA選擇特徵的問題? PCA生成新功能,但它不會立即幫助從原始功能空間中選擇功能。答案的第二部分涉及監督問題中的特徵選擇;目前還不清楚OP是否正在尋找這個。 PCA是一種內在的無監督技術,並且我唯一提及的與我看到的無監督特徵選擇有關的是主要特徵分析:http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011 .pdf我問過如何在R中實現這個http://stackoverflow.com/q/32811659/1840471。 – 2015-09-27 18:58:46

1

只是添加到@Roger Rowland的答案。在監督學習(分類,迴歸)的背景下,我喜歡將PCA看作是「特徵變換器」,而不是特徵選擇器。

PCA基於提取數據顯示最高可變性的座標軸。儘管它在新的基礎上「展開」了數據,並且可以在無監督學習中提供很大幫助,但不能保證新軸與監督問題中的歧視性特徵相一致。

簡而言之,在預測因變量(例如類標籤)時,根本不能保證您的最高主成分是最具信息性的。

This paper是一個有用的來源。 另一個相關的交叉驗證鏈接是here

2

只是添加到上面的很好的答案。不同之處在於,PCA將嘗試通過探索數據的一個特徵如何用其他特徵(線性依賴性)表達來降低維度。 改爲選擇特徵,將目標考慮在內。它會根據他們預測目標值的有用程度對您的輸入變量進行排名。這對於單變量特徵選擇是正確的。 多變量特徵選擇也可以做一些可以被認爲是PCA形式的東西,因爲它會丟棄輸入中的一些特徵。但不要把這個比喻太過分了。