主成分分析 (PCA) - MATLAB & Simulink - MathWorks 中国
-
构建相关系数矩阵或协方差矩阵
两个变量的协方差\(cov(x,y)=\frac{\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{n-1}\)
协方差矩阵\(C= \begin{bmatrix} cov(x,x) & cov(x,y) \\ cov(x,y) & cov(y,y) \end{bmatrix}\)
-
再求协方差矩阵的特征向量、特征值。
-
每一个新变量就是用对应的特征向量乘旧变量构成的向量。
例如对矩阵C,\(Z_1=\vec{v}\cdot \vec x\) .
-
得到了新变量后,可以按特征值占比大小给变量排序,让后累加取到>85%时的新变量,其它变量剔除,从而实现降维。
每个特征向量特征值占比:\(\frac{\lambda_i}{\sum\lambda}\)
如果,前三个新变量的占比总和>85%则就取前三个变量分析。
Matlab求特征值占比比例
data = %数据读入
data = zscore(data);%数据标准化很重要
CorrCoefMatrix = corrcoef(data);%matlab自带函数计算相关系数矩阵,列表示随机变量,行表示观测值
[coeff latent explained] = pcacov(CorrCoefMatrix)
%coeff: 特征向量(注意与pca函数的变量score进行区分).
%latent: 特征值.
%explained:每个特征值占比,字面上即每个特征值对系统有多少解释,用百分比表示。explained=100*latent/sum(latent);
主成分分析降维
如果数据的维数过高可以用主成分分析降维。
原始数据的主成分分析 - MATLAB pca - MathWorks 中国
data_1 = pca(data);
TSNE降维
data_1 = tsne(data,'NumDimensions','2');%TSNE降维
标签:分析,特征值,变量,cov,矩阵,降维,成分,data
From: https://www.cnblogs.com/cxy1114blog/p/18459139