位置: 编程技术 - 正文

python中实现k-means聚类算法详解(k mean python)

编辑:rootadmin

推荐整理分享python中实现k-means聚类算法详解(k mean python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python的kmeans,k means python,k mean python,k mean python,python k means,k-means python,python kmean,python语言写一个kmeans算法,内容如对您有帮助,希望把文章链接给更多的朋友!

算法优缺点:

优点:容易实现缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢使用数据类型:数值型数据

算法思想

k-means算法实际上就是通过计算不同样本间的距离来判断他们的相近关系的,相近的就会放到同一个类别中去。

1.首先我们需要选择一个k值,也就是我们希望把数据分成多少类,这里k值的选择对结果的影响很大,Ng的课说的选择方法有两种一种是elbow method,简单的说就是根据聚类的结果和k的函数关系判断k为多少的时候效果最好。另一种则是根据具体的需求确定,比如说进行衬衫尺寸的聚类你可能就会考虑分成三类(L,M,S)等

2.然后我们需要选择最初的聚类点(或者叫质心),这里的选择一般是随机选择的,代码中的是在数据范围内随机选择,另一种是随机选择数据中的点。这些点的选择会很大程度上影响到最终的结果,也就是说运气不好的话就到局部最小值去了。这里有两种处理方法,一种是多次取均值,另一种则是后面的改进算法(bisecting K-means)

3.终于我们开始进入正题了,接下来我们会把数据集中所有的点都计算下与这些质心的距离,把它们分到离它们质心最近的那一类中去。完成后我们则需要将每个簇算出平均值,用这个点作为新的质心。反复重复这两步,直到收敛我们就得到了最终的结果。

函数

loadDataSet(fileName)

从文件中读取数据集

python中实现k-means聚类算法详解(k mean python)

distEclud(vecA, vecB)

计算距离,这里用的是欧氏距离,当然其他合理的距离都是可以的

randCent(dataSet, k)

随机生成初始的质心,这里是虽具选取数据范围内的点

kMeans(dataSet, k, distMeas=distEclud, createCent=randCent)

kmeans算法,输入数据和k值。后面两个事可选的距离计算方式和初始质心的选择方式

show(dataSet, k, centroids, clusterAssment)

可视化结果

这里是聚类结果,还是很不错的啦

但是有时候也会收敛到局部最小值,就像下面这样,就是不幸收敛到局部最优了

总结

标签: k mean python

本文链接地址:https://www.jiuchutong.com/biancheng/372220.html 转载请保留说明!

上一篇:Python编程之基于概率论的分类方法:朴素贝叶斯(基于python的设计)

下一篇:python图像常规操作(用python进行图像处理)

  • 小规模纳税人企业所得税计算
  • 北京增值税认证平台电话
  • 进项税转出的金额含税吗
  • 个税退回怎么申请
  • 企业跨区变更地址需要多久
  • 独资企业怎么交所得税
  • 总承包单位可以分包吗
  • 工资可以先计提不发吗
  • 债券到期收益率计算器
  • 如何判断开专票还是普票
  • 带息承兑汇票的利息收入要缴纳增值税吗
  • 固定资产评估减值后如何入账
  • 收到预付款项发票如何入账?
  • 企业自用房要交契税吗
  • 所得税汇算清缴表在哪里打印
  • 支票挂失需要本人去吗
  • 小规模纳税人发票增额需要什么手续
  • 公司没有残疾人需要缴纳残保金吗
  • 以前年度损益调整在利润表中怎么填
  • 企业注销后有收入怎么交税
  • 兼职劳务报酬要交个税吗
  • 货物出库的会计分录
  • 香港公司可以给个人打款吗
  • win10双屏怎么切换屏幕
  • 积分兑换现金的平台
  • 什么叫盘活存量股票
  • 企业利润分配的原则
  • 其他应付款科目核算的内容包括
  • 预付业务招待费会计分录
  • 股东不用上班吗
  • Win11截图工具怎么设置快捷键
  • 苹果11怎么充不上电了
  • 办公家具折旧年限及计算方法
  • 公司总部固定资产折旧
  • 补充医疗税前扣除还是税后扣除
  • php查询数据库语句
  • 进货发票怎么抵税
  • PHP:imagedashedline()的用法_GD库图像处理函数
  • 微信小程序分包加载
  • 简述税款征收的基本原则
  • thinkphp案例
  • 工程物资已到发票怎么开
  • php的mysql_query
  • 前端手撕代码
  • Emiller's Advanced Topics In Nginx Module Development
  • 营业外收支的账户是什么
  • 注销公司怎么搞
  • 公司的投资利税是什么
  • 资产处置损益的定义
  • 资产负债表应付职工薪酬是负数是什么原因
  • 债券承销费是指什么费用
  • 个人所得税如何缴纳
  • 多计提的个人所得税退给员工怎么处理
  • 营业外支出属于费用类科目吗
  • 产品成本计算中最基本的方法是
  • 税务局三代手续费是什么
  • 住宿费电子发票
  • 新冠肺炎疫情相关租金减让适用简化处理方法的时间范围
  • 微软终止代码大全
  • 韩国电脑用什么系统
  • ubuntu安装哪个版本
  • centos 7.0截屏快捷键有冲突该怎么更换?
  • 64位windows8系统安装驱动时出现签名错误的解决方法
  • u深度如何装win7系统
  • 方便存储 Win8系统的SkyDrive功能大体验
  • app塔防游戏
  • Ubuntu 16.04 64位中搭建Node.js开发环境教程
  • android jdk下载
  • opengl快速入门
  • js计数排序
  • linux shell脚本教程
  • Android studio 无法勾选sdk
  • android基础知识入门
  • android support包
  • 浙江国税局电话客服热线
  • 防伪税控维护费普通发票怎么申报
  • 广东省电子税务局网上办税大厅
  • 国家税务局查询发票
  • 办理养殖照税务登记证
  • 江西各市财政收入和支出
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设