位置: 编程技术 - 正文

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

  • 保险公司支付的赔款计入什么科目
  • 免征增值税的会计处理 进项
  • 实收资本怎么交所得税
  • 垫付运费的运费税怎么做分录
  • 个体户定额征收标准
  • 教育培训行业成本怎么结转
  • 收到政府土地收回的短信
  • 代扣代缴的增值税算进项税吗
  • 税收返还要交税吗
  • 未到期责任准备金计算方法
  • 用友反结账流程
  • 结转周转材料成本差异会计分录
  • 购置房产按揭应注意事项
  • 别人给的发票一直不开
  • 发票打印机分专票和普票的吗?
  • 发票已经开但是没有收到发票怎么做
  • 为什么收到的劳务费税点打星号?
  • 营改增后停车费税率
  • 筹建期间的开办费计入什么费用
  • 营养成分表的计算表
  • 支票付款的弊端
  • 进项税额能抵扣的几种情形
  • 库存商品的进项可以抵扣吗
  • 大额保险缴费
  • 发生坏账损失账务处理
  • 个税手续费返还要交增值税吗
  • 业务招待住宿费发票可以抵扣进项税吗
  • 运杂费计入什么科目
  • iphone操作系统
  • php类和对象写法
  • php基础教程
  • 今天春节是什么生肖
  • 支付给员工的工伤赔偿款账务
  • 银行同业利息 水利基金
  • html页面间传数据
  • 工商年报认缴出资时间填错了,有什么后果
  • 一般纳税人与小规模纳税人在报税方面的区别
  • 漏记收入 罚款
  • 现代服务包括哪些税目
  • Docker 搭建api
  • Google C++ Style中允许使用的Boost库(1) 程序即人生 博客频道 CSDN.NET
  • 劳务公司账务处理流程简易计税
  • 分公司和总公司的税务和财务关系
  • 核定征收的方式包括
  • 企业注销时实收资本没有到位要紧吗
  • 营业外收入 销项税
  • 终止经营列报的相关表述
  • 差额征税扣除额的具体规定
  • 医用增值税发票
  • 咨询公司需要交税吗
  • 公允价值变动损益借贷方向增减
  • 培训费怎么收取
  • 金融商品转让一半增值税
  • 法人向公司账户打款
  • 中标服务费如何赋码
  • 融资租入固定资产的租赁费属于什么费用
  • 成品油生产库存
  • 单位购买金税盘账务处理
  • 母公司及子公司增资
  • 业务招待费管理草案探讨
  • 注册资本和实收股本的区别
  • sqlserver比较日期时间
  • sql数据库修改数据语句
  • window怎么升级系统
  • xp关机会自动重新启动
  • vs 2008
  • centos添加子接口
  • 如何强制退出当前程序mac
  • sendmailadmin
  • windowsxp怎么删除所有文件
  • 微软推送Win11226x1.2050
  • windows常用操作
  • linux wordpress gzip压缩开启方法
  • win10qq经常卡
  • 动态添加echarts
  • angularjs2
  • &&在js中
  • python 批量操作
  • 开发票 税收编码
  • 供电企业向电厂收取的并网服务费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设