- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
山东大学计算机学院机器学习实验一K-means
山东大学计算机学院实验报告
实验题目:K-means算法编写 学号: 日期:2016.9.28 班级: 2014级4班 姓名: Email: 实验目的:
熟悉matlab环境及相关函数的熟练使用。
根据已给的2d-data和3d-data,输入数据后用自己编写的k-means算法画出各个类别。 硬件环境:?
windows10操作系统 软件环境:
matlab环境 实验步骤:
一、背景知识及原理
聚类分析是指事先不了解一批样品中的每个样品的类别或者其他的先验知识,而唯一的分类依据是样品的特征,利用某种相似性度量的方法,把特征相同的或相近的分为一类,实现聚类分析。
K均值算法能够使聚类集中所有样本到聚类中心的距离和最小。原理为:先选K个初始距离中心,计算每个样本到这K个中心的距离,找出最小距离把样本归入最近的聚类中心,然后对中心进行修改,得到新的K个中心,再计算样本到K个中心的距离,重新归类,重新计算中心,修改中心。直到新的聚类中心等于聚类中心则结束。
二、实验步骤
1.首先我是直接load的2d-data,没有单独分出一个.m文件来。但是后来在修改的时候单独了一个.m问卷写main函数,来获取用户的输入来判断导入2d还是3d数据,然后调用k-means函数,这个函数没有返回值。
2.第一次的中心点是随机选取的,然后求每个点到中心点的距离,点到哪个中心点距离小就把该点归为中心点的类。想当于给数据增加了一列,最后一列是数据类。然后求某个类中数据的平均值,求得中心点。如果这次求得的中心点和上次的是相同的,即两个矩阵的差是0时,大循环里面参数为假,就跳出,则聚类完毕。
3.最后写了画图的方法,就是比较普遍的画图方法,简单有效,加上了图像的名字,x,y轴名字等。将14种颜色放在两个数组中,一个数组中是空心圆,一个是实心点,这样清晰明了的可以看出聚成的几个类别。
三、实验结果
2d-data:
3d-data:
结论分析与体会:
刚开始拿到实验题目是非常茫然,不知道从哪里下手,以前用matlab做机器学习的时候,一般都是直接使用内部自带的函数的,这次要自己编写函数,所以开始进展很慢。
第一次写完,用了很多的for循环和if语句,非常的繁琐,感觉不太科学,于是将自己的一些想法去网上搜了一下,发现matlab自带很多方便的函数,比如find,abs等,把其中很多繁琐的地方改的简单多了。
最后运行的时候,图像出来了,但是有几次迭代出来的结果不准确,后来又修复了一下,迭代效果好多了,基本上都是正确的,但是偶尔还是由于初始中心点的问题导致错误。后来也调整了一下自己的图像,让其看起来雅观了许多。
文档评论(0)