數據降維和特徵選取有什麼區別?

這兩個貌似差別不是太大?


有區別。

二者的目標都是使得特徵維數減少。但是方法不一樣。

數據降維,一般說的是維數約簡(Dimensionality reduction)。它的思路是:將原始高維特徵空間里的點向一個低維空間投影,新的空間維度低於原特徵空間,所以維數減少了。在這個過程中,特徵發生了根本性的變化,原始的特徵消失了(雖然新的特徵也保持了原特徵的一些性質)。

而特徵選擇,是從 n 個特徵中選擇 d (d&


主要區別在於坐標上。

特徵選擇,是在給定一組特徵(也即確定了坐標)後,從中選取一個特徵子集,因此相當於把一些坐標去除的過程。在大部分情況下特徵選擇都是在冗餘變數較多的情況下使用,此時相當於坐標為斜坐標,甚至還存在冗餘坐標(即用p個特徵表達了k (k&

降維,如果特指PCA這種線性降維方法,則降維所得的子空間是在原始坐標系旋轉下不變的。而如果坐標系恰好選取為主向量,則PCA實際上等價於對這組特殊的坐標系進行特徵選擇,方式是根據樣本在坐標軸上分散的程度來決定該坐標軸的去留。而在一般情形下,PCA降維所得的子空間是由幾乎所有原始特徵張成的,因此原始特徵全部起作用。

因此,有學者(Zou Hastie)提出了sparse PCA,旨在強迫使用部分原始特徵張成盡量「優質」的子空間,同時實現了降維+特徵選擇,從而能在分析主成分的同時還可以加入模型的解釋性

如果涉及到非線性降維,如流形學習等方法,則與特徵選擇區別甚大,此時不僅有降維,還帶有坐標軸的非線性扭轉伸縮等操作。特徵選擇在更多情形下,還只是限於線性的範疇(此處的線性指對參數的線性)。


dimension reduction有兩種方法 一種是feature selection

,就像Ling Yu說的,只進行選擇並不改變feature的值;另一種是feature extraction,會通過對feature變換進行降維,但不一定是線性的,也不一定是保留最大信息量,這取決於你用什麼演算法降維以及降維後要做什麼


在我看來,特徵選取與特徵降維最大的不同是特徵選取不對原始的特徵進行變換,而是直接選擇少數幾個。記得,不做變換,只是選擇。而降維一般都是做了變換,產生少數幾個特徵的,甚至有時做變換時會拿之前所有的特徵來做。 所以,做不做變換是他們兩者本質的區別,希望有所幫助。


壓縮和閹割的區別


真心吐槽知乎的公式編輯,本來自己總結了一篇關於降維的word文檔,但是公式太難編輯,作罷。寫一寫主要的點吧。

結論:Feature extraction和feature selection 都同屬於Dimension reduction。要想搞清楚問題當中二者的區別,就首先得知道Dimension reduction是包含了feature selection這種內在聯繫,再在這種框架下去理解各種演算法和方法之間的區別。

和feature selection不同之處在於feature extraction是在原有特徵基礎之上去創造凝練出一些新的特徵出來,但是feature selection則只是在原有特徵上進行篩選。Feature extraction有多種方法,包括PCA,LDA,LSA等等,相關演算法則更多,pLSA,LDA,ICA,FA,UV-Decomposition,LFM,SVD等等。這裡面有一個共同的演算法,那就是鼎鼎大名的SVD。

SVD本質上是一種數學的方法, 它並不是一種什麼機器學習演算法,但是它在機器學習領域裡有非常廣泛的應用。

PCA的目標是在新的低維空間上有最大的方差,也就是原始數據在主成分上的投影要有最大的方差。這個是方差的解釋法,而這正好對應著特徵值最大的那些主成分。

有人說,PCA本質上是去中心化的SVD,這可以看出PCA內在上與SVD的聯繫。PCA的得到是先將原始數據X的每一個樣本,都減去所有樣本的平均值,然後再用每一維的標準差進行歸一化。假如原始矩陣X的每一行對應著每一個樣本,列對應著相應的特徵,那麼上述去中心化的步驟對應著先所有行求平均值,得到的是一個向量,然後再將每一行減去這個向量,接著,針對每一列求標準差,然後再把每一列的數據除以這個標準差。這樣得到的便是去中心化的矩陣了。

我在整理相關文檔的時候,有如下體會:

我們的學習是什麼,學習的本質是什麼?其實在我看來就是一種特徵抽取的過程,在學習一門新知識的時候,這裡一個知識點,那兒一個知識點,你頭腦里一篇混亂,完全不知所云,這些知識點在你的大腦中也純粹是雜亂無章毫無頭緒的,這不正是高維空間里數據的特徵么?最本質的數據完全湮沒在太多太多的擾動中,而我們要做的就是提煉,從一堆毫無頭緒的擾動中尋找到最本質的真理。

經過一段時間的摸索,你上升到了一個台階,從這個台階上去看原來所學到的知識點,你突然之間豁然開朗,原來TMD這些概念,這些知識點都TM是想通的。為什麼你原來卻從這些知識點中看不到任何聯繫呢?原因就在於你之前的維度太高,而你永遠只能在這個雜亂無章的高維空間里窺探到真理的一些細枝末葉,本來在低維空間里相互聯繫的事物,由於你看到的是這些事物在各個方向各個領域裡的一部分投影,你所學到的只是這些投影,那你如何僅僅依靠這些少量的投影以管窺豹呢?不可能的,所以你的知識只能是雜亂無章,毫無頭緒的。但是,一旦你所擁有的投影越來越多,你所學到的知識點越來越多,你就逐漸擁有了依靠投影獲取全貌的能力,這個時候你會發現,哇,原來過去的那些都是想通的。這就是高維空間里雜亂無章的知識點,經過降維後,回歸到了最本質特徵的全過程。

從今以後,你可以只拿著這個低維空間里的真理,摒棄掉以前學習到的任何細枝末葉的東西,然後在任何需要的時候,經過這個降維的逆演算法去還原到你所學到的知識點。

那麼,人與人之間的區別在哪裡呢?那就是,對任何一個新領域的知識點建立一套降維工具的能力。

反觀SVD,PCA,LSA等等,它們做的不正是這些么?比如在文本分類領域,最初始的數據是將文檔表示成向量空間模型的一個矩陣,而這個矩陣所擁有的就是不同的詞,這裡一個詞,那裡一個詞,對於我們人類來說,我們都已經擁有將不同詞在低維空間上總結歸納的能力,知道這些詞的聯繫和區別,但是對於計算機來說,它們怎麼知道這些的聯繫呢?也就是它們根本還不擁有這些降維的能力,那麼就要依靠我們人類告訴它們這個方法,這個工具就是SVD,其核心思想就是:將這些不同的詞都映射到低維空間中去,在低維空間中去總結,去發現這些詞的內在聯繫,一旦這些內在聯繫建立了,那麼我們就知道了這些文檔的內在聯繫了。這不正是高維空間里雜亂無章的數據經過降維工具之後獲取到最本質的特徵么。這正是特徵抽取所要做的事情。

最後總結之:

1. 特徵提取是從雜亂無章的世界中,去到更高層的世界去俯瞰原始世界,你會發現很多雜亂無章的物理現象中背後暗含的道理是想通的,這時候你想用一個更加普世的觀點和理論去解釋原先的理論,這個是特徵提取要做的事情。

2. 而你仍呆在原始世界中,只是想對現有的「取其精華,去其糟粕」,這個是所謂特徵選擇。只是對現有進行篩選。

3. 特徵提取和特徵選擇統稱為降維。(Dimension Reduction)

附:我另一個答案里還有一張圖,可以很好的區分,並包括了這些演算法里哪些是有監督的哪些是無監督的。構建用於文本聚類的空間向量模型時,應該如何作特徵選擇? - weizier 的回答


還是有差異的 個人認為 題主有這樣的疑問 主要是認為它們都可以認為是一個 降維 的過程?

一般來講 數據降維 是合理的信息丟失的範圍裡面 將原來的高維數據 映射到 一個低維空間裡面 這樣可以降低模型的複雜度和計算的複雜度 減少過擬合和增加泛化的能力

特徵選擇 在某種意義下 也是一種降維的計算 但是在這種意義下 需要人為的去理解降維後的特徵表示的意義

數據降維後 不一定就直接按照降維後的維度作為特徵的維度 (也許只是先做了一個數據間去相關之類的操作 )在訓練模型前 還要對於這些處理之後的數據 進行特徵選擇的。


Feature Reduction是將original feature 降低到一個新的dimension,而feature selection是在original feature裡面選取feature.


數據降維是一個較寬泛的概念,特徵選擇和特徵提取均屬於數據降維,只是方法不一樣。


數據降維指減少數據之間的冗餘性,去除線性相關性畢竟高維度的信息處理時難以忍受的。

特徵提取指選取能夠表徵目標結構的一種表示方法,進而擁有分類和判決。


推薦閱讀:

如何通俗易懂地解釋支持向量回歸(support vector regression)?
作為數據挖掘研究生需要補充哪些數學知識?
convex optimization 可以用來做哪些有意思的事情(可以是實驗性質)?
機器學習下的各種norm到底是個什麼東西?
學習程序資料推薦?

TAG:人工智慧 | 數據挖掘 | 機器學習 | 文本挖掘 | 圖像檢索 |