①資料在低維下更容易處理、更容易使用;
②相關特徵,特別是重要特徵更能在資料中明確的顯示出來;如果只有兩維或者三維的話,更便於視覺化展示;
③去除資料雜訊
④降低演算法開銷
*****降維通俗點的解釋*****
一些高維度的資料,比如**交易資料,為便於解釋降維作用,我們在這假設有下單數,付款數,商品類別,售價四個維度,資料量上百萬條,對於下單數和付款數,我們可以認為兩者是線性相關的,即知道下單數,我們可以得到付款數,這裡很明顯這兩個屬性維度有冗餘,去掉下單數,保留付款數,明顯能再保證原有資料分布和資訊的情況下有效簡化資料,對於後面的模型學習會縮短不少時間和空間開銷。這就是降維,當然並不是所有資料中都會有過於明顯線性相關的屬性維度,我們降維後最終的目標是各個屬性維度之間線性無關。
*****pca降維步驟原理******
首先既然要度量那些是否存在相關的屬性,我們就要用到協方差,在部落格相關分析中有介紹,這裡不再贅述,協方差衡量的是2維屬性間的相關性,對於n個維度的屬性,就需要協方差矩陣,其對角線為各維度的方差。
步驟:設有m條n維資料。
1)將原始資料按列組成n行m列矩陣x
2)將x的每一行(代表乙個屬性字段)進行零均值化,即減去這一行的均值
3)求出協方差矩陣
4)求出協方差矩陣的特徵值及對應的特徵向量r
5)將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p
6)即為降維到k維後的資料
*****關於維數k的選擇******
使用乙個公式error=
**************python中sklearn庫的pca實現**************************
[python]
view plain
copy
from
sklearn.decomposition
import
pca
import
numpy as np
from
sklearn.preprocessing
import
standardscaler
x=np.array([[10001,2
,55], [
16020,4
,11], [
12008,6
,33], [
13131,8
,22]])
# feature normalization (feature scaling)
x_scaler = standardscaler()
x = x_scaler.fit_transform(x)
# pca
pca = pca(n_components=0.9
)# 保證降維後的資料保持90%的資訊
pca.fit(x)
pca.transform(x)
PCA降維演算法
文章由兩部分構成,第一部分主要講解pca演算法的步驟,第二部分講解pca演算法的原理。那麼首先進入第一部分 pca演算法的步驟 樣本矩陣x的構成 假設待觀察變數有m個,其實相當於乙個資料在m維各維度上的座標,我們的目標是在保證比較資料之間相似性不失真的前提下,將描述資料的維度盡量減小至l維 l樣本矩...
PCA降維原理
在之前的介紹中,一幅影象只能表示乙個物件。那麼對於w x h的灰度影象,只能表示為w x h位的向量,那麼乙個有100 100的影象就需要10000維的向量空間。對於一幅人臉而言,是否所有維的資料都是有用的呢?在矩陣論當中我們知道,矩陣可以近似的表示為乙個特徵值與特徵向量的乘積。根據這個原理,如果我...
資料降維 PCA
模型原型 class sklearn.decomposition.pca n components none,copy true,whiten false 引數 copy 如果為false,則直接使用原始資料來訓練,結果會覆蓋原始資料所在的陣列 whiten 如果為true,則會將特徵向量除以n s...