利用Python编写PCA算法,实现城市排名数据的降维
时间: 2024-02-13 18:04:57 浏览: 78
以下是使用Python编写PCA算法,实现城市排名数据的降维的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('city_ranking.csv')
X = data.iloc[:, 1:].values
# 定义PCA函数
def pca(X, k):
# 中心化数据
X_mean = np.mean(X, axis=0)
X_centered = X - X_mean
# 计算协方差矩阵
cov_matrix = np.cov(X_centered.T)
# 计算特征值和特征向量
eigen_values, eigen_vectors = np.linalg.eig(cov_matrix)
# 选取前k个特征向量
top_k_eigen_vectors = eigen_vectors[:, :k]
# 将数据投影到低维空间
X_projected = np.dot(X_centered, top_k_eigen_vectors)
return X_projected
# 对数据进行降维
X_projected = pca(X, k=2)
# 可视化降维后的数据
plt.scatter(X_projected[:, 0], X_projected[:, 1])
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.title('City Ranking Data After PCA')
plt.show()
```
在上面的示例代码中,我们先读取了一个名为city_ranking.csv的数据文件,该文件包含了一些城市的排名数据。我们使用pandas库读取数据,并将排名数据存储在名为X的数组中。接着,我们定义了一个名为pca的函数,该函数实现了PCA算法的核心部分。最后,我们使用该函数对数据进行降维,并将结果可视化。在本例中,我们将数据降到了2维,并将降维后的数据在二维平面上进行了展示。
阅读全文