一种适用于大数据的无监督快速聚类方法及系统与流程

文档序号:14217470阅读:1243来源:国知局

本发明属于大数据分析、挖掘及应用技术领域,具体涉及一种适用于大数据的无监督快速聚类方法及系统。



背景技术:

随着信息技术的快速发展以及信息资源的开发利用,世界对信息的需求快速增长。与此同时,世界正进入大数据时代,传感器、物联网和智能移动终端技术的飞速发展,使得人们可以很便捷地通过网络获取各类数据。然而很多情况下,信息并不能直接获取,必须要从海量数据中分析抽取得到。如何从大数据中提取对我们有用的信息,是目前乃至未来的一个全球研究热点。

聚类是数据预处理过程的一个重要环节,是通过数据建模简化数据的一种有效方法。大数据中通常有一种潜在的分布模式,对于使用者而言是未知的。聚类,是一种探索性的无监督的学习过程,使用者不必事先给出一个分类标准,聚类能够从样本数据出发,自动获取数据的分布状况,从而对数据进行分类,并且不同的聚类方法常常会得到不同的结论。目前无监督的聚类方法中,最具代表性的是近邻传播,是一种基于代表点的聚类方法。该方法不需预先指定聚类的类别数目,且将所有的数据点视为潜在的聚类代表点,只需输入数据点之间的相似度矩阵,通过数据节点之间的信息传递,直至出现最优的聚类代表点集合及其所对应的聚类簇。然而,该方法的空间复杂度为o(n2),而且通常将偏好值(preference,即相似度矩阵主对角线上的元素)设置为同一个常数值(一般区相似度矩阵的中值),这意味着数据点被选为代表点的先验概率是相同的。但是,这忽略了数据点的密度对先验概率的影响。此处数据点的密度的含义,指的是落在该数据点的邻域半径内的数据点的个数,该数据点成为聚类代表点的可能性应与该数据点的密度呈正相关。

到目前为止,在对大规模数据集的聚类上,目前的常用聚类方法,诸如k-mean等,要么空间复杂度高,内存消耗大,效率不够快,不适用于大数据,要么必须人工参与其中,不能真正实现无监督的聚类,这不能满足大数据环境下的要求,因此需要一种适用于大数据的无监督快速聚类方法,来辅助提取大数据中潜在的有用信息。



技术实现要素:

为了克服现有技术存在的缺点与不足,本发明提供一种适用于大数据的无监督快速聚类方法及系统。

本发明首先对预处理后的大规模数据集进行超网格划分采样的处理,得到新数据集,然后再利用改进后的近邻传播方法(以下简称mp-ap方法),对新数据集进行聚类,得到初步聚类结果,最后将初步聚类结果再映射还原到原始数据集上,得到最终的聚类结果,为进一步的分析工作创造条件。

本发明采用如下技术方案:

一种适用于大数据的无监督快速聚类方法,包括如下步骤:

识别产生信息的数据源并采集数据,将以结构化的方式,存储为统一的本地数据文件;

对统一的本地数据文件进行数据清洗,然后对清洗后的数据存储到数据仓库,进行规范化处理,将数据转换为适用于挖掘的形式,进一步进行规约,产生更小但保持原数据完整性的数据集,此处称为原始数据集;

将原始数据集空间划分为若干个超网格,对同一个超网格的数据自己设置相同的且异于其它超网格的标签,并将该标签映射表存起来,同时统计同一超网格中数据子集各维度的均值以及该数据子集所包含数据点的个数,从而得到该超网格的采样代表点及其数据密度,进而得到新数据集及其相对应的数据密度;

首先计算输入新数据集的相似度矩阵,并根据对应的数据密度,设置相似度矩阵主对角线上的元素值,然后利用mp-ap方法,对数据进行聚类,并输出聚类结果;

根据标签映射表及输出的聚类结果,还原得到原始数据集的最终聚类结果。

还包括应用的预设算法对最终聚类结果进行分析,挖掘有价值的内在信息。

