将上面pca降维后的数据保存为CSV文件
时间: 2024-03-20 19:38:51 浏览: 124
可以使用 pandas 库中的 to_csv 函数将数据保存为 CSV 文件。修改代码如下:
```python
from sklearn.cluster import KMeans
from sklearn.metrics import rand_score, fowlkes_mallows_score, davies_bouldin_score
import matplotlib.pyplot as plt
import pandas as pd
# 步骤 3.1 读入数据集
data = pd.read_csv('iris.csv')
X = data.iloc[:, :-1].values
# 进行 PCA 降维
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 将 PCA 降维后的数据保存为 CSV 文件
df = pd.DataFrame(X_pca, columns=['PCA1', 'PCA2'])
df['label'] = data.iloc[:, -1].values
df.to_csv('pca_iris.csv', index=False)
# 步骤 3.2 进行聚类
kmeans = KMeans(n_clusters=2, random_state=0).fit(X_pca)
labels = kmeans.labels_
# 步骤 3.3 可视化聚类结果
centers = kmeans.cluster_centers_
plt.scatter(X_pca[labels == 0, 0], X_pca[labels == 0, 1], c='red', label='Cluster 1')
plt.scatter(X_pca[labels == 1, 0], X_pca[labels == 1, 1], c='blue', label='Cluster 2')
plt.scatter(centers[:, 0], centers[:, 1], marker='x', s=200, linewidths=3, color='black', label='Centroids')
plt.title('Kmeans Clustering')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.legend()
plt.show()
# 步骤 3.4 计算外部指标和内部指标
y_true = data.iloc[:, -1].values
print('Rand index:', rand_score(y_true, labels))
print('Fowlkes-Mallows index:', fowlkes_mallows_score(y_true, labels))
print('Davies-Bouldin index:', davies_bouldin_score(X_pca, labels))
```
在这段代码中,我们首先读入了原始的鸢尾花数据集 iris.csv,并进行了 PCA 降维。然后,我们将降维后的数据保存为 CSV 文件 pca_iris.csv,并在后面的聚类和可视化中使用了这个文件。
阅读全文