1.一种面向变尺度数据密度空间基于区域生长及竞争的游客去向数据分级聚类方法,其特征在于,所述方法包括以下步骤:第一级:通过距离阈值R1画圆更新簇心,过程如下:
步骤1.1:输入一组无标签的数据集X={x1,x2,...xi,...xN}∈RP,从X中随机取第i个数据对象xi,作为第一个簇心点存入集合C={};再在X中随机取第j个数据对象xj,用公式(1)计算xi xj之间的欧氏距离 若 小于R1(R1为数据集空间大小的10%),则点xi xj为同一类,根据公式(2)计算新的簇心点S替换C中的点xi,若 大于R1,这说明xi xj不是同一类,xj也作为一个簇心存入簇心集合C={xi};
其中,式(2)中S是更新后的簇心,β是权重系数;
步骤1.2:从数据集X(不包括xi、xj)中随机取第m个数据对象xm,计算欧式距离集合n为C集合中点的个数,确定xm到簇心集合中最近点Ci并用点xm、Ci按公式(1)的方法更新簇心;
步骤1.3:重复步骤1.1及步骤1.2的方法遍历数据X中所有的点,并得到更新后的簇心集合C={C1,...,Ci,...Cw},w为簇的类数,对应簇集合M={C1{...},...,Ci{...},...Cw{...}};
第二级:进行区域生长,过程如下:
步骤2.1:确定种子序列:首先遍历簇心集合C中所有的点,计算第i个簇对应的点的个数ni,i=1,2...,m,若ni<=min C则不构成簇,C中删除对应的簇心点Ci,M中删除对应簇心点集Ci{....}并存入集合D,将集合C剩余的簇心点做为种子序列B={C1,...,Ci,...,Cd},d<=w;
步骤2.2:规定生长准则,确定生长停止条件:取种子序列B中第一个簇心C1,以R1为半径画圆,计算圆内的点数n1,若n1>=minC,则继续以C1为圆心R=R1+△R为半径画圆QB1,判断进入圆QB1的点是否属于D,若属于则i=i+1继续生长;
△R=e(sm(x))/10*i^2*0.03 (3)
其中sm(x)为M集合中第x个簇簇内数据间距离大小的平均值,将进入圆内的点存入相应的簇集合中,得到更新后的M;
步骤2.3:对于每个簇心区域生长后得到的点,下次生长时不作为生长对象处理,然后用步骤2.2的方法遍历C中其他的簇心点,得到每个簇心点及其对应簇的数据;
第三级:通过基于竞争的思想,计算所有聚类簇心之间的关系权重及密度相似性,采取适当的规则进行簇的合并;
对数据集X在进行第二级聚类之后,若所有簇心对数据Xi的竞争过程中,胜利者分别为簇心 和 取 当d的取值在某一范围时,那么我们认为簇 和簇存在关系性权重;关系性权重的增加准则:用 表示两个小簇之间的关系权重,计算方法按如下公式(4)其中,公式(4)中 中x=min(x,y),y=max(x,y);
步骤3.1:首先对数据集X={X1,…,Xi,…,XN}从第一个数据X1开始依次进行遍历,对每一个具体的数据,找出所有簇心在对数据竞争关系过程中的两个胜利者 和 然后按照上面所说关系性权重存在准则判断两个胜利者所对应的簇 和 之间是否存在关系权重,如果存在权重,则对存在权重的簇按照公式(4)进行关系权重的增加,然后遍历下一个数据;如果不存在关系权重则直接遍历下一个数据,直到所有的数据依次遍历一次;
关系权重计算完成之后,形成的关系权重为 其中下标x取值从1开始直到M,上标y取值从x开始直到M;
步骤3.2:计算每个簇之间的密度相似性,首先对第二级聚好的簇集合M,计算每个簇的簇内密度ρi:ρi=ni/Si (5)
ni为第i个簇内含点的个数,Si为第i个簇的面积大小,ρ={ρ1,...,ρi,...,ρd},并计算第x个簇和第y个簇之间的密度差 即:下标x取值从1开始直到d,上标y取值从x开始直到d。
步骤3.3:当 且 时,簇 和簇 可以合并。
假设最终形成的簇集合为Mk,其中下标k的每一个取值对应一个独立的簇,对最终形成的簇集合Mk的下标初始化为k=1, 关系权重 下标x初始化为x=1;
关系权重 的下标x取值从1开始直到M,对关系权重 的上标y取值从x开始直到M,当中出现x=y的情况时,令 满足关系权重 不满足条件 且 时,小簇不做任何处理;关系权重 满足且 条件时,如果 或者 那么 和 同时合并到Mk中,
否则k=k+1,同时 和 合并到新的簇Mk中, 其中 和
中存在的相同的元素合并为同一项;
步骤3.4:最终形成的簇心集合为Mk,k=1,2…K。