所述将新数据集空间划分为若干个超网格,对同一个超网格的数据自己设置相同的且异于其它超网格的标签,并将该标签映射表存起来,同时统计同一超网格中数据子集各维度的均值以及该数据子集所包含数据点的个数,从而得到该超网格的采样代表点及其数据密度,进而得到新数据集及其相对应的数据密度,具体步骤为:

对预处理后的数据,设置控制参数n,所述参数n表示单个超网格所包含的数据点的个数;

根据公式计算数据集空间每个维度的划分比例k,从而将数据集空间划分为若干个网格。其中,n表示数据点的总数,dn表述数据的维度总数;

对同一超网格中的数据子集设置相同且异于其它超网格的标签,并保存标签映射表;

统计同一超网格中数据子集各维度的均值以及该数据子集所包含数据点的个数,从而得到每个超网格中的采样代表点及其数据密度;

输出新数据集及其数据密度和标签映射表。

所述计算输入新数据集的相似度矩阵,并根据对应的数据密度,设置相似度矩阵主对角线上的元素值,然后利用mp-ap方法,对数据进行聚类,并输出聚类结果,具体步骤为:

输入超网格划分采样得到的新数据集及其数据密度m;

计算新数据集的相似度矩阵s,相似度可设置为数据点之间的欧氏距离的负值;

按照公式

来设置相似度矩阵s主对角线上的元素值,其中mean是相似度矩阵s的均值,mmax是所有数据点的密度最大值,mk表示数据点k处的密度;

对吸引度矩阵r和归属度矩阵a进行初始化,即:

设置迭代次数或收敛条件,吸引度矩阵r和归属度矩阵a按照以下公式不断迭代更新,直至达到迭代次数或者满足收敛条件才停止迭代更新:

r(i,j)(tc)=s(i,j)-maxk≠j[s(i,k)+a(i,k)(t-1)]

r(i,j)(t)=λ·r(i,j)(t-1)+(1-λ)·r(i,j)(tc)

a(i,j)(t)=λ·a(i,j)(t-1)+(1-λ)·a(i,j)(tc)

其中,r(i,j)(tc)表示吸引度r(i,j)的当前计算值,a(i,j)(tc)表示归属度a(i,j)的当前计算值,r(i,j)(t)表示第t次迭代过程的吸引度r(i,j)的值,a(i,j)(t)表示第t次迭代过程的归属度a(i,j)的值,λ为阻尼因子,主要加快迭代过程的收敛速度,满足0.5≤λ<1,默认值为0.9;

定义决策矩阵ar=a+r,若决策矩阵主对角线上的元素大于0,则表示所对应的数据点为聚类中心点,否则不是聚类中心点;并将其余数据点分配给与之距离最近的聚类中心点;

输出数据集的聚类簇标签。

所述规约包括属性规约和数值规约。

所述采集数据包括网络爬虫方式及网站公开api。

所述数据清洗包括剔除原始数据集中的无关数据、重复数据,平滑噪声数据,处理缺失值和异常值。

一种适用于大数据的无监督快速聚类系统,包括:

数据采集模块

从产生信息的数据源识别和采集数据,一般可通过网络爬虫或者网站公开api等方式从网站上获取数据信息,将非结构化的数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。对于企业生产经营数据或学科研究数据等保密性要求较高的数据,可通过与企业或研究机构合作,使用特定系统接口等方式采集数据。

数据预处理模块:

数据预处理模块由四个子模块构成,分别是数据清洗子模块、数据集成子模块、数据变换子模块和数据规约子模块。

数据清洗子模块,主要功能是剔除原始数据集中的无关数据、重复数据,平滑噪声数据,处理缺失值和异常值等。

数据集成子模块,是将从多个数据源采集到的数据合并存储到一个一致的数据仓库中的过程。在数据集成时,来自多个数据源的数据的表达形式是不一样的,必须考虑实体识别问题和属性冗余问题,从而将源数据在最低层上加以转换、提炼和集成。

