开发者学堂课程【高校精品课北京理工大学数据仓库与数据挖掘(下):an introduction】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1041/detail/15192
an introduction
内容介绍:
一、前言
二、聚类的基本知识
三、蔟的类型
四、聚类分析的应用
五、PASE 设计与实现
六、PASE 使用实践
一、前言
在聚类这一章中,介绍聚类的基本概念,基于划分的聚类方法,基于层次,聚类方法,基于密度和基于网格的聚类方法,最后介绍对聚类的评估。
二、聚类的基本知识
1. 什么是聚类
聚类和分类类似都是将数据划分成若干个组,在聚类中,把得到的这些组称之为蔟。在聚类中的蔟指的是一组数据对象的集合。这些数据对象,它们在蔟内部是非常相似的。但是不同蔟之间的数据对象是相异的。
2.蔟的特征
对于一个好的聚类算法,它可以产生高质量的蔟。高质量的蔟主要具备两个特征。
(1)、第一个特征就是高度的蔟类相似性,也就是 High intra-class similarity。
(2)、此外,蔟和蔟之间是具有比较低的相似性,也就是具有比较 low 的 intra-class similarity。
3.蔟间的相似性和蔟类的相似性
那什么是蔟间的相似性?什么是蔟类的相似性呢?来看一下上面的这样一张图。那么在这个图中每一个圆圈代表了一个蔟。蔟里面的数据对象用点表示。
(1)、所谓的蔟类的相似度,就是在同一个初中数据对象和数据对象之间的相似度,如果用距离来代表相似度的话,也就是在同一个蔟类数据对象和数据对象和数据对象是比较小的。
(2)、蔟间的相似组指的是位于不同蔟的两个数据对象之间的相似度。对于之类结果来说,位于不同蔟的数据对象,它们的相似度是比较低的,那么也就是说,位于不同蔟的数据对象,它们之间的距离是比较大的。
4. 聚类分析的定义
聚类分析又被称之为聚类或者是数据分割。它指的是给定一组数据集合,根据数据的特性,将这一组数据集划分成为若干个组。些组内的数据对象是相似的。
在聚类分析中,主要是依赖数据对象和数据对象之间的相似性进行划分,所以说在剧烈分析中,相似性的度量是非常重要的。在实际应用中,存在多种相似性度量的方法。
5.聚类和分类的区别
(1)、首先,聚类是属于无监督学习的,在聚类中,虽然说也有类用蔟来代表,但是这个类是预先没有定义的,其实含义是模糊不明确的,而对于分类来说,它的类别是预先定义,好的含义是清晰的。
(2)、其次聚类和分类的任务是不一样的,聚类主要是将数据划分为不同的蔟,那属于数据挖掘中的描述性任务。而分类需要一代有标签的训练数据,构建分类模型,然后利用分类模型,将对没有标记的数据对象进行预测,它是属于数据挖掘任务中的预测性任务。
三、蔟的类型
来看一下,在蔟类中蔟的类型。蔟的类型主要包含明显分离的蔟,基于原型的蔟、基于邻近性的蔟,基于密度的蔟和基于目标函数定义的蔟。
1.明显分离的蔟
首先来看一下明显分离的蔟。所谓的明显分离的蔟,就指的是一个蔟中任意两个数据对象之间的距离,要比一做数据对象到另外一个数据对象的距离要小,那么在下图展示的就是一个明显分离的三个蔟。对于这三个明显分离的蔟,很明显蔟类两个数据对象之间的距离是要小于位于不同蔟间两个数据对象之间的距离。
2.基于原型的蔟
再来看一下基于原型的蔟。至于原型的蔟中,首先要弄明白什么叫原型。蔟的原型就是蔟的代表,可以用很多种方式来代表蔟,比如可以用蔟的中心点来代表这个蔟,可以使用这个蔟中所有数据对象的平均值来代表这个蔟,甚至还可以在这个蔟中选择一个最具有代表性的数据对象来代表这个蔟。
在确定了什么是蔟的原型之后,基于原型的蔟就指的是在同一个蔟中数据对象到这个蔟的圆形的距离要小于这个对象到其余蔟的圆形的距离。
3.基于近邻的蔟
再来看一下基于近邻的蔟。基于近邻的蔟就指的是。对于同一个蔟中的数据对象,它到这个蔟中,一个或多个数据对象的距离要小于它到不同,这个蔟中数据对象的距离。下图就展示的是这些都是基于近邻的蔟。
4.基于密度的簇
再来看一下基于密度的簇。基于密度的簇中蔟的定义是定义为数据分布比较稠密的区间。这些稠密的区间是由密度比较稀疏的区间分割得到的。基于密度的蔟,因为它的定义是利用密度来定义,所以它非常适合去表达一些不规则型的蔟一些相互缠绕的蔟,甚至是数据集中存在噪音和异常点的蔟。
5.基于目标函数的蔟
基于目标函数定义的蔟,首先要给出目标函数。在设定目标函数之后,通过对目标函数最大化或最小化来得到蔟。对于目标函数的优化,有两种,一种是局部最优,一种是全局最优。比如说在后面会介绍的这样的一个层次聚类算法,那么它往往是能够得到局部最优的。而基于划分的聚类方法,它是可以得到全局最优的。
四、聚类分析的应用
1.数据挖掘
聚类分析的应用主要是作为其它数据挖掘任务的中间步骤来使用。比如可以通过聚类得到不同的蔟将聚类结果作为分类的输入,然后建立分类模型。
2.异常检测
聚类分析有一个重要的领域就是异常检测。因为蔟是具有相似对象的集合,那如果在数据集中有一些数据对象,它离所有的蔟都比较远,也就意味着这些数据对象,它和大部分数据对象的行为都比较不一致,那么这个就是异常,所以说在异常检测中,是可以利用聚类算法去发现一些异常点。
此外,在数据压缩和协同过滤推荐中,都可以使用聚类分析。
五、聚类分析划分
1.聚类分析的种类根据划分准则的不同可以把聚类分析划分为,基于划分的聚类方法和基于层次的聚类算法。
(1)、基于划分的聚类算法是,数据对象划分成为若干个互不相交的蔟,然后每个数据对象只能属于其中的一个蔟。
(2)、而基于层次的聚类算法,它得到的结果是一棵系统树图,比如下图中这个系数数图,它记录了数据对象划分或凝聚的过程,记录了所有层次上的聚类,那么它的第一层可能是每一个数据对象,最后一层可能是所有数据对象的集合,那么通过在每一层上进行截断,可以得到不同层次上的蔟。
2. 根据蔟的生理性聚类分析,又可以包括互斥性的聚类分析和非互斥性的聚类分析。
(1)、所谓互斥性的聚类分析,指的是在得到的若干和蔟中一个数据对象,只能属于其中的一个,蔟和蔟之间是明显分离的。
(2)非互斥性的聚类分析得到的结果。两个蔟之间可能是有一部分是重叠的,也就是对于某一个数据对象,它可能属于其中的一个或多个蔟。
3.根据聚类分析中的相似性度量方法,聚类分析可以分为基于密度的聚类,基于距离的聚类的。
而根据聚类的空间,聚类分析又可以分为全空间聚类和子空间聚类。全空间聚类就是在数据特征空间中去进行聚类,而子空间聚类是在数据的特定的子空间中去发现蔟。
六、聚类算法的要求和挑战
1.首先,在聚类质量方面,聚类算法应该是能够蔟理各种类型的属性类型,因为属性类型,它可能是数值的,也可能是种类的,那算法要能够适应这样的一些属性的类型。
2.其次,对于聚类算法,它要求能够使发现任意形状的蔟在下面图上,展示了各种不同形状的蔟,那么,有的是这种凸形的。那么还有的是这种非凸形的。甚至的还有一些是相互纠缠的,那么好的聚类算法应该是能够发现任意形状的蔟。
3.此外,好的绝对算法还应该能够去处理数据集中的噪音和一些异常。
4.在可扩展性方面,要求聚类算法,它能够处理大量的高维数据。
5.在可解释性方面,因为聚类最后得到的蔟的含义是不明确模糊的,如果得到的结果能够对类进行解释,那么就可以提升聚类结果的深度利用。
此外,可能还会有一些知识来限制出的划分,那么这些都是对聚类算法的要求和挑战。
关于聚类的基本知识就介绍到这里。