美文网首页程序员
关于聚类与曲线相似度评价指标

关于聚类与曲线相似度评价指标

作者: 钢筋铁骨 | 来源:发表于2018-07-24 02:44 被阅读0次

    聚类通常是一种非监督学习方法,对大量的未标注数据集按照数据内在的相似性划分为若干个类别。比如对客户进行价值分析,根据不同客户群体制定不同的营销策略,需要准确的将客户分成"重点客户"、"潜在客户"、"一般客户",就会用到聚类的算法。下面介绍3种常用聚类算法和1种判断曲线相似度的算法。此外还有层次聚类,密度最大值聚类等。

    PS:算法只是整个数据挖掘过程中的很小一部分,而根据先验知识去选择指标,建立模型,数据预处理才是平时工作中耗时的部分

    K-means++

    简单介绍

    K-means++是对K-means算法的升级,在初值选择时更佳合理。由于K-means聚类对初始质心的选择非常敏感,因此选择恰当的质心对算法的优劣很关键。K-means++算法在选择初始质心时,选择彼此距离尽可能远的K个点

    算法过程

    1、选择初值与簇的个数:

    通常情况下,簇的个数是根据先验知识来选择的。

    初始质心选择彼此距离尽可能远的K个点:首先随机选择一个点作为第一个初始类簇中心点(也可以根据图像自己指定),记作A;然后选择距离A点最远的那个点作为第二个初始类簇中心点,记作B;然后再选择距离A,B的最近距离最大的点作为第三个初始类簇的中心点,记为C,以此类推,直至选出K个初始类簇中心点。

    解释一下C点的选择,"距离A,B的最近距离最大的点":假设已经有了A,B两个点,用d(3,A)表示3号点到A点的距离,假设:

    d(3,A)=5,d(3,B)=6,那么3号点距离A,B的最近距离是5;

    d(4,A)=10,d(4,B)=20,那么4号点距离A,B的最近距离是10;

    d(5,A)=2,d(5,B)=3,那么4号点距离A,B的最近距离是2;

    在5,10,2中选择最大的距离是10,那么C点就是4号节点,C点是离A,B都很远的那个点。

    2、k-means算法过程

    a.选取k个簇的质心c1,c2...ck

    b.对于每个样本xi,分别计算d(xi, ci),将其标记为距离簇最近的类别

    c.如果当前结果与上次分类结果相同,那么跳出循环。终止条件也可以换位其他条件,比如迭代次数,MSE,簇中心变化率

    d.将每个簇中心更新为新分类后所有样本的均值

    e.循环b,c,d过程。

    适用范围

    适用于类似圆形的聚类。

    适用:

    不适用:


    DBSCAN

    简单介绍

    dbscan是基于密度的聚类,密度聚类算法通常可以把紧密相连,不断接触延伸的数据汇聚到一起。可以不指定K值。

    算法过程

    1、先给出若干定义

    对象的ε邻域:样本在半径ε的区域。

    核心对象:给定数目m,如果一个样本的ε邻域内至少包含m个样本,则称此样本为核心对象。

    直接密度可达:如果p在q的ε邻域内,并且q是一个核心对象,那么就说p从对象q出发是密度可达的。

    密度可达:如果存在一个对象链p1p2...pn,p1 = q,pn = p,对于1≤i≤n,p[i+1]是p[i]关于ε和m直接密度可达,那么p是从对象q出发关于ε和m密度可达的。

    密度相连:如果集合中存在一个对象o,p和q是从o出发关于ε和m密度可达,那么p和q是关于ε和m密度相连。

    噪声:不包含在任何簇中的样本,称为噪声。注:如果m值选的过小,那么包含过少对象的簇也可以被认为是噪声。

    2、dbscan算法过程:

    a.人工给定ε邻域距离和数值m,如果一个点p的ε邻域内包含多余m个对象,则创建一个p为核心对象的新簇。

    b.寻找并合并核心对象直接密度可达的对象。

    c.没有新点更新时,算法结束

    适用范围

    可以发现任何形状的聚类


    谱聚类

    简单介绍

    谱聚类是求拉普拉斯矩阵的特征向量后,对特征向量的特征值进行聚类。对数据分布的适应性更强

    算法过程

    1、先给出若干定义

    拉普拉斯矩阵:L = D - W

    2、谱聚类算法过程

    a、计算相似度矩阵W和度矩阵D

    b、计算拉普拉斯矩阵L = D - W

    c、计算L的特征值和特征向量Lu = λu,因为L是n*n的对称矩阵,所以L有n个特征值和特征向量。

    d、对特征值λ从小到大排序,取前K个特征值的特征向量u1,u2...uk,组成特征向量矩阵U(n行k列)。

    e、1号样本的特征认为是U矩阵的第一行u11,u12...u1k

          n号样本的特征认为是U矩阵的第一行un1,un2...unk

    f、有了样本,样本也选好了特征,使用k-means将n个样本做聚类,得到K个簇。

    g、这个聚类的最终结果就是谱聚类的结果。

    适用范围

    适用于各种距离,处理稀疏数据会比其他算法更有效

    弗雷歇距离

    度量点之间的距离有很多,这里介绍一种度量曲线相似度的方法,Frechet distance。

    网上常见的描述方式是

    Fréchet distance就是狗绳距离:主人走路径A,狗走路径B,各自走完这两条路径过程中所需要的最短狗绳长度。

    下面更直白的表述一下

    两条曲线L1,L2。a表示L1上的点,b表示L2上的点d(a,b)表示两点间的距离

    当a在0号点时,计算d(0,1),d(0,2)...d(0,n)各个距离,记为集合s0,D0 = max(s0)

    当a在1号点时,计算d(1,1),d(1,2)...d(1,n)各个距离,记为集合s1,D1 = max(s1)

    以此类推得到D2,D3...Dn

    frechet_distance = min(D0,D1,...,Dn)

    弗雷歇距离的参考文献

    https://zhuanlan.zhihu.com/p/2015996

    题外话:是否能够根据曲线相似度去判断两支股票的k线趋势是否相同,从而去挑选趋势相同的股票呢?

    相关文章

      网友评论

        本文标题:关于聚类与曲线相似度评价指标

        本文链接:https://www.haomeiwen.com/subject/ufhwpftx.html