本发明属于人工智能中的机器学习技术领域属于数据挖掘中模式识别聚类技术领域,具体涉及一种从空间角度定位技术的聚类方法。
背景技术:
:
聚类是一种常见的数据分析工具,其目的是把大量数据点的集合分成若干簇,使得簇与簇之间的差异尽可能大,同一簇的差异尽可能小。类簇是数据点的集合,聚类分析又称群集分析,聚类分析使得簇内部的相关性比簇与簇之间的相关性更加紧密,同簇内的相似性很大,而不同的簇之间的差异性很大。相差性可以根据样本点的属性进行计算,而样本点的“距离”则是度量标准常用的方法。从空间角度上来看,“距离”则体现了点与点之间的紧密程度。
迄今为止,聚类算法的研究已有60余年,作为数据挖掘中模式识别技术的一个子功能,聚类作为一个单独的方法来获得数据点在空间中的分布情况。根据各簇之间的差异性,集中对某些的特定簇做深层次的分析。此外,它还可以作为其它算法(如特征、图像和分类等)的预处理步骤,这些算法在形成的簇上进一步做相关处理。
聚类算法的研究是极具挑战性的,在基于距离和相似度的研究上,产生了许多研究成果,大体上聚类算法可以分为:基于密度聚类算法;基于层次聚类算法;基于网格的聚类算法;基于神经网络的聚类算法;基于统计学的聚类算法以及模糊聚类算法。
技术实现要素:
:
本发明针对空间角度定位技术,提出了一种类似方向性视觉距离的聚类算法,反应了空间点的紧密程度。点与点之间的紧密,即从任何方位上来看,同一簇的点都是紧密联系的。而不同簇的点不可能在任何角度上都是紧密联系的,肯定可以从某个方位上可将其区分。类似人眼视觉,在空间不同方位上直观的呈现点与点之间的紧密联系,从而体现相异性,达到“物以类聚”的效果。
技术方案
本发明为实现上述目的,采用如下技术方案:
步骤1),输入样本数据集S={1≤i≤N};
步骤2),随机选择基点X0p={X0p|1≤p≤M,M为最终选取的基点数};
步骤3),以X0p为基点计算样本集S中各点与X0p的距离Dip,并进行升序排列得到序链:Sp={Xip|1≤i≤N,p表示基点,X0p为基点};
步骤4),确定经验值R,即R=DNp/N?;
步骤5),在序链Sp中,以经验值R,每相邻两点间距为Dip-Di-1p,若Dip-Di-1p>R,则由第i-1个点到其前未被归簇的点为一簇,可得出Sp的若干簇:Cjp={Cjp|1≤j≤K,K表示此基点的簇数}否则i+1;
步骤6),随机改变X0p某几个维度的正负性,得到此点其他方位上的基点X0p+1,重复步骤3),4),5)得出相应的簇Cjp+1;
步骤7),对于Cjp和Cjp+1的各簇进行相交得到簇Clustern,形如:C1p∩C1p+1;C1p∩C2p+1;...;C2p∩C1p+1;...(重复步骤与Clustern相交);
步骤8),这样舍去空集得到聚在一起的类簇Clustern;
步骤9),重复步骤6),7),8)若Clustern不变,则得到就为最终的类簇,否则重复步骤6),7),8);若6)中已无法改变维度值,则跳至步骤10);
步骤10),跳至步骤2),直至Clustern不在变化,即得到最终类簇Clustern。
有益效果
本发明公布了基于空间角度定位技术的聚类方法,不同于现有的聚类算法,本发明提出了方向性视觉“距离”,即任何角度下同类簇点都具有极大的紧密性,更加直观的体现了聚类算法的研究理念。本发明反应了点与点间的紧密程度,相对于现有的聚类算法,本发明基于空间定位技术的聚类算法更加具有直观性,更易于人理解,在反应聚类的精准度、紧密性方面更具有优势。
附图说明
图1为本发明技术方案原理图。
具体实施方式:
下面将结合附图1及具体实施例对本发明所述的基于空间角度定位技术的聚类方法作进一步详细描述。
具体步骤如下:
步骤1,输入样本数据集S={1≤i≤N};
步骤2,随机选择基点X0p={X0p|1≤p≤M,M为最终选取的基点数};
步骤3,以X0p为基点计算样本集S中各点与X0p的距离,并进行升序排列得到序链:Sp={Xip|1≤i≤N,p表示基点,X0p为基点};
步骤4,确定经验值R(R为从基点角度判断哪些点应该归属同一簇的距离;),这里我们以点间间隔均值为R,即R=DNp/N;
步骤5,在序链Sp={Xip|1≤i≤N}(i的初始值为1)中,以经验值R,每相邻两点间距为Dip-Di-1p:
步骤5.1,若Dip-Di-1p≤R,则Xip归入簇Cjp={Cjp|1≤j≤K}(j的初始值为1);i=i+1;
步骤5.2,若Dip-Di-1p>R,j=j+1;
步骤5.3,循环步骤5.1,5.2直至Sp中点全部归并;
步骤6,随机改变X0p某几个维度的正负性,得到此点其他方位上的新基点X0p,p=p+1,重复步骤3),4),5)得出相应的簇Cjp;
步骤7,对于Cjp和Cjp+1的各簇进行相交得到簇Clustern,形如:C1p∩C1p+1;C1p∩C2p+1;...;C2p∩C1p+1;...;(重复步骤与Clustern相交)
步骤8,这样舍去空集得到聚在一起的类簇Clustern;
步骤9,重复步骤6,7,8:
步骤9.1,若Clustern不变,则得到就为最终的类簇,否则重复步骤6,7,8,p=p+1;
步骤9.2,若步骤6中已无法改变维度值,则跳至步骤10;
步骤10,跳至步骤2,p=p+1,直至Clustern不在变化,即得到最终类簇。