1.pip install 两个大工具包 :
(1) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
(2) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearn
2. 导入三个模块,分别是
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from matplotlib.pyplot
3. 加载数据,导入鸢尾花数据
iris = load_iris()
#load_iris() 这个方法是sklearn自带的鸢尾花测试数据
4.构建模型
Kmeans = KMeans(n_clusters = 3, init = 'k-means++', random_state =123)
#n_clusters 簇的个数
#init 将这个值状态设置为'k-means++' 可以避免选择较差的起始点
#random_state =123 将状态为123的随机值固定
5产生结果
y_kmeans = kmeans.fit_predict(iris.data)
6.结果可视化展示
(1)每个簇的中心点展示
kmeans.cluster_centers_
#下面的二维集合的子集合对应着着三个簇中心,在细分到下面的一维数组,里面包含的是花萼长的中心点,花萼宽的中心点,花瓣长的中心点,花瓣宽的中心点
(2) #画出了三个类的中心点位置
plt.scatter(iris.data[y_kmeans == 0, 2], iris.data[y_kmeans == 0, 3], s = 50, c = 'red', label = 'Cluster 1')
plt.scatter(iris.data[y_kmeans == 1, 2], iris.data[y_kmeans == 1, 3], s = 50, c = 'blue', label = 'Cluster 2')
plt.scatter(iris.data[y_kmeans == 2, 2], iris.data[y_kmeans == 2, 3], s = 50, c = 'green', label = 'Cluster 3')
#绘制中心点
plt.scatter(kmeans.cluster_centers_[:, 2], kmeans.cluster_centers_[:, 3], s = 100, c = 'black', label = 'Centroids')#花瓣长和花瓣宽
plt.title('Clusters of Iris')
plt.xlabel('Petal.Length')
plt.ylabel('Petal.Width')
plt.legend()
plt.show()
#y_kmeans 是上面聚类生产的结果(里面分别打标记每一行对应哪一种类型【0,1,2】),这里就是说当该行数#据对应标签结果为0时,取出第3个字段
#下面的也是类似,相当于分别取出3个簇群的第3个字段和第4个字段进行图形展示。
#iris_data 是一个二维数组