数据降维(特征提取)和特征选择有什么区别?
?
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)
?
構建用于文本聚類的空間向量模型時,應該如何作特征選擇?
在對高維度的向量空間模型進行降維處理時,通常使用特征選擇和特征提取(抽取)這兩種方法,這里想要問的是,針對于聚類這種無監督學習,沒有已分好類的樣本(訓練集),應該如何作特征選擇呢。目前有這樣的無監督特征選擇方法,但是效果并不怎么樣,并且也是學術界在研究的問題。
上圖:
In unsupervised feature selection the object is less well posed and consequently it is a much less explored area.
所以,你一定要在無監督文本上篩選特征,那么目前看來比較好的方法是放棄feature selection,而用feature extraction, 也就是上圖中的feature transformation.
如何抽取文章特征?
?
前面這個回答著重是講如何從海量候選中選取有代表性的特征。而特征也有很多不同類型,如單詞、短語、隱含主題、概念,等等。文檔的特征表示,是文本聚類和分類的共同基礎。目前的主要嘗試和結論如下:1. 如開頭所提到的問題中的回答,最常見的特征類型是詞匯/詞語,利用Chi-squre進行特征選取,利用TFIDF作為特征權重。這也是搜索引擎和文本分類中最通用魯棒的做法。
2. 對于短文本,如微博、查詢詞、社區問答系統中的提問問題等,利用基于詞匯的特征向量空間計算相似度會面臨比較嚴重的數據稀疏性問題,解決的方案是利用隱含主題模型等方法,建立詞匯之間的相似度。具體方案可以參考2008年發表在WWW上的一篇論文:Learning to classify short and sparse text & web with hidden topics from large-scale data collections。需要注意的是,在LDA的原始論文中作者就嘗試僅用文檔主題來作為特征進行分類,但經驗表明,僅用隱含主題的特征表示效果明顯弱于使用詞匯的特征表示方案。實用的做法是將兩者相結合。
3. 2007年有研究者在IJCAI的論文中提出利用維基百科中的概念表示單詞和文檔,取得較好效果:Computing Semantic Relatedness Using Wikipedia-based Explicit Semantic Analysis。它的優點是可以做任意長度文本的特征表示,由于它將所有單詞和文檔都表示為維基百科詞條數目長度的向量,因此具有較強的表達能力,但問題就是計算效率的問題。一個可行的解決方案是限制每個單詞或文本只在幾百萬維的少數概念/詞條上取值。
像微博這種短文本的分析,用什么方法提取特征比較好呢?
一般是用詞袋模型+隱含主題模型來完成。
在短文本的主題模型有一些研究工作,我沒有全面做過調研,自己了解的包括:
1. KDD 2014上來自Twitter團隊的Large-Scale High-Precision Topic Modeling on Twitter,對Twitter數據上進行主題模型建模做了大量定制化工作。
2. WWW 2008上的Learning to classify short and sparse text & web with hidden topics from large-scale data collections,專門研究如何用主題模型幫助解決短文本類分類的稀疏性問題。
3. ECIR 2011上的Comparing twitter and traditional media using topic models提出TwitterLDA,假設每條短文本只屬于一個隱含主題,屬于專門針對短文本隱含主題建模所做的合理性假設。
?
轉載于:https://www.cnblogs.com/Yiutto/articles/5025891.html
總結
以上是生活随笔為你收集整理的数据降维(特征提取)和特征选择有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看windows 端口进程
- 下一篇: JavaScript基础——处理字符串