pca去中心化
Ⅰ matlab中pca
1,4 matlab是有幫助文檔的,我沒有明白你所指的去中心化處理是什麼,PCA的結果在數組自己的維度。
以下是幫助文檔,請仔細閱讀
coeff = pca(X) returns the principal component coefficients, also known as loadings, for the n-by-p data matrix X. Rows of X correspond to observations and columns correspond to variables. The coefficient matrix is p-by-p. Each column of coeffcontains coefficients for one principal component, and the columns are in descending order of component variance. By default, pca centers the data and uses the singular value decomposition (SVD) algorithm.
example
coeff = pca(X,Name,Value) returns any of the output arguments in the previous syntaxes using additional options for computation and handling of special data types, specified by one or more Name,Value pair arguments.
For example, you can specify the number of principal components pca returns or an algorithm other than SVD to use.
example
[coeff,score,latent] = pca(___) also returns the principal component scores in score and the principal component variances in latent. You can use any of the input arguments in the previous syntaxes.
Principal component scores are the representations of X in the principal component space. Rows of score correspond to observations, and columns correspond to components.
The principal component variances are the eigenvalues of the covariance matrix of X.
example
[coeff,score,latent,tsquared] = pca(___) also returns the Hotelling's T-squared statistic for each observation in X.
example
[coeff,score,latent,tsquared,explained,mu] = pca(___) also returns explained, the percentage of the total variance explained by each principal component and mu, the estimated mean of each variable in X.
2. PCA 和SVD的不同是,他們分解矩陣的方式是不同的。我建議你翻看wikipedia裡面SVD和PCA的說明,裡面公式很清晰了
Ⅱ 主成分分析PCA演算法:為什麼要對數據矩陣進行均值化
個人覺得 去均值化是為了方面後面的協方差,去均值化後各維度均值為零,
協方差中的均值也就是零了,方便求解。
具體,假設矩陣A去中心化後得到B,那麼B的協方差就是B*B的轉置
Ⅲ 數據旋轉後pca的主成分方向變了嗎
獲取n行m列原始數據,寫成n*m的矩陣形式;
數據中心化。
即把每個屬性的均值處理設為0(下面木羊將給出自己編寫的源代碼,木羊的數據用列代表屬性,在該步驟中,就把每列的均值都設置為0)。
根據中心化後的矩陣求協方差矩陣。
協方差有三種值,0表示屬性之間相互獨立,沒有影響;
正值表示屬性是正相關的關系,若屬性A和屬性B是正相關關系,則A增加B也增加,A減小B也減小;
負值表示屬性是負相關的關系,若屬性C和屬性D是負相關關系,則C增加D減小,C減小D增加。
所以,協方差矩陣也可以理解為相關系數矩陣,表示屬性間的相關程度。
根據協方差矩陣求特徵值矩陣。
特徵值矩陣只有對角線上的元素有值,上三角和下三角元素都為0.
根據特徵值矩陣求對應的特徵向量。
對特徵值矩陣進行排序,並設定一個閾值,若前i個特徵矩陣的和>=設定的閾值,則就有i個主成分,取其對應的特徵向量,定為主成分向量矩陣。
原始矩陣乘以轉置後的主成分向量即得降維後的矩陣。
比如,原始數據是150*4的矩陣,在步驟6中取得了2個主成分,那麼主成分矩陣就是2*4的矩陣。
150*4的矩陣乘以4*2的矩陣,即得150*2的矩陣,體現了降維效果。
(選取這個屬性較少的數據集是為了方便初學者的理解,在實際工程中,的屬性值往往不止4個,但降維方法都一樣的。
)
Ⅳ 主成分分析PCA演算法:為什麼要對數據矩陣進行均值化
個人覺得
去均值化是為了方面後面的協方差,去均值化後各維度均值為零,
協方差中的均值也就是零了,方便求解。
具體,假設矩陣A去中心化後得到B,那麼B的協方差就是B*B的轉置
Ⅳ 數據降維特徵值為負需要捨去數據嘛
經過這幾天面試後,我發現數據降維這一塊在工業界用的很多或者說必不可少,因此,這方面需要重點關注。今天,我將數據降維總結於此,包括他人成果,這里對他們的內容表示感謝。
Method
對數據降維作用有多個角度的理解。吳恩達在他的視頻中說,降維是用於數據壓縮,降低雜訊,防止運行太慢內存太小;當降到2或3維可以可視化操作,便於數據分析;不要將降維用於防止過擬合,容易去掉和標簽有關的重要特徵。但是數據為何需要壓縮,除了佔用內存以外還有沒有別的原因——「維度災難」問題:維度越高,你的數據在每個特徵維度上的分布就越稀疏,這對機器學習演算法基本都是災難性的。最後導致的可能是每個樣本都有自己的特徵,無法形成區別是正例還是負例的統一特徵。還有另外一個情況當特徵多於樣本量時,一些分類演算法(SVM)是失效的,這與分類演算法原理有關。
數據降維方法:
線性降維方法:
主成分分析(PCA)和判別分析方法(LDA)
關於PCA的理解:
1、PCA可以理解為高維數據投影到低維,並使得投影誤差最小。是一種無監督將為方法。
2、還可以理解為對坐標旋轉和平移(對應著坐標變換和去中心化),從而使得n維空間能在n-1維分析,同時去掉方差小的特徵(方差小,不確定度小,信息量小)
3、PCA的推導
4、PCA與SVD的聯系
(從矩陣分解角度理解PCA)
5、PCA降維的應用
6、PCA 的缺點:
(1)pca是線性降維方法,有時候數據之間的非線性關系是很重要的,這時候我們用pca會得到很差的結果。所有接下來我們引入核方法的pca。
(2)主成分分析法只在樣本點服從高斯分布的時候比較有效。
(3) 存在不平衡數據的降維可以採用代價敏感PCA(CSPCA)
(4)特徵根的大小決定了我們感興趣信息的多少。即小特徵根往往代表了雜訊,但實際上,向小一點的特徵根方向投影也有可能包括我們感興趣的數據;
(5)特徵向量的方向是互相正交(orthogonal)的,這種正交性使得PCA容易受到Outlier的影響
(6)難於解釋結果。例如在建立線性回歸模型(Linear Regression Model)分析因變數