针对“索引错误index 1 is out of bounds for axis 0 with size 1”的错误,一种可能的解决方案是检查数据输入格式是否正确。可以在运行K-means算法之前,先使用pandas库将数据集导入jupyter notebook,以确保数据格式正确。另外,还可以尝试使用sklearn库中的KMeans类,该类实现了K-means算法,并具有良好的可视化效果。具体代码示例如下:
from sklearn.cluster import KMeans
import pandas as pd
import matplotlib.pyplot as plt
# 导入数据
data = pd.read_csv('data.csv')
X = data.iloc[:, [0, 1]].values
# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=2, init='k-means++', max_iter=300, n_init=10, random_state=0)
y_kmeans = kmeans.fit_predict(X)
# 可视化聚类结果
plt.scatter(X[y_kmeans == 0, 0], X[y_kmeans == 0, 1], s = 50, c = 'red', label = 'Cluster 1')
plt.scatter(X[y_kmeans == 1, 0], X[y_kmeans == 1, 1], s = 50, c = 'blue', label = 'Cluster 2')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s = 100, c = 'green', label = 'Centroids')
plt.title('KMeans Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()
在这段代码中,首先使用pd.read_csv()
函数将数据集导入jupyter notebook,在本例中,数据集文件名为“data.csv”,然后使用KMeans
类进行聚类,该类的参数设置与手写的K-means算法类似。最后,使用matplotlib库可视化聚类结果。
注意,根据具体问题,数据集的输入格式和算法参数都可能需要根据需求进行调整。如果以上方案无法解决问题,则需要进一步检查相关代码和错误提示信息。