matlab完整的主成分分析代码
时间: 2023-09-23 09:04:26 浏览: 97
以下是一个完整的 MATLAB 主成分分析(PCA)代码示例:
```matlab
% 假设有一个数据矩阵 X,每一行代表一个观察值,每一列代表一个特征
% 数据标准化
X = zscore(X);
% 计算协方差矩阵
covariance_matrix = cov(X);
% 对协方差矩阵进行特征值分解
[eigenvectors, eigenvalues] = eig(covariance_matrix);
% 对特征值进行排序,并记录其下标
eigenvalues = diag(eigenvalues);
[~, indices] = sort(eigenvalues, 'descend');
% 选择前 k 个特征向量,这里假设我们选择前两个
k = 2;
selected_eigenvectors = eigenvectors(:, indices(1:k));
% 将数据投影到选择的特征向量上
transformed_data = X * selected_eigenvectors;
% 可视化结果
scatter(transformed_data(:,1), transformed_data(:,2));
xlabel('PC1');
ylabel('PC2');
title('PCA Result');
```
在这个代码示例中,我们首先对数据矩阵 X 进行标准化,使得每个特征的均值为0,方差为1。然后,我们计算 X 的协方差矩阵,并对其进行特征值分解。通过特征值的大小,我们选择前 k 个特征向量作为主成分。接下来,我们将原始数据投影到选取的特征向量上,得到降维后的数据矩阵 transformed_data。最后,我们使用 scatter 函数可视化降维后的数据,其中 PC1 和 PC2 分别代表第一主成分和第二主成分。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)