机器学习笔记E7.0--聚类

2019-02-28  本文已影响0人  EL33

缺一节
机器学习笔记E6--支持向量机
留坑,免得乱了顺序


一、聚类

前面讲到,根据训练数据是否拥有标记信息,机器学习的学习任务可大致分为两大类: 监督学习(supervised learning)无监督学习(unsupervised learning) ,分类和回归是监督学习的代表,而聚类则是无监督学习的代表。

”物以类聚,人以群分”,在实际生活中,存在着大量的分类问题。之前讲到的逻辑回归、分类树等等分类算法都可以找到适当的分类边界。但值得注意的是,我们在使用这些分类算法时,用到的带标记的数据集比起不带标记的,往往意味着更大的收集成本。所以实际上,出于节约成本或者碍于没有条件为数据集增加标记,我们面对的不带标记的成本占有很大的比例。

聚类就是针对大量未标注的数据集,按数据集的内在相似性讲数据集划分为多个类别,使得 类别内的数据相似度最大类别间的数据相似度最小 。这两点也是聚类的 划分原则

聚类与分类的不同在于,聚类所要求划分的类是未知的。需要我们将一系列无标签的训练数据,输入到一个算法中,这个算法将寻找这个数据的内在结构。

二、常见的聚类算法

1、K-means

K-means算法 ,也被称为 k-平均k-均值 ,是一种得到最广泛使用的聚类算法,或者成为其他聚类算法的基础。

算法首先随机的选择k个对象,每个对象代表着一个簇的中心(平均值或质心)。对剩余的其他对象,根据其与选定的各个簇中心的距离,将之划分到最近的簇。然后对经过一次划分形成的簇重新计算其簇中心(平均值)。这个过程不断重复,直到准则函数收敛。而K-means所使用的准则函数常常是我们熟悉的 均方误差 MSE (也叫最小平方误差)。

我们来看对于只有两类时候K-means的处理过程。

经过多次迭代后,可以看到,很明显的对红色和蓝色进行了划分。

而在对于有多个类别时,不凑巧,我们选择的初始簇中心有两个比较靠近,那么可能就会出现如下的这种情况:这个时候准则函数依然收敛了,但是,是不是和我们心里预期的四个簇不太一样。这说明了 K-means可以保证收敛,但不保证达到全局最优。 同时,不同的初始簇中心的选取可能会让聚类的结果产生一定差异。即 K-means对初始值很敏感

K-means初值敏感

那这种问题怎么解决呢?

常见方法有两种:

K-means的优化目标

在了解了K-means的思想后,我们再来看K-means的具体实现。


(Unfinished)需要再推一边补全。


最后再来总结一下。

K-means聚类算法的优缺点

这些是最表面的优缺点总结。关于更加专业的优缺点分析和改进方法需要进一步学习和阅读来了解。

2、层级聚类

对于K-means对初值敏感的问题,虽然我们介绍了两种解决方法,但仍然有很大几率使得结果很糟糕。而 层次聚类 是一种不需要指定随机的中心点,就可以有效的对数据集进行聚类的算法。

层次聚类 (Hierarchical clustering, 也称系统聚类法 ) 是最经典和常用的聚类方法之一,能找到任意形状的类,而且不需指定别数 K 需要 度量样本点之间的 距离以及类 与距离以及类 与之间的联接 之间的联接 (linkage) 程度。

层次聚类聚合-分裂图解.

几种常见的相似度/距离计算方法

相似度/距离计算方法总结

类间联系程度度量

在合并两个相近的类别时,需要度量两个类别之间的距离。距离度量可选:

1. 最小距离法
2. 最大距离法
3. 类平均距离法
4. 离差平方和法

层次聚类的总结

3、DBSCAN

上一篇下一篇

猜你喜欢

热点阅读