K中心对鸢尾花数据集进行聚类并且可视化
时间: 2023-07-24 19:07:53 浏览: 93
这是鸢尾花数据集
5星 · 资源好评率100%
要对鸢尾花数据集进行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()
```
运行以上代码后,你将得到一个散点图,其中蓝色点表示原始数据点,红色点表示聚类中心。你可以根据需要修改代码中的维度和颜色等参数,以适应不同的数据集和可视化需求。
阅读全文