返回介绍

8.4 上机实验

发布于 2024-01-21 22:13:25 字数 1010 浏览 0 评论 0 收藏 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文