2024最新分别利用sklearn和Numpy实现c均值对鸢尾花数据集进行聚类(附完整代码和注释)
C均值聚类算法(K-Means Clustering)是一种非常流行的聚类算法,用于将数据点分成多个簇,使得簇内的点尽可能相似,簇间的点尽可能不同。以下是K-Means算法的基本步骤:
1. 初始化:随机选择K个点作为初始的簇中心(质心)。
2. 分配:将每个数据点分配到最近的质心所属的簇中。
3. 更新:计算每个簇中所有点的均值,更新质心为这个均值。
4. 迭代:重复步骤2和3,直到满足某个终止条件(例如,达到最大迭代次数,或者质心的变化小于某个阈值)。
5. 终止:当满足终止条件时,算法结束,最终的簇划分就是聚类结果。
sklearn方法
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from sklearn.preprocessing import StandardScaler# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 定义不同的K值
k_values = [2, 3, 4, 5]# 评估不同K值的聚类效果
for k in k_values:km