PCA特征向量降维python代码
时间: 2023-10-12 08:57:43 浏览: 177
以下是使用Python进行PCA特征向量降维的代码示例:
```python
import numpy as np
def pca(X, k):
# 计算协方差矩阵
sigma = np.cov(X.T)
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(sigma)
# 对特征值进行排序
idx = eigenvalues.argsort()\[::-1\]
eigenvectors = eigenvectors\[:, idx\]
# 选择前k个特征向量
selected_eigenvectors = eigenvectors\[:, :k\]
# 将数据投影到选定的特征向量上
X_reduced = X.dot(selected_eigenvectors)
return X_reduced
# 示例数据
X = np.array(\[\[1, 2\], \[3, 4\], \[5, 6\], \[7, 8\]\])
# 设置降维后的维度
k = 1
# 进行PCA降维
X_reduced = pca(X, k)
print(X_reduced)
```
这段代码首先计算输入数据的协方差矩阵,然后通过计算特征值和特征向量来进行降维。最后,选择前k个特征向量,并将数据投影到这些特征向量上,得到降维后的数据。在上述示例中,输入数据X是一个2维的矩阵,k设置为1,表示将数据降维到1维。输出结果X_reduced是降维后的数据。
#### 引用[.reference_title]
- *1* *2* *3* [降维算法实战项目(1)—使用PCA对二维数据降维(Python代码+数据集)](https://blog.csdn.net/wzk4869/article/details/126074158)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文