数据变换子模块,主要是对数据进行规范化处理,将数据转换成适用于数据挖掘的形式,如利用对数变换对数据进行压缩,或者将数据归一化,使其映射到[-1,1]或[0,1]内,或者利用离散化方法将连续属性离散化,利用已有属性构造出新的属性并加入到现有的属性集合中等等。

数据归约子模块,是对大规模数据集进行规约,产生更小但保持原数据集完整性的新数据集,一般包括属性规约和数值规约。其中,属性规约通过合并属性来产生新属性,或者直接删除不相关的属性来减少数据维数,同时要确保新数据集的概率分布尽可能接近原始数据集的概率分布。数值规约则通过选择替代的、较小的数据来减少数据量。

数据聚类模块

数据聚类模块由三个子模块构成,分别是超网格划分采样子模块、mp-ap聚类子模块和映射还原子模块。

超网格划分采样子模块,其主要功能是将清洗集成后的数据集空间划分为若干个超网格,并采样得到新数据集。对同一个超网格的数据子集设置相同的且异于其它超网格的标签,并将该标签映射表存储起来,同时统计同一超网格中数据子集各维度的均值以及该数据子集所包含数据点的个数,从而得到该超网格的采样代表点及其数据密度,进而得到新数据集及其相对应的数据密度。

mp-ap聚类子模块,首先计算输入数据集的相似度矩阵s(数据点之间的欧氏距离的负值),并根据对应的数据密度m,设置相似度矩阵s主对角线上的元素值(即数据点的偏好值),然后利用mp-ap方法,对数据进行聚类,并输出聚类结果。

映射还原子模块,其主要功能是根据超网格模块中的标签映射表,对ma-ap聚类子模块的新数据集的聚类结果,还原到原始数据集的最终聚类结果。

数据分析模块,应用预设的算法对经过处理后的数据进行分析,以挖掘有价值的内在信息。

本发明的有益效果:

1、本发明提供了一种适用于大数据的无监督快速聚类分析的技术方案。

2、本发明应用了网格采样的技术对大规模数据集进行了预处理,大大降低了聚类过程的空间复杂度和内存开销,提高了运行效率。

3、本发明充分考虑了数据点的密度对该点成为聚类代表点的先验概率的影响。

4、本发明具有较强的鲁棒性,不仅适用于低维的数据集,而且适用于高维的数据集。

附图说明

图1是本发明系统的结构示意图;

图2是本发明方法超网格划分采样子模块的工作流程图;

图3是mp-ap聚类子模块的工作流程图。

具体实施方式

下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例

如图1所示,一种适用于大数据的无监督快速聚类系统,包括数据采集模块、数据预处理模块、数据聚类模块和数据分析模块。其中,数据预处理模块可细分为数据清洗子模块、数据集成子模块、数据变换子模块和数据规约子模块;数据聚类模块可细分为超网格划分采样子模块、mp-ap聚类子模块和映射还原子模块。

具体方法为:

首先利用数据采集模块,从产生信息的数据源识别和采集数据,一般可通过网络爬虫、网站公开api、企业提供的特定系统接口等方式获取数据信息,将非结构化的数据抽取出来,存储为统一的本地数据文件,并以结构化的方式存储”。

然后,将采集到的数据传输到数据预处理模块,依次经过数据清洗子模块、数据集成子模块、数据变换子模块和数据规约子模块的预处理。其中,数据清洗子模块,主要剔除原始数据集中的无关数据、重复数据,平滑噪声数据,处理缺失值和异常值等。数据集成子模块,主要解决实体识别问题和属性冗余问题,从而将从多个数据源采集到的数据在最低层上加以转换、提炼和集成,并合并存储到一个一致的数据仓库中。在数据集成时,来自多个数据源的数据的表达形式是不一样的,必须考虑实体识别问题和属性冗余问题,从而将源数据在最低层上加以转换、提炼和集成。

数据变换子模块,即对数据进行规范化处理,将数据转换成适用于数据挖掘的形式,如利用对数变换对数据进行压缩,或者将数据归一化,使其映射到[-1,1]或[0,1]内,或者利用离散化方法将连续属性离散化,利用已有属性构造出新的属性并加入到现有的属性集合中,等等。

