164
9
为了达到我们的目的,
K
均值算法和
EM
聚类满足丰富性和尺度不变性,但是不满足
一致性。这一事实使得测试聚类变得不可能。我们能测试的唯一方法是讲述过程和示
例,好在这也能达到分析的目的。
在下节中我们将通过
K
均值和
EM
聚类来分析爵士乐。
案例:音乐归类
音乐有着悠久的录音和作曲历史。要对音乐进行有效归类需要全方位广泛地对音乐理
论进行研究。
我们对音乐的分类方式可以有无数种。我习惯按照艺术家姓名的方式对自己的音乐收
藏进行分类,但是有时一位艺术家会和其他人合作表演。除此之外,可以根据类型进
行分类。但是实际上音乐的类型非常丰富,例如爵士乐,那么怎么办呢?从
Montreux
爵士音乐节来看,爵士乐可以是任何你的即兴创作的乐曲。如何才能有效地建立一个
音乐库,使得我们能够对自己的收藏进行分类呢?
我们可以使用
K
均值和
EM
聚类的方法。这样能得到一个“软”的音乐聚类,可以用
其建立音乐分类法。
在本节中,我们首先确定从哪里获取数据以及能够抽取哪些属性,然后确定可以验证
的内容。我们还会讨论为何聚类听起来是一个很棒的理论但是实际上除了集群外并不
能给我们太多的东西。
安装说明
我们用于此示例的所有代码都可以在
GitHub
上找到(
https://github.com/thoughtfulml/
examples-in-python/tree/master/em-clustering
)。
Python
一直在不断变化,所以运行示例之前参考
README
文档是你的最佳选择。
收集数据
20
世纪至今有大量的音乐数据,包括有
MP3
CD
、黑胶唱片和手写乐谱。不用将
整个音乐世界分类,只需要确定我们可以使用的那一小部分。因为我不想卷入任何版
权诉讼纠纷中,我们就用一些公开的专辑信息。这些信息可以是艺术家、歌曲名、类
别(如果可用),以及其他任何我们能找到的特征。为了实现这个目的,我们可以访
Discogs.com
中的大量数据。他们提供许多
XML
格式的记录和歌曲数据。

Get Python 机器学习实践:测试驱动的开发方法 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.