数据预处理Part9——数据降维
文章目錄
- 1. 什么是數據降維?
- 2. 為什么要進行數據降維?
- 3. 降維是如何實現的?
- 4. sklearn中的降維算法
- 4.1 主成分分析PCA
- 4.2 因子分析FA
- 4.3 獨立成分分析ICA
- 5. 特征選擇和數據降維有什么區別?
- 6. 總結
1. 什么是數據降維?
??想象這樣一種場景:我們正通過電視而非現場觀看體育比賽,在電視的純平顯示器上有一個足球。顯示器大概包含了100萬像素,而足球則是可能由一千個像素組成。在比賽中,我們更關注的是球的位置。人的大腦要想了解比賽的進展,就需要了解球在運動場中的位置。在這個過程中,人們已經將數據從一百萬維降為三維。
??在上述體育比賽的例子中,人們面對的原本是百萬像素的數據,但是只有球的三維位置才最重要,這就被稱為降維。在低維下,數據更容易進行處理。另外,其相關特征可能在數據中更明確的顯示出來。
??維度指的就是樣本的數量或者特征的數量。一般無特別說明,指的都是特征數量。降維算法中的降維,指的就是降低特征矩陣中特征的數量。
2. 為什么要進行數據降維?
??降維的目的是為了讓算法運算更快,效果更好。降維可以使數據集變得更易使用,對于數據量較大的數據集,我們可以通過降維降低模型算法的計算開銷,與此同時,去除掉數據集中無用的噪聲數據,而且少量的特征也可能使得模型解釋起來簡單易懂。
3. 降維是如何實現的?
??假設我們現在有一組簡單的數據,包含兩個特征X1和X2,三個樣本數據的坐標點分別為(1,1),(2,2),(3,3)。我們可以讓X1和X2分別作為兩個特征向量,很輕松就可以用一個二維平面來描述這組數據。這組數據現在每個特征的均值都為2,方差則等于:
(X1)var=(X2)var=(1?2)2+(2?2)2+(3?2)22=1(X_1)_{var} = (X_2)_{var} = {(1-2)^2 +(2-2)^2+(3-2)^2\over2} = 1 (X1?)var?=(X2?)var?=2(1?2)2+(2?2)2+(3?2)2?=1
??每個特征的數據一模一樣,因此方差也都為1,數據方差總和是2.
??現在我們的目標是:只用一個特征向量來描述這組數據,即將二維數據降為一維數據,并且盡可能地保留信息量,能讓數據的總方差盡量靠近2。于是我們將原本的直角坐標系逆時針旋轉45度,形成了新的直接坐標系,新特征向量X1* 和 X2*。在這個新坐標系中,三個樣本數據的坐標點可以表示為(2\sqrt22?,0),(22\sqrt22?,0),(32\sqrt22?,0)。
??可以注意到,X2* 上的數值此時都變成0,因此X2* 明顯不帶有任何有效信息了。此時X1*特征上的數據均值為222\sqrt222?,而方差則可表示成:
(X1)var?=(2?22)2+(22?22)2+(32?22)22=2(X_1)^*_{var} = {(\sqrt2-2\sqrt2)^2 +(2\sqrt2-2\sqrt2)^2+(3\sqrt2-2\sqrt2)^2\over2} = 2 (X1?)var??=2(2??22?)2+(22??22?)2+(32??22?)2?=2
??此時,我們根據信息含量的排序,取信息含量大的一個特征,因為我們想要的一維數據。所以我們可以將X2* 刪除,剩下的X1* 就代表了曾經需要兩個特征來代表的三個樣本點。通過旋轉原有特征向量組成的坐標軸來找到新特征向量和新坐標系,我們將三個樣本點的信息壓縮到一條直線上,實現了二維變一維,并且盡量保留原始數據的信息。這樣就實現一個簡單的降維。
| 1 | 1 | 2\sqrt22? | 0 |
| 2 | 2 | 222\sqrt222? | 0 |
| 3 | 3 | 323\sqrt232? | 0 |
4. sklearn中的降維算法
4.1 主成分分析PCA
? ?第一種降維的方法成為主成分分析(Principal Cpmponent Analysis,PCA)。在PCA中,數據從原來的坐標系轉換到了新的坐標系,新坐標系的選擇是由數據本身決定的。第一個新坐標軸選擇的是原始數據中方差最大的方向,第二個新坐標軸的選擇和第一個坐標軸正交且具有最大方差的方向。該過程一直重復,重復次數為原始數據中特征的數目。我們會發現,大部分方差都包含在最前面的幾個新坐標軸中。因此我們可以忽略余下的坐標軸,即對數據進行了降維處理。
4.2 因子分析FA
??另一種降維技術是因子分析。在因子分析中,我們假設在觀察數據的生成中有一些觀察不到的隱變量。假設觀察數據是這些隱變量和某些噪聲的線性組合。那么隱變量的數據可能比觀察數據的數目少,也就是說通過找到隱變量就可以實現數據的降維。
4.3 獨立成分分析ICA
??還有一種降維技術就是獨立成分分析(Independent Component Analysis,ICA)。ICA假設數據是從N個數據源生成的,這一點和因子分析有些類似。假設數據為多個數據源的混合觀察結果,這些數據源之間在統計上是相互獨立的,而在PCA中只假設數據是不相關的。同因子分析一樣,如果數據源的數目少于觀察數據的數目,則可以實現降維過程。
??在上述三種降維技術中,PCA的應用目前最為廣泛。由于篇幅原因,我會在另一篇博客中著重講解上面三種方法的原理以及代碼實現。
5. 特征選擇和數據降維有什么區別?
??特征工程中有三種方式:特征提取,特征創造和特征選擇.
??特征選擇是從已存在的特征中選取攜帶信息量最多的,選完之后的特征依然具有可解釋性,我們依然知道這個特征在原數據的哪個位置,代表原數據上的什么含義。
??降維,是將已存在的特征進行壓縮,降維完畢后的特征不是原本的特征矩陣中的任何一個特征,而是通過某些方式組合起來的新特征。通常來說,在新的特征矩陣生成之前,我們無法知曉降維都建立了怎樣的新特征向量,新特征矩陣生成后也不具有可讀性,我們無法判斷新特征矩陣的特征是從元數據的什么特征組合而來,新特征雖然帶有原始數據的信息,卻已經不是原數據上代表的含義了。以PCA為代表的降維算法因此是特征創造的一種。
??由此可知,PCA一般不適用與探索特征和標簽之間的關系的模型(如線性回歸),因此無法解釋的新特征和標簽之前的關系不具有實際意義。在線性回歸模型中,我們使用特征選擇。
6. 總結
??降維技術使得數據變得更易使用,并且他們往往能夠去除數據中的噪聲,使得其他機器學習任務更加準確。降維往往作為預處理步驟,在數據應用到其他算法之前清洗數據。有更多技術可以用于數據降維,在這些技術中,獨立成分分析、因子分析和主成分分析比較流行,其中又以主成分分析應用最為廣泛。
參考資料:機器學習實戰
?????菜菜的sklearn課堂
關聯文章:
數據預處理Part1——數據清洗
數據預處理Part2——數據標準化
數據預處理Part3——真值轉換
數據預處理Part4——數據離散化
數據預處理Part5——樣本分布不均衡
數據預處理Part6——數據抽樣
數據預處理Part7——特征選擇
數據預處理Part8——數據共線性
總結
以上是生活随笔為你收集整理的数据预处理Part9——数据降维的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山东专升本计算机网络(二)
- 下一篇: 小程序swiper点样式