Python金融数据挖掘与分析实战
上QQ阅读APP看书,第一时间看更新

4.2 聚类分析

聚类是进行数据挖掘和计算的基本操作,是指将海量数据中具有“相似”特征的数据点或样本划分为一个类别。聚类分析的基本思想是“物以类聚、人以群分”。因为海量的数据集中必然存在相似的数据样本,所以基于这个假设可以将数据区分出来,并发现不同类的特征。

聚类模型建立在无类别标记的数据上,是一种无监督的学习算法,它常作为数据探索或挖掘的基础工作,适用于没有先验经验的背景下的探索性分析和样本量较大情况下的数据预处理。

打个比方,如果我们要对坐在一个报告厅里的所有听众进行聚类,只需要确定两点:第一点是希望聚成几类;第二点是用什么标准来判断任意两位听众之间的距离。比如,如果你希望把听众们聚成两类,以年龄差为距离,那么,年龄大一些的听众会形成一类,而年龄小一些的听众就会形成另一类;如果你希望把听众聚成三类,以他们座位的距离差作为距离,那么,有可能会聚成前、中、后三类,也有可能会聚成左、中、右三类,还有可能会聚成左前、中、右后三类等。

聚类分析的方法可以分为基于层次、密度、网格、统计学、模型等类型的方法,典型算法包括K均值(经典的聚类算法)、DBSCAN、两步聚类、BIRCH、谱聚类等。

聚类算法众多,在选择时主要参考以下因素:

·如果数据量为中小规模(样本量小于1万),选择K均值算法;如果数据量为大规模(样本量大于1万),可以考虑使用小批量K均值算法;

·如果数据集是高维的,选择谱聚类算法;

·如果对分类的准确度要求很高,选择谱聚类算法,它比K均值算法准确度高;

·如果数据集中有离群点,使用基于密度的DBSCAN算法。

本节主要介绍经典的聚类算法——K均值算法。