K中心对鸢尾花数据集进行聚类并且讲聚类的结果用不同颜色可视化
时间: 2023-08-20 11:04:26 浏览: 100
k_means聚类算法和配套测试鸢尾花数据集
要使用K中心算法对鸢尾花数据集进行聚类,并将聚类结果用不同颜色进行可视化,可以使用以下代码:
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.metrics import pairwise_distances_argmin_min
import matplotlib.pyplot as plt
# 导入鸢尾花数据集
iris = load_iris()
X = iris.data
# 定义K中心聚类函数
def k_center_clustering(X, k):
centers = [X[0]] # 初始化聚类中心,选择第一个样本点作为初始中心
while len(centers) < k:
# 计算每个样本点到已有中心的最小距离
distances = pairwise_distances_argmin_min(X, centers)[1]
# 选择距离最大的样本点作为新的聚类中心
new_center = X[np.argmax(distances)]
centers.append(new_center)
return np.array(centers)
# 调用K中心聚类函数
k = 3 # 聚类簇数
centers = k_center_clustering(X, k)
# 进行可视化
plt.scatter(X[:, 0], X[:, 1], c='blue', label='Data Points') # 原始数据点
plt.scatter(centers[:, 0], centers[:, 1], c='red', label='Cluster Centers') # 聚类中心点
plt.xlabel('Sepal Length')
plt.ylabel('Sepal Width')
plt.title('K-center Clustering on Iris Dataset')
plt.legend()
plt.show()
```
以上代码会生成一个散点图,其中蓝色点表示原始数据点,红色点表示聚类中心。你可以根据需要修改代码中的维度和颜色等参数,以适应不同的数据集和可视化需求。
阅读全文