Python实现 K-Means聚类(jupyter notebook)

发布时间:2026/10/19 12:35:32

Python实现 K-Means聚类(jupyter notebook) 目录聚类的概念聚类的要求应用领域K-Means算法步骤聚类结果性能度量优点缺点代码实现手写代码调用sklearn 进行k-means聚类的概念聚类是把各不相同的个体分割为有更多相似性子集合的工作。聚类生成的子集合称为簇聚类的要求生成的簇内部的任意两个对象之间具有较高的相似度属于不同簇的两个对象间具有较高的相异度聚类与分类的区别在于聚类不依赖于预先定义的类没有预定义的类和样 本 ——聚类是一种无监督的数据挖掘任务应用领域客户价值分析文本分类基因识别空间数据处理卫星图片分析数据分析、统计学、机器学习、空间数据库技术、生物学和市场学也推动了聚类分析研究的进展K-Means算法步骤随机选取K个样本作为类中心计算各样本与各类中心的距离将各样本归于最近的类中心点求各类的样本的均值作为新的类中心判定若类中心不再发生变动或达到迭代次数算法结束否则回到第2步。聚类结果性能度量内部指标(internal index)Compactness紧密性(CP):各样本到聚类中心的平均距离每一类样本到样本中心的聚离的均值然后求类距离均值的均值Separation间隔性(SP):各类中心间的平均距离cp越小越好sp越大越好(k值越大即分类越多cp值越小所以并不是cp越小越小要结合实际情况)优点算法简单易于理解对球形簇样本聚类效果好分k均值等变种算法运行良好不受初始化问题的影响。缺点不能处理非球形簇、不同尺寸和不同密度的簇对离群点、噪声敏感代码实现手写代码from sklearn.datasets import load_iris import numpy as np iris load_iris() data iris.data k 2 #设置聚类中心 n len(data) dist np.zeros([n,k1]) #1.选中心 center data[:k, :] center_new np.zeros([k, data.shape[1]]) while True: #2.求距离 for i in range(n): for j in range(k): dist[i, j] np.sqrt(sum((data[i, :] - center[j, :])**2)) dist[i,k] np.argmin(dist[i, :k]) #求最小值的位置,并归类 # 4.求新类中心 for i in range(k): index dist[:,k] i #找到不同类类索引 center_new[i, :] data[index, :].mean(axis0) #求同类的新样本中心 #5.判定结果 if np.all(center center_new): break center center_new print(dist) #查看聚类结果聚类结果如下第一列为样本到第一个聚类中心的距离第二列为样本到第二个聚类中心的距离第三列为聚类的结果即距离哪个聚类中心最近的划分为该类。调用sklearn 进行k-meansfrom sklearn.datasets import load_iris from sklearn.cluster import KMeans iris load_iris() model KMeans(n_clusters3).fit(iris.data) model.labels_ #查看聚类结果聚类结果如下
延伸阅读

更多相关文章

2026/10/20 10:46:26

「干货分享」DevExpress常用控件——RichEditControl使用指南

做WinForms的一般都知道,传统.NET界面有一个RichTextBox控件,这个是一个富文本控件,可以存储图片文字等内容,它有自己的文件格式RTF,在DevExpress控件组里面也有一个同等的控件,他的名字是RichEditControl&…

2026/10/19 10:41:08

shell编程---替换运算符

替换运算符1、{: }运算符规则:1、若未定义该变量或者该变量值为空,则将用运算符后面的值赋值给该变量2、变量值不为空,不更新变量值。#! /bin/bash PRINT"Remind some import things" echo $PRINTecho ${STRING1:hello}…

2026/10/20 11:48:27

锥束CT重建FDK算法:Matlab实现与工业应用避坑指南

简介:这份资源面向医学影像重建方向的学习者与研究人员,聚焦三维锥束CT(CBCT)的投影与反投影重建,核心是FDK算法的Matlab实现。FDK流程被拆解为投影数据加权、加权后滤波、滤波后反投影三步,最终输出各方向…

2026/10/20 11:48:27

MiniMax Token Plan新购续订9折权益码使用指南与避坑实操

看到这个标题点进来的朋友,多半是正在用 MiniMax 的 API,或者刚打算把应用接入进去,结果被 Token 计费和套餐续订这事绕得有点晕。MiniMax 开放平台的 Token Plan 本质上是一种预付费的 Token 套餐,适合调用量稳定、不想被按量付费…

2026/10/20 11:48:27

AI记忆为何总是出错?合成人生评测揭露系统性缺陷

“我明明已经跟它说过不吃香菜,结果三天后它又给我推荐了香菜牛肉。”这类对话我们见得太多了。AI助手记错用户不是偶然,而是记忆系统的系统性缺陷。为了搞懂AI到底怎么记、为什么记错,我们团队做了个内部测试项目“合成人生”(Si…

2026/10/20 11:48:27

自愈合防水材料销售平台:选型、交易与施工全流程指南

树千晶自愈合防水材料销售平台,乍一听像是普通的建材电商,但做久了建材这行的人都清楚,防水材料不是快消品,客户不敢闭眼买,卖家也没法简单标个价就完事。尤其是自愈合防水材料这类偏功能型的产品,买家需要…

2026/10/20 11:48:27

Python学数学源码报错排查:环境配置与NumPy/SymPy避坑指南

简介:配套《程序员数学》一书的完整源码程序包,面向需要借助编程理解线性代数与微积分的学习者,尤其适合初中级程序员与数据科学入门人群,用可运行的代码化解抽象概念。压缩包共一百零四个文件,总体积约十三点五五兆字…

2026/10/20 11:43:27

GET和POST到底有什么区别?从语义契约到工程实践一次讲清

面试官抛出“GET 和 POST 到底有什么区别”这类问题时,往往不是真想听你把 RFC 文档背一遍。这题表面问的是两个 HTTP 方法,实际上是在试探你对 HTTP 协议底层语义、浏览器行为约束、工程落地取舍这三层东西的理解深度。可惜大多数人答完第一层就停了&am…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