主成分分析(PCA)进行特征提取
这段代码实现了主成分分析(PCA)的数据得分计算和特征向量提取。下面是代码的解释:1.函数定义:
2.函数名为PCA,接受两个输入参数:raw_data(原始数据)和T(保留率),并返回新数据。
3.数据读取与标准化:
4.将原始数据raw_data赋值给变量A。
5.获取数据矩阵的尺寸,其中a表示行数,b表示列数。
6.创建一个与原始数据大小相同的零矩阵SA。
7.使用循环将数据按列进行放置,并进行标准化(归一化),即将每列数据减去该列的均值,再除以该列的标准差。
8.求解相关系数:
9.使用corrcoef函数计算归一化后的数据矩阵SA的相关系数矩阵CM。
10.计算特征值和特征向量:
11.使用eig函数对相关系数矩阵CM进行特征值分解,得到特征向量矩阵V和特征值矩阵D。
12.提取特征值和计算贡献率:
13.创建一个零矩阵DS,其大小为b x 3,其中b为特征值矩阵D的列数。
14.将特征值矩阵D的对角线元素(特征值)赋值给DS的第一列。
15.对DS按照第一列的值进行从大到小排序。
16.计算特征值的贡献率,将特征值除以所有特征值的和,并将结果赋值给DS的第二列。
17.计算特征值的累计贡献率,对贡献率列进行累加,并将结果赋值给DS的第三列。
18.确定保留主成分的数量:
19.找到累计贡献率大于等于设定的保留率T的索引位置。
20.提取第一个满足条件的索引(最小的保留主成分数量)并赋值给变量Com_num。
21.提取主成分对应的特征向量:
22.将特征向量矩阵V的最后Com_num列反转(从最后一列开始取),得到主成分对应的特征向量矩阵PV。
23.计算在主成分上的数据得分:
24.将归一化后的数据矩阵SA与主成分特征向量矩阵PV相乘,得到在主成分上的数据得分矩阵data。
该函数的作用是对原始数据进行主成分分析,并返回在主成分上的数据得分矩阵。主成分分析用于降维和数据探索,它将原始数据转换为一组新的线性维度,其中每个维度都是原始数据维度的线性组合。这些新的维度(主成分)根据特征值的贡献率进行排序,保留贡献率较高的主成分。
页:
[1]