文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.4 上机实验
1.实验目的
·掌握K-Means算法原理。
·掌握使用Python的scikit-learn模块进行聚类分析。
2.实验内容
实验一
编程实现K-Means算法,要求输入参数至少有2个:样本数据X(支持多维数据)和聚类个数n_clusters。输出参数至少有2个:每个类的中centers和样本数据的分类标签labels.
实验二
使用聚类实现对手写数字识别。数据集采用scikit-learn模块的digits数据集,在6.5节我们曾使用SVM算法对其进行分类,而本实验要求使用聚类算法对数据进行分类。读者可以借助scikit-learn封装好的聚类函数,也可以使用实验一中自己实现的聚类算法。建议读者使用K-Means算法和系统聚类算法并进行算法性能的对比。
3.实验步骤提示
实验二
1)导入digits数据集:
from sklearn.datasets import load_digits digits = load_digits()
2)数据正则化,将数据的范围限制在[0,1]。这步不是必须的,但会提升聚类效果。
data = scale(digits.data)
3)进行聚类,得到聚类后的数据标签。
4)算法性能分析,可从运行时间和聚类效果去评价算法。Python的time模块中有函数time.time()可获取当前时间,将算法运行前和运行后的时间做差便可得到算法的运行时间。而评价聚类效果的方法有多种,例如对比预测标签和数据标签,得出聚类的正确率。scikit-learn的metrics[1] 模块有多种评价聚类效果的指标,读者可作参考。
[1] http://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论