本发明涉及数据挖掘领域,具体地说是一种基于聚类算法的境外旅客购物行为分析方法。
背景技术:
聚类算法是数据挖掘中的一个无监督的学习过程,把事物按照某些特征聚集成类,使得不同类之间的相似度尽量小,类内部相似度尽量大。由于绝大多数的聚类算法只擅长处理球形聚类,并且存在孤立点时聚类效果难以达到;蚁群算法是一种群智能优化算法,具有良好的搜索全局解的能力,在解决许多复杂优化问题方面已经展现出优异的性能和巨大的发展潜力,所以本发明采用基于蚂蚁信息素痕迹的聚类分析算法——基于信息素的CRUE算法。
CRUE算法是层次聚类中凝聚法的代表,CRUE算法先把每一个数据对象看成一个簇,然后合并两个距离最近的簇,直到簇的个数达到要求的为止。CRUE算法是对传统的对簇的表示方法进行了改进,没有用所有的点或中心和半径来表示一个簇,而是在每一个簇中选取固定数量并且分布比较好的点作为描述该簇的代表点,然后将这些点乘以一个适当的收缩因子,让它们更靠近簇的中心点。把一个簇用代表点表示,这样可以使簇的外延向非球形扩展,进而能够调整簇的形状用于表达非球形的簇。而且,收缩因子的引入有效的减小了噪音对聚类的影响。
运用蚂蚁觅食原理,利用信息素来实现聚类分析。蚂蚁觅食过程分为搜索食物和搬运实物两个环节。所有蚂蚁在觅食过程中都会在其经过的路径上释放能让自己和其他蚂蚁感知的信息素。某条路径经过的蚂蚁越多,这条路径的信息素就越强,同时信息素会随着时间的流逝而挥发。蚂蚁倾向朝着信息素强度高的方向移动,某条路径经过的蚂蚁越多,后面的蚂蚁选择该路径的概率就越大。
技术实现要素:
本发明的技术任务是提供一种基于聚类算法的境外旅客购物行为分析方法。
本发明的技术任务是按以下方式实现的,该分析方法步骤如下:
步骤1)从购物分析的源数据对象中抽取一个随机样本S;
步骤2)将样本S分割为一组划分;
步骤3)对划分局部的聚类;
步骤4)用相应的簇标签标记数据;
步骤5)通过随机取样提出孤立点,如果一个簇增长得太慢,就去掉该族,重新进入步骤3)。
所述的步骤1)中抽取待聚类数据N个模式样本,每个数据对象有7个属性,则数据对象定义为S={Si|Si=(si1,si2,…,si7),i=1,2,…,N}。
所述的购物分析包括性别分析、年龄分析、地域分析、商品类别分析、购买频次分析。
所述的步骤2)中样本S分割为p个分区,每个分区大小n/p;每个分区内作聚类,直到分区内的簇的个数为n/pq,q>1;或者指定一个距离阈值,当最近簇距离大于阈值,则停止。
所述的步骤3)中每个数据对象分别设置一个蚂蚁,i分配给第j个聚类中心Cj(j=1,2,…,K),蚂蚁就在模式样本i到聚类中心Cj的路径(i,j)上留下信息素τij(t);计算任意两个数据项p和q之间的距离,即d(p,q);不同对象之间的距离可以用欧几里得距离来度量;
数据对象Si合并到Sj的概率为:
如果Pij(t)大于阈值P0,就将Xi合并到Xj的领域内;这里ηij是dij的倒数,称为能见度;α和β是调节因子,起到防止所有蚂蚁均沿相同路径得到相同结果所产生的停止搜索;检验是否聚类最优,如果是最优则结束算法;若不是最 优,则进入步骤4)。
所述的步骤4)中对未参加聚类的数据或新增的数据进行标注从而计算聚类的可信度,其可以准确的识别非球状数据集。
所述的步骤5)中随机取样过滤了大多数的异常点;异常点所在的簇的点个数少于正常簇的点的个数,此时分两个阶段消除异常点:第一阶段:增长速度慢的簇作为异常,以点的个数作为阈值;第二阶段:在第一阶段中,有些相近的异常点已经组合,所以进行第二阶段中异常点形成的簇非常小,很容易鉴别。
本发明的一种基于聚类算法的境外旅客购物行为分析方法和现有技术相比,分析结果包含性别分析、年龄分析、地域分析、商品类别分析、购买频次分析、单价分析,通过这些分析结果,能够更合理的优化商店结构以及商店的商品结构,将合适商品推荐给潜在的境外旅客客户,增大境外旅客购买商品的概率。离境退税的数据更好的服务于离境退税政策,广大的境外旅客在境内买到了合适的商品,有利于刺激旅游业的发展、提高综合性的经济效益。
附图说明
附图1为一种基于聚类算法的境外旅客购物行为分析方法的流程框图。
具体实施方式
实施例1:
该基于聚类算法的境外旅客购物行为分析方法步骤如下:
步骤1)从购物分析的源数据对象中抽取一个随机样本S;
步骤2)将样本S分割为一组划分;
步骤3)对划分局部的聚类;
步骤4)用相应的簇标签标记数据;
步骤5)通过随机取样提出孤立点,如果一个簇增长得太慢,就去掉该族,重新进入步骤3)。
实施例2:
该基于聚类算法的境外旅客购物行为分析方法步骤如下:
步骤1)从购物分析的源数据对象中抽取一个随机样本S;
购物分析包括性别分析、年龄分析、地域分析、商品类别分析、购买频次 分析、单价分析等。抽取待聚类数据N个模式样本,每个数据对象有7个属性,则数据对象定义为S={Si|Si=(si1,si2,…,si7),i=1,2,…,N}。
步骤2)将样本S分割为一组划分;
样本S分割为p个分区,每个分区大小n/p;每个分区内作聚类,直到分区内的簇的个数为n/pq,q>1;或者指定一个距离阈值,当最近簇距离大于阈值,则停止。
步骤3)对划分局部的聚类;
每个数据对象分别设置一个蚂蚁,i分配给第j个聚类中心Cj(j=1,2,…,K),蚂蚁就在模式样本i到聚类中心Cj的路径(i,j)上留下信息素τij(t);计算任意两个数据项p和q之间的距离,即d(p,q);不同对象之间的距离可以用欧几里得距离来度量;
数据对象Si合并到Sj的概率为:
如果Pij(t)大于阈值P0,就将Xi合并到Xj的领域内;这里ηij是dij的倒数,称为能见度;α和β是调节因子,起到防止所有蚂蚁均沿相同路径得到相同结果所产生的停止搜索;检验是否聚类最优,如果是最优则结束算法;若不是最优,则进入步骤4)。
步骤4)用相应的簇标签标记数据;
因为CURE用c个点来代表一个聚类,因此在聚类完成后,对未参加聚类的数据或新增的数据进行标注从而计算聚类的可信度时,其可以准确的识别非球状数据集,使得标注更加准确。
步骤5)通过随机取样提出孤立点,如果一个簇增长得太慢,就去掉该族,重新进入步骤3)。
随机取样,过滤了大多数的异常点;异常点所在的簇的点个数少于正常簇的点的个数,此时分两个阶段消除异常点。第一阶段:增长速度慢的簇作为异 常,以点的个数作为阈值。Fraction(簇的个数为初始簇个数的比例;比如:1/3)的取值很重要;当簇的个数减少到fraction时,开始作消除异常点的操作。第二阶段:在第一阶段中,可能有些相近的异常点已经组合,所以进行第二阶段中异常点形成的簇非常小,很容易鉴别。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。