位置: 编程技术 - 正文

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进行图像处理)

  • 财政的税收
  • 普通发票为什么只能领一张
  • 机票行程单上没有日期怎么回事
  • 企业购买电话充值卡的分录
  • 补交以前年度房产税和滞纳金需要更改以前年度报表吗
  • 企业名称变更需要重新核名吗
  • 房产税和土地使用税会计分录
  • 补交税款时加收的滞纳金有上限吗
  • 以旧换新帐务处理
  • 施工企业必须要注册造价工程师吗
  • 盘亏材料10000元,可以回收的保险赔偿
  • 增值税专票过了3年能抵扣吗
  • 车辆保险代交车船使用税会计分录怎么写?
  • 应交税金在贷方怎么调
  • 交易性金融资产属于什么科目
  • 年金计算个税需要扣除吗
  • 税金及附加里面有印花税吗
  • 金税盘在电脑上怎么打开
  • 建筑行业劳务费开发票可以开工程款吗?
  • 外管证的开具与注销流程
  • 递延所得税资产怎么计算
  • 个体工商户可以给自己交五险一金吗
  • 能够影响现金流的因素有
  • 企业的其他业务是什么
  • 跨区经营的税务政策
  • 公司购买的原材料,原价格销售合理吗
  • 存货监盘计划要求,在对存货盘点结果进行测试时
  • 职工廉租房怎么办理
  • 景点门票定价依据
  • 在建工程明细科目分不开怎么办
  • linux sar文件
  • 股票期权行权的基本每股收益怎么算
  • 职工医保报销会扣医保卡的钱吗
  • 你正在树干上睡觉
  • 职工薪酬纳税调整明细表案例
  • 已缴款未入库是扣款成功了吗
  • 增值税纳税申报表在哪里查询
  • 微服务框架图
  • python 如何
  • 损益类所得税费用
  • python中模块的概念
  • mysql默认存储引擎的命令
  • 查验发票显示红冲是什么意思
  • 什么是企业会计确认计量和报告的空间范围
  • 运输费抵扣进项税怎么算
  • linux mysql 安装与操作
  • 保理公司会计核算讲解
  • 企业与企业之间借款都需要交什么税
  • 应交增值税负数表示什么
  • 利息收入的会计分录
  • 小规模纳税人开的专票对方可以抵扣吗
  • 月底资产负债表怎么填
  • 发票抬头是个人的可以报销吗
  • 合并报表存货抵消
  • 门面转让费做账怎么做
  • 预付账款的相关认定
  • 建筑公司需要什么人员
  • 要约收购期满
  • sqlserver字符串切割
  • fedora os
  • win8 win8.1
  • win7系统摄像头图标不见了
  • win10应用默认
  • 升级win10免费吗
  • 命令行查看硬盘序列号
  • win8功能大全介绍
  • unity小技巧
  • javascript 语言精粹(修订版)
  • js对象属性值
  • jquery validator
  • html标签自动换行
  • Node.js中的全局变量有哪些
  • Node.js发送HTTP客户端请求并显示响应结果的方法示例
  • Unity3D之Profile
  • class在js中的实际运用
  • 陕西省税务局机关服务中心
  • 税务稽查预警指标
  • 发票机怎么测试打印
  • 铜进口量2019
  • 煤炭限产是利好还是利空
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设