jupyter代码PCA实验:对data.csv文件中的数据实现PCA操作并实现维度恢复
时间: 2024-03-03 07:48:09 浏览: 88
好的,请参考以下的jupyter代码实现:
```python
import numpy as np
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 将数据转换为numpy数组
X = data.values
# 将特征值和目标值分开
x = X[:, :-1]
y = X[:, -1]
# 特征归一化
def featureNormalize(X):
# 每一列的均值
mu = np.mean(X, axis=0)
# 每一列的标准差
sigma = np.std(X, axis=0, ddof=1)
# 对每一列进行归一化处理
X_norm = (X - mu) / sigma
return X_norm, mu, sigma
# 对特征值进行归一化处理
x_norm, mu, sigma = featureNormalize(x)
# 计算协方差矩阵
Sigma = (1 / len(x_norm)) * np.dot(x_norm.T, x_norm)
# 奇异值分解
U, S, V = np.linalg.svd(Sigma)
# 选取前k个特征向量构成降维矩阵
k = 2
Ureduce = U[:, :k]
# 对样本进行降维
z = np.dot(x_norm, Ureduce)
# 维度恢复
x_approx = np.dot(z, Ureduce.T)
# 将特征值恢复到原始尺寸
x_approx = x_approx * sigma + mu
# 输出恢复后的特征值
print(x_approx)
```
运行结果会输出恢复后的特征值。
阅读全文