python代码实现kmeans对鸢尾花聚类

news/2024/10/11 13:28:45/

导入第三方库和模型

python">from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

2、创建画图函数

python">def draw_result(train_x, labels, cents, title):n_clusters = np.unique(labels).shape[0]#获取类别个数color = ["red", "orange", "yellow"]plt.figure()#创建一个新的图形窗口并开始绘图plt.title(title)for i in range(n_clusters):#range(3)=range(0,3):0,1,2current_data = train_x[labels == i]#把标签一致得所有样本点全拿出来plt.scatter(current_data[:, 0], current_data[:,1], c=color[i])#只显示鸢尾花第一个指标和第二个指标的值plt.scatter(cents[i, 0], cents[i, 1], c="blue", marker="*", s=100)#显示中心的的样本return plt
""" 画出聚类后的图像
labels: 聚类后的label, 从0开始的数字
cents: 质心坐标
n_cluster: 聚类后簇的数量
color: 每一簇的颜色
"""

3、主函数调用kmeans

python">if __name__ == '__main__':iris = datasets.load_iris()#加载鸢尾花数据集iris_x = iris.data#数据部分,不带标签clf = KMeans(n_clusters=3, max_iter=10,n_init=10, init="k-means++",algorithm="full", tol=1e-4,n_jobs= -1,random_state=1)#创建聚类模型clf.fit(iris_x)#把样本150数据全部应用于聚类函数print("SSE = {0}".format(clf.inertia_))#inertia_ 属性表示聚类效果的评估指标,也称为簇内离差平方和(within-cluster sum of squares, WCSS)。它表示每个样本点到其所属簇的质心的距离的总和,该值越小表示样本点越接近于自己的簇中心,聚类效果越好。draw_result(iris_x, clf.labels_, clf.cluster_centers_, "kmeans").show()#plt.show() 显示图形'''iris_x:样本数据clf.labels_聚类聚出来的标签clf.cluster_centers_聚类出来的中心点"kmeans" 画图的标题''' 

在这里插入图片描述

4、算法优缺点

优点

简洁明了,计算复杂度低。 K-means 的原理非常容易理解,整个计算过程与数学推理也不是很困 难。
收敛速度较快。通常经过几个轮次的迭代之后就可以获得还不错的效果。

缺点

结果不稳定。 由于初始值随机设定,以及数据的分布情况,每次学习的结果往往会有一些差异。 无法解决样本不均衡的问题。
对于类别数据量差距较大的情况无法进行判断。 容易收敛到局部最优解。 在局部最优解的时候,迭代无法引起中心点的变化,迭代将结束。
受噪声影响较大。 如果存在一些噪声数据,会影响均值的计算,进而引起聚类的效果偏差。


http://www.ppmy.cn/news/1443484.html

相关文章

通过Linux命令查看GPU使用情况以及各种参数解释

查看Linux服务器GPU使用情况,以及各种参数解释 查看GPU使用情况参数解释 查看GPU使用情况 静态查看命令 只能看当前这一时刻gpu的各项数据 nvidia-smi动态查看命令 顾名思义,可以实时监测gpu的各项数据。 watch -n 1 nvidia-smi参数解释 解释相关参…

Apollo共创生态:共筑未来智能出行新篇章

目录 引言Apollo七周年大会回顾心路历程企业生态计划 个人心得与启发技术革新的引领者展望 结语 引言 在科技飞速发展的今天,智能出行已经成为全球关注的焦点。Apollo开放平台,作为智能出行领域的先行者,已经走过了七个春秋。七年磨一剑&…

STM32_舵机的实战

一、配置相应的管脚 二、写代码

ai智能机器人语音后端识别处理呼叫系统部署

人工智能是推动科技跨越发展、产业优化升级、生产力整体跃升的重要战略资源。随着一系列支持人工智能发展政策的相继落地,相关产业的创新活力也被日益激发,推动现有商业体系内各个产业加速变革。在人工智能领域,电话机器人落地的速度也在加快…

C语言真题20套

第一套 一.选择题 1.下列正确的标识符是(C ). A、ab B、6a C、_do D、%y 2.执行以下程序段后,输出结果和a的值是(B)。 int a10; printf(“%d”,a); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 3.以下不正确的if语句形式是&#xf…

golang变量常见问题总结

文章目录 1. 值类型和引用类型都有哪些2. 值类型和引用类型的区别3. 变量是否等于nil4. 能否进行等值比较5. 能否不分配内存直接添加元素 1. 值类型和引用类型都有哪些 值类型:int,string,bool,float,数组&#xff0c…

Zynq 7000 系列中的BootROM流程及BootROM Header简介

BootROM Code是在系统复位后执行的一段代码,用于配置PS(处理器系统)。本文将详细解释BootROM的启动过程及BootROM Header的格式。 1 BootROM流程 Zynq 7000在系统复位后进行配置。整个启动过程在图6-1中进行了说明,而BootROM的执…

XBoot:基于Spring Boot 2.x的一站式前后端分离快速开发平台

XBoot:基于Spring Boot 2.x的一站式前后端分离快速开发平台 摘要 随着信息技术的迅速发展,快速构建高质量、高可靠性的企业级应用成为了迫切需求。XBoot,作为一个基于Spring Boot 2.x的一站式前后端分离快速开发平台,通过整合微信…