主要的无监督学习方法
主要算法
K-means、密度聚类、层次聚类
主要应用
市场细分、文档聚类、图像分割、图像压缩、聚类分析、特征学习或者词典学习、确定犯罪易发地区、保险欺诈检测、公共交通数据分析、IT资产集群、客户细分、识别癌症数据、搜索引擎应用、医疗应用、药物活性预测……
案例
1.医疗
医生可以使用聚类算法来发现疾病。以甲状腺疾病为例。当我们对包含甲状腺疾病和非甲状腺疾病的数据集应用无监督学习时,可以使用聚类算法来识别甲状腺疾病数据集。
2.市场细分
为了吸引更多的客户,每家公司都在开发易于使用的功能和技术。为了了解客户,公司可以使用聚类。聚类将帮助公司了解用户群,然后对每个客户进行归类。这样,公司就可以了解客户,发现客户之间的相似之处,并对他们进行分组。
3.金融业
银行可以观察到可能的金融欺诈行为,就此向客户发出警告。在聚类算法的帮助下,保险公司可以发现某些客户的欺诈行为,并调查类似客户的保单是否有欺诈行为。
4.搜索引擎
百度是人们使用的搜索引擎之一。举个例子,当我们搜索一些信息,如在某地的超市,百度将为我们提供不同的超市的选择。这是聚类的结果,提供给你的结果就是聚类的相似结果。
5.社交网络
比如在社交网络的分析上。已知你朋友的信息,比如经常发email的联系人,或是你的微博好友、微信的朋友圈,我们可运用聚类方法自动地给朋友进行分组,做到让每组里的人们彼此都熟识。
图中的数据可以分成三个分开的点集(称为簇),一个能够分出这些点集的算法,就被称为聚类算法。
K-means算法是一种无监督学习方法,是最普及的聚类算法,算法使用一个没有标签的数据集,然后将数据聚类成不同的组。
K-means算法具有一个迭代过程,在这个过程中,数据集被分组成若干个预定义的不重叠的聚类或子组,使簇的内部点尽可能相似,同时试图保持簇在不同的空间,它将数据点分配给簇,以便簇的质心和数据点之间的平方距离之和最小,在这个位置,簇的质心是簇中数据点的算术平均值。
取1或2时的闵氏距离是最为常用的
= 2即为欧氏距离
= 1时则为曼哈顿距离
当取无穷时的极限情况下,可以得到切比雪夫距离
与划分和层次聚类方法不同,DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合‘’能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。
密度:空间中任意一点的密度是以该点为圆心,以扫描半径构成的圆区域内包含的点数目
DBSCAN使用两个超参数:
扫描半径 (eps)和最小包含点数(minPts)来获得簇的数量,而不是猜测簇的数目。
➢ 扫描半径 (eps) :
用于定位点/检查任何点附近密度的距离度量,即扫描半径。
➢ 最小包含点数(minPts) :
聚集在一起的最小点数(阈值),该区域被认为是稠密的
DBSCAN算法将数据点分为三类:
1.核心点:在半径Eps内含有超过MinPts数目的点。
2.边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点。
3.噪音点:既不是核心点也不是边界点的点
1.将所有点标记为核心点、边界点或噪声点;
2. 如果选择的点是核心点,则找出所有从该点出发的密度可达对象形成簇;
3. 如果该点是非核心点,将其指派到一个与之关联的核心点的簇中;
4. 重复以上步骤,直到所点都被处理过
对每个点计算其邻域Eps=3内的点的集合。
集合内点的个数超过MinPts=3的点为核心点。
查看剩余点是否在核点的邻域内,若在,则为边界点,否则为噪声点。
将距离不超过Eps=3的点相互连接,构成一个簇,核心点邻域内的点也会被加入到这个簇中。
层次聚类假设簇之间存在层次结构,将样本聚到层次化的簇中。
层次聚类又有聚合聚类(自下而上)、分裂聚类(自上而下)两种方法。
因为每个样本只属于一个簇,所以层次聚类属于硬聚类。
开始将每个样本各自分到一个簇;
之后将相距最近的两簇合并,建立一个新的簇;
重复此操作直到满足停止条件;
得到层次化的类别。
开始将所有样本分到一个簇;
之后将已有类中相距最远的样本分到两个新的簇;
重复此操作直到满足停止条件;
得到层次化的类别。
(1) 均一性:
类似于精确率,一个簇中只包含一个类别的样本,则满足均一性。其实也可以认为就是正确率(每个聚簇中正确分类的样本数占该聚簇总样本数的比例和)
(2) 完整性:
类似于召回率,同类别样本被归类到相同簇中,则满足完整性;(每个聚簇中正确分类的样本数占该类型的总样本数比例的和)
(3) V-measure:
均一性和完整性的加权平均( 默认为1)
(4) 轮廓系数
样本的轮廓系数:
簇内不相似度:计算样本到同簇其它样本的平均距离为(),应尽可能小。
簇间不相似度:计算样本到其它簇的所有样本的平均距离,应尽可能大。
轮廓系数()值越接近1表示样本聚类越合理,越接近-1,表示样本应该分类到另外的簇中,近似为0,表示样本应该在边界上;所有样本的()的均值被成为聚类结果的轮廓系数。
(5).调整兰德系数(ARI, Adjusted Rnd Index
数据集共有个元素, 两个聚类结果分别是:
= {1, 2, . . . , }, = {1, 2, . . . , }
和的元素个数为:
= {1, 2, . . . , }, = {1, 2, . . . , }
ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度