聚类算法
我们童年的学习是从认知开始的,通过看卡片和实物认识了各类事物,并且对具有类似特征的事物进行归纳和总结。这个过程在机器学习中被称为“聚类”,是把彼此类似的对象组成一类的分析过程。聚类学习是一种无监督式学习,在这个过程中,从获得具体的样本向量到得出聚类结果,人们是不用进行干预的,这就是“无监督”一词的由来。
在机器学习中,无监督式学习一直是我们追求的方向,而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。目前,如谷歌新闻等很多应用都将聚类算法作为主要的实现手段,它们能利用大量的未标注数据构建强大的主题聚类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。
从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入法、动态聚类法、有序样品聚类、有重叠聚类和模糊聚类等。采用k-均值、k-中心点等算法的聚类分析工具已被加入许多著名的统计分析软件包中,如SPSS、SAS等。
从机器学习的角度讲,簇相当于隐藏模式。聚类是搜索簇的无监督式学习过程。与分类不同,无监督式学习不依赖预先定义的类或带类标记的训练实例,需要由聚类学习算法自动确定标记,而分类学习的实例或数据对象有类别标记。聚类是观察式学习,而不是示例式学习。
聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。聚类分析所使用的方法不同,常常会得到不同的结论。不同研究者对于同一组数据进行聚类分析,所得到的聚类数未必一致。
从实际应用的角度看,聚类分析是数据挖掘的主要任务之一。而且聚类能够作为一个独立的工具获得数据的分布状况,观察每一簇数据的特征,集中对特定的聚簇集合做进一步的分析。聚类分析还可以作为其他算法(如分类和定性归纳算法)的预处理步骤。
本节从简单高效的K均值聚类开始,依次介绍均值漂移聚类、基于密度的聚类、利用高斯混合和最大期望方法聚类、层次聚类和适用于结构化数据的图团体检测。我们不仅会分析基本的实现概念,同时还会给出每种算法的优缺点以明确实际的应用场景。
6.7.1 K均值聚类
聚类是一种包括数据点分组的机器学习技术。给定一组数据点,我们可以用聚类算法将每个数据点分到特定的组中。理论上,属于同一组的数据点应该有相似的属性或特征,而属于不同组的数据点应该有不同的属性和/或特征。聚类是一种无监督式学习的方法,是一种在许多领域常用的统计数据分析技术。K均值(K-Means)可能是最知名的聚类算法,K-Means是将n个数据样本划分成k个聚类的算法,使得同一聚类中的样本相似度较高,不同聚类样本的相似度较低。K-Means是很多入门级数据科学和机器学习课程的内容,在代码中很容易理解和实
第6章 机器学习算法
185