数据规约子模块,即通过对大规模数据集进行规约,产生更小但保持原数据集完整性的新数据集,一般包括属性规约和数值规约。其中,属性规约通过合并属性来产生新属性,或者直接删除不相关的属性来减少数据维数,同时要确保新数据集的概率分布尽可能接近原始数据集的概率分布。数值规约则通过选择替代的、较小的数据来减少数据量。

接着,将预处理后的数据传输到数据聚类模块,依次经过超网格划分采样子模块、mp-ap聚类子模块和映射还原子模块的处理。其中,超网格划分采样子模块的具体流程,如图2所示。

第一步,对于预处理后的数据,设置控制参数n(即单个超网格所包含的数据点的个数,默认设置为200)。

第二步,按照公式

计算数据集空间每个维度的划分比例k,从而将数据集空间划分为若干个网格。其中,n表示数据点的总数,dn表述数据的维度总数,1.25为调整因子。

第三步,对同一超网格中的数据子集设置相同且异于其它超网格的标签,并保存标签映射表。

第四步,统计同一超网格中数据子集各维度的均值以及该数据子集所包含数据点的个数,从而得到每个超网格中的采样代表点及其数据密度;第五步,输出新数据集及其数据密度和标签映射表。

mp-ap聚类子模块的具体流程,如图3所示。

第一步,输入超网格划分采样得到的新数据集及其数据密度m。

第二步,计算数据集的相似度矩阵s,相似度可设置为数据点之间的欧氏距离的负值。

第三步,按照公式

来设置相似度矩阵s主对角线上的元素值(即数据点的偏好值),其中mean是相似度矩阵s(主对角线上的元素除外)的均值,mmax是所有数据点的密度最大值,mk表示数据点k处的密度。

第四步,对吸引度矩阵r和归属度矩阵a进行初始化,即:

第五步,设置迭代次数或收敛条件(可设置若连续若干代聚类结果不发生变换则迭代停止),吸引度矩阵r和归属度矩阵a按照以下公式不断迭代更新,直至达到迭代次数或者满足收敛条件才停止迭代更新:

r(i,j)(tc)=s(i,j)-maxk≠j[s(i,k)+a(i,k)(t-1)]

r(i,j)(t)=λ·r(i,j)(t-1)+(1-λ)·r(i,j)(tc)

a(i,j)(t)=λ·a(i,j)(t-1)+(1-λ)·a(i,j)(tc)

其中,r(i,j)(tc)表示吸引度r(i,j)的当前计算值,a(i,j)(tc)表示归属度a(i,j)的当前计算值。r(i,j)(t)表示第t次迭代过程的吸引度r(i,j)的值,a(i,j)(t)表示第t次迭代过程的归属度a(i,j)的值。λ为阻尼因子,主要加快迭代过程的收敛速度,满足0.5≤λ<1,默认值为0.9。

第六步,定义决策矩阵ar=a+r,若决策矩阵主对角线上的元素大于0,则表示所对应的数据点为聚类中心点,否则不是聚类中心点;并将其余数据点分配给与之距离最近的聚类中心点。第七步,输出数据集的聚类簇标签。

映射还原子模块,根据超网格划分采样子模块输出的原始数据集标签映射表,以及mp-ap聚类子模块输出的新数据集聚类簇标签,给原始数据集的数据点设置聚类标签。比如原始数据集中,数据点i和数据点j在标签映射表中具有标签k,则表示数据点i和数据点j均落在k个超网格中,它们在最终的聚类过程中始终属于同一聚类簇。但假如原始数据集中数据点i和数据点j在标签映射表中的标签不同,分别为m和n,则表示数据点i和数据点j分别落在第m个和第n个超网格中,对应着新数据集中数据点m和数据点n,且后者的聚类结果则分别代表了数据点i和数据点j所在的超网格中所包含的所有数据点的聚类结果。

最后,将聚类后的数据集输入到数据分析模块,利用预设的算法对数据进行进一步的分析,从而提取出有价值的信息。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1