聚类-降维
1.聚类
聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的)。组内相似性越大,组间差距越大,说明聚类效果越好。
kmeans
----(目前知识储备下接地气的理解):每一个分散的小区就是待分类的数据,快递公司就是质心,要达到的目的是,以快递公司为中心,以分散小区为目的地,距离的平方最小。这里面的快递公司个数就是kmeans里的k,当k增加到一个数值,距离平方的缩小速度会变缓,这里探索的便是快递公司的个数和快递公司的位置。
----如下是算法的解释,最终我们要找到随着cluster的增加,squares的累积变化趋势发生改变的点。
- 选择 K 个初始质心,初始质心随机选择即可,每一个质心为一个类
- 把每个观测指派到离它最近的质心,与质心形成新的类
- 重新计算每个类的质心,所谓质心就是一个类中的所有观测的平均向量(这里称为向量,是因为每一个观测都包含很多变量,所以我们把一个观测视为一个多维向量,维数由变量数决定)。
- 重复2. 和 3.
直到质心不在发生变化时或者到达最大迭代次数时
image.png
hclust-层次聚类(Hierarchical)
----(目前知识储备下接地气的理解):hclust中的h即层级等级,你看下面的图片,最底下的分支像不像基层干活的员工(可能经费有限,每个工种只有俩员工),再往上是领导,领导的领导...等级越高,距离越远。
----如下是算法的解释
1.每一个样本点视为一个簇;
2.计算各个簇之间的距离,最近的两个簇聚合成一个新簇;
3.重复以上过程直至最后只有一簇。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
----(目前知识储备下接地气的理解)类似于活跃气氛小游戏时候,五块以上就是十多个五毛抱在一起,一个核心周围聚着足够多的人便是一个簇,多个簇可以连在一起,但抱不上团的就落单了,便是算法中说的噪音。
----如下是算法的解释
基于高密度连通区域的、基于密度的聚类算法,能够将具有足够高密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇,即密度相连的点的最大集合。
1、DBSCAN算法从一个未被访问的任意的数据点开始。这个点的邻域是用距离epsilon来定义(即该点ε距离范围内的所有点都是邻域点)。
2、如果在该邻域内有足够数量的点(根据minPoints的值),则聚类过程开始,并且当前数据点成为新簇中的第一个点。否则,该点将被标记为噪声(稍后,这个噪声点可能成为聚类中的一部分)。在这两种情况下,该点都会被标记为“已访问”。
3、对于新簇中的第一个点,它的ε距离邻域内的点也会成为同簇的一部分。这个过程使ε邻域内的所有点都属于同一个簇,然后对才添加到簇中的所有新点重复上述过程。
4、重复步骤2和3两个过程直到确定了聚类中的所有点才停止,即访问和标记了聚类的ε邻域内的所有点。
5、一旦我们完成了当前的聚类,就检索和处理新的未访问的点,就能进一步发现新的簇或者是噪声。重复上述过程,直到所有点被标记为已访问才停止。由于所有点已经被访问完毕,每个点都被标记为属于一个簇或是噪声。
2.降维
目的
a. 通过降维算法来寻找 数据内部的本质结构特征,如特征选择或特征提取。
b. 在原始的高维空间中,包含有冗余信息、噪音信息。通过降维方法,减少冗余信息 所造成的误差,以提高模型的精度。本质
a.机器学习领域中,降维指采用某种映射方法将原高维空间中的数据点映射到低维度的空间中。
b.降维的本质是学习一个映射函数 f:x→y,其中 x 是原始数据点的表达,y 是数据点映射后的低维向量表达 ( 通常 y 的维度小于 x 的维度 )。f 可能是显式的或隐式的、线性的或非线性的映射函数 ( 例如本例提及的 PCA 或者 t-SNE )。
tSNE
t-SNE是从SNE演化来的,他们都采用了将空间中的距离转换为概率的方式来表示点与点之间的相似度,然后求高维空间和低维空间的概率分布的KL Divergence作为两个分布的距离,希望最小化这个距离函数。SNE中对于高维和低维空间都使用高斯分布来建模,但是会造成“拥挤问题”,也就是最后低维空间中的数据点会聚集在一起。所以t-SNE使用了t分布来定义低维空间中点的相似性。
PCA
主成分分析(PCA)的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
image.png
【参考内容】
https://zhuanlan.zhihu.com/p/37856153
http://xiaqunfeng.cc/2018/04/10/DBSCAN-cluster/
https://www.kofes.cn/2018/11/The-Best-Way-to-Visualize-a-Dataset-Easily.html
https://yizhong-wang.com/blog/2017/03/08/%E4%BD%BF%E7%94%A8t-SNE%E5%8F%AF%E8%A7%86%E5%8C%96%E6%95%B0%E6%8D%AE/
https://www.youtube.com/watch?v=FgakZw6K1QQ