运行代码后,利用matplotlib(from matplotlib import pyplot as plt)绘制图形
图1 交织的半圆 图2 同心圆 图3 两团数据点
假定簇是凸的且各向同性的;并不是归一化的指标,即范围不是0到1之间,我们只知道该指标越小越好,0为最佳。k均值算法分为3个步骤:第1步,选择初始的簇中心,可以随机选择数据集中的样本;第2步,将每个样本分配到最近的簇中心所在的簇;第3步,计算新的簇中心。重复迭代第2和3步,直到簇中心在不同的迭代之间变化不大。
k-means聚类模型的属性参数:参数n_clusters:聚类得到簇的数量参数n_init:随机选择初始中心的组数,最终选择惯性最小的模型参数random_state:生成随机中心的点的数量代码中,指定簇的数量为3,初始中心的组数为3,生成随机中心点数量为123个,并训练
cluster_centers_、labels_和inertia_得到簇的中心、每个样本的簇序号和惯性
可以看出,左上方的凸面分成了1个簇,右下方的凸面分成了2个簇。
得到真实类别序号与簇的序号的交叉表。
可以看出,类别序号0代表的setosa完全对应1个簇,而类别序号1代表的versicolor和类别序号2代表的virginica基本也分成了2个簇。
THE END