一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据填充方法及装置、设备、存储介质与流程

2022-02-25 18:32:22 来源:中国专利 TAG:


1.本技术涉及数据挖掘领域,涉及但不限定于数据填充方法及装置、设备、存储介质。


背景技术:

2.传统的具有噪声的基于密度的聚类方法(density-based spatial clusteringof applications with noise,dbscan)填充算法只能填充均匀密度数据集,因为传统的dbscan算法使用固定的邻域半径进行聚类,可以对密度均匀的数据集有很好的聚类效果,但却不能处理非均匀密度数据集。
3.而现实的数据集往往是非均匀密度的,如果处理非均匀密度数据集,那么使用dbscan算法填充缺失值的正确率就会大大降低。亟需提出一种能够在均匀或非均匀密度数据集中正确识别类的改进的dbscan算法填充缺失值。


技术实现要素:

4.有鉴于此,本技术为解决传统的dbscan填充方法不能处理非均匀密度数据集的问题而提供一种数据填充方法及装置、设备、存储介质,能够在均匀或非均匀密度数据集中正确识别类,从而更准确的填充缺失值,提高了缺失值填充的正确率。
5.本技术的技术方案是这样实现的:
6.第一方面,本技术提供一种数据填充方法,所述方法包括:
7.确定待处理数据集中的完整数据集和缺失数据集;
8.根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象;
9.根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合;
10.根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填充,得到目标数据集。
11.第二方面,本技术提供一种数据填充装置,所述装置包括第一确定模块、第二确定模块、第三确定模块和填充模块,其中:
12.所述第一确定模块,用于确定待处理数据集中的完整数据集和缺失数据集;
13.所述第二确定模块,用于根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象;
14.所述第三确定模块,用于根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合;
15.所述填充模块,用于根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填充,得到目标数据集。
16.第三方面,本技术提供一种数据填充设备,包括存储器和处理器,所述存储器存储
有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据填充方法中的步骤。
17.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据填充方法中的步骤。
18.本技术提供的技术方案带来的有益效果至少包括:
19.在本技术中,首先,确定待处理数据集中的完整数据集和缺失数据集;然后,根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象;再根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合;最后,根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填充,得到目标数据集;如此利用可变的邻域集合替代传统固定的eps邻域,自适应的根据数据的密集程度自动调整邻域大小,从而能够对非均匀数据集进行缺失值填充,提高了缺失值记录填充的准确性。
附图说明
20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
21.图1为本技术实施例提供的数据集的类别示意图;
22.图2为本技术实施例提供的一种数据填充方法的流程示意图;
23.图3为本技术实施例提供的另一种数据填充方法的流程示意图;
24.图4a为本技术实施例提供的数据集的类别示意图;
25.图4b为本技术实施例提供的一种数据填充方法的整体实现流程示意图;
26.图4c为本技术实施例提供的数据集的k-dist排序图;
27.图4d为本技术实施例提供的三角不等式在填充算法中应用示意图;
28.图5为本技术实施例提供的一种数据填充装置的组成结构示意图;
29.图6为本技术实施例提供的一种数据填充设备的硬件实体示意图。
具体实施方式
30.缺失值填充问题中,缺失值数据就是由于某些原因,使得记录的信息不完整,存在一些属性没有值,或者标记为空字符串,那么该条记录就是缺失值记录。在现实的数据库中,缺失值普遍存在,无论是生产领域还是科学研究领域,缺失值填充问题已成为数据预处理常见的问题。在医疗卫生领域,由于信息采集过程中存在很多不足,导致该领域的数据缺失非常严重,几乎高达60%左右。
31.现有针对缺失值填充问题的解决方案众多,dbscan算法作为聚类算法的重要成员,也常被用于填充缺失值,其填充缺失值的步骤是:首先将数据集按照数据的完整性分成两个子数据集,即完整数据集和缺失值数据集。完整数据集保存了整个数据集的整体信息,因此,对完整数据集进行聚类,得到若干个分类,然后再对缺失值数据集中的记录逐一的与这若干分类进行相似度比较,得到相似度最大的那个类标记缺失值记录,最后可以根据缺
失值记录所属类的信息计算出缺失值,从而得到完整的数据集。
32.传统的dbscan填充算法只能填充均匀密度数据集,因为传统的dbscan 算法使用固定的eps邻域半径进行聚类,可以对密度均匀的数据集有很好的聚类效果,但却不能处理非均匀密度数据集。
33.而现实的数据集往往是非均匀密度的,如果处理非均匀密度数据集,那么使用dbscan算法填充缺失值的正确率就会大大降低,dbscan算法在选取邻域半径参数时,如果选取的邻域半径eps过大,会将噪点划分到类中,识别不了噪点,也会将两个高密度的类划分到一类中。但如果选取的邻域半径eps过小,那么密度较小的类就无法识别,并且会被标记为噪点,影响聚类的质量。
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
35.本技术实施例提供一种数据填充方法,图1为本技术实施例提供的一种数据填充方法的流程示意图,如图1所示,所述方法包括:
36.步骤s110,确定待处理数据集中的完整数据集和缺失数据集。
37.这里,首先将待处理数据集按照数据的完整性分成两个子数据集,即完整数据集和缺失值数据集。所述完整数据集,保存有完整数据集的整体信息;而针对待处理数据集,采用数据缺失率大于0.5即被淘汰的规则,筛选出有价值的缺失值数据,组成所述缺失值数据集。进一步地,可以处理缺失值数据集,使之成为完整的数据集,从而保证数据的完整性。
38.步骤s120,根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象。
39.这里,所述特定的邻域半径为给定的邻域半径eps,所述最小对象数目指示对于一个类中的每个对象,在该对象的给定邻域半径eps的范围中包含的对象数目不能少于某一给定的最小数目minpts。
40.这里,所述特定的邻域半径eps和最小对象数目minpts可以是用户输入的,也可以使用k距离(k-dist)图来选取合适的eps和minpts。
41.需要说明的是,k-dist是指距离数据点第k个最近的数据点的距离。而k-dist 图就是将数据集中每一个数据点的k-dist值作为纵坐标的数值,这样就得到了n 个坐标值,n是数据集中数据点的个数,将这n个坐标值按降序排序,然后连成一条曲线,这样就能够根据曲线的变化规律得出参数eps和minpts。
42.这里,所述第一数据对象为完整数据集中任意一个数据对象。
43.这里,所述第二数据对象为完整数据集中,在以所述第一数据对象的邻域半径范围内,离所述第一数据对象第minpts个最近的数据对象。
44.步骤s130,根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合。
45.这里,所述第一数据对象与所述第二数据对象之间的第一距离指的是在特定的邻域半径范围内,与第一数据对象相距最远的数据对象之间的距离。
46.进一步地,在完整数据集中,将第一数据对象的邻域半径和第一距离之间的最小值作为第一数据对象的新的半径范围,确定第一数据对象的邻域集合。
47.步骤s140,根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填
充,得到目标数据集。
48.这里,首先按照步骤s120至s130的方式,遍历得到所述完整数据集中每一数据对象的邻域集合,然后按照dbscan算法对所述缺失数据集进行缺失值填充,得到目标数据集。
49.在实施过程中,可以按照以下方式实现:根据所述每一数据对象的邻域集合对所述完整数据集进行聚类,得到若干分类,然后对缺失数据集中的缺失值记录逐一地与这若干分类进行相似度比较,得到相似度最大的那个类来标记缺失值记录,最后可以根据缺失值记录所属类的信息计算出缺失值,从而得到目标数据集。
50.在本技术实施例中,首先,确定待处理数据集中的完整数据集和缺失数据集;然后,根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象;再根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合;最后,根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填充,得到目标数据集;如此利用可变的邻域集合替代传统固定的 eps邻域,自适应的根据数据的密集程度自动调整邻域大小,从而能够对非均匀数据集进行缺失值填充,从而提高了缺失值记录填充的准确性。
51.本技术实施例提供一种数据填充方法,图2为本技术实施例提供的另一种数据填充方法的流程示意图,如图2所示,所述方法包括:
52.步骤s210,确定待处理数据集中的完整数据集和缺失数据集。
53.这里,首先将待处理数据集按照数据的完整性分成两个子数据集,即完整数据集和缺失值数据集。所述完整数据集,保存有完整数据集的整体信息;而针对待处理数据集,采用数据缺失率大于0.5即被淘汰的规则,筛选出有价值的缺失值数据,组成所述缺失值数据集。进一步地,可以处理缺失值数据集,使之成为完整的数据集,从而保证数据的完整性。
54.步骤s220,在以所述第一数据对象的邻域半径范围内,确定离所述第一数据对象第minpts个最近的第二数据对象。
55.这里,所述第一数据对象为所述完整数据集中任意一个数据对象,在所述第一数据对象的邻域半径范围内存在minpts个数据对象。
56.这里,所述第二数据对象为在以所述第一数据对象的邻域半径范围内,离所述第一数据对象第minpts个最近的第二数据对象最远的数据对象,即离所述第一数据对象最远的邻域点。
57.步骤s230,确定所述邻域半径和所述第一距离之间的最小值。
58.这里,所述第一距离为所述第一数据对象与所述第二数据对象之间的距离也就是在特定的邻域半径范围内,与第一数据对象相距最远的数据对象之间的距离。
59.这里,通过最小值函数(min)确定所述邻域半径eps和所述第一距离之间的最小值。
60.步骤s240,在所述完整数据集中,将与所述第一数据对象的距离小于等于所述最小值的数据对象的集合,作为所述第一数据对象的邻域集合。
61.这里,若所述第一数据对象表示为a,则a的邻域集合表示为n
minpts
(a),指在a的邻域半径eps范围内,与所述第一数据对象的距离小于等于所述最小值的数据对象的集合(包含第一数据对象a)。
62.步骤s250,根据所述第一数据对象的邻域集合,对所述缺失数据集进行缺失值填
充,得到目标数据集。
63.这里,首先按照步骤s220至s240的方式,遍历得到所述完整数据集中每一数据对象的邻域集合,然后按照dbscan算法对所述缺失数据集进行缺失值填充,得到目标数据集。
64.在实施过程中,可以按照以下方式实现:根据所述每一数据对象的邻域集合对所述完整数据集进行聚类,得到若干分类,然后对缺失数据集中的缺失值记录逐一地与这若干分类进行相似度比较,得到相似度最大的那个类来标记缺失值记录,最后可以根据缺失值记录所属类的信息计算出缺失值,从而得到目标数据集即完整的数据集。
65.在本技术实施例中,通过在以所述第一数据对象的邻域半径范围内,确定离所述第一数据对象第minpts个最近的第二数据对象,然后确定邻域半径和第一数据对象与第二数据对象之间距离之中的最小值,最后,在所述完整数据集中,将与所述第一数据对象的距离小于等于所述最小值的数据对象的集合,作为所述第一数据对象的邻域集合;如此,利用可变的minpts邻域替代传统的eps 邻域,自适应的根据数据的密集程度自动调整邻域大小,从而能够对非均匀数据集进行缺失值填充,从而提高了缺失值记录填充的准确性。
66.本技术实施例提供一种数据填充方法,图3为本技术实施例提供的又一种数据填充方法的流程示意图,如图3所示,所述方法包括:
67.步骤s310,确定待处理数据集中的完整数据集和缺失数据集。
68.步骤s320,根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象。
69.步骤s330,根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合。
70.上述步骤s310至s330与实施例一中的步骤s110至s130一样,为避免重复,在此不作赘述。
71.步骤s340,根据所述第一数据对象的邻域集合,将所述完整数据集进行聚类,得到不同类别的数据子集。
72.这里,首先按照步骤s320至s340的方式,遍历得到所述完整数据集中每一数据对象的邻域集合,然后按照dbscan算法将所述完整数据集进行聚类,得到不同类别的数据子集。
73.需要说明的是,dbscan算法的核心思想是:如果两个核心对象密度互连,那么这两个核心对象就是强连通的,在同一个强连通分量中的核心对象属于同一个类。其中用到以下定义:如果数据对象a的邻域集合至少包含最小数目 minpts的对象,则称该数据对象a为核心对象;对于数据集d,设数据对象b在核心对象a的邻域集合内,则数据对象b从核心对象a出发是直接密度可达的;如果存在一条数据对象链a1,a2,

,an,设p=a1,q=an,ai∈d(1≤i≤n),a
i 1
是从ai关于邻域集合直接密度可达的,那么数据对象p是从数据对象q关于邻域集合密度可达的;对于数据集d中的两个数据对象a和b,如果a是从数据对象b关于邻域集合密度可达的,并且b是从数据对象a关于邻域集合密度可达的,那么数据对象a和b关于邻域集合密度互连,即满足有向图的强连通性。
74.进一步地,按照dbscan算法将所述完整数据集进行聚类,得到不同类别的数据子集的过程,可以通过以下步骤实现:
75.步骤s3401,根据所述第一数据对象的邻域集合,确定所述完整数据集中的至少一
个强连通分量。
76.这里,所述强连通分量里边的任意两个数据对象都是互相可达的,即每两个数据对象满足强连通,例如,有向图中存在两个数据对象u和v,使得能够找到有向路径从u到v并且也能够找到有向路径从v到u,则称u和v是强连通的。
77.在实施过程中,按照搜索有向图的强连通分量的经典算法(tarjan算法)确定所述完整数据集中的至少一个强连通分量,一种可能的实现方式:
78.第一步,确定所述完整数据集中的至少两个核心对象。
79.这里,所述核心对象的邻域集合中包括的数据对象的个数大于等于所述最小对象数目。
80.第二步,若所述至少两个核心对象中存在第一核心对象和第二核心对象关于所述核心对象的邻域集合密度互连,将包含所述第一核心对象和所述第二核心对象的数据集合,作为一个强连通分量。
81.这里,所述第一核心对象为所述至少两个核心对象中的任一个,所述第二核心对象与所述第一核心对象不同。
82.步骤s3402,根据所述至少一个强连通分量中,每个强连通分量所包括数据对象的个数,确定所述每个强连通分量的类别。
83.这里,通过计算每个强连通分量中的数据对象的个数,判断该强连通分量是否满足类的条件。
84.示例地,如果一个强连通分量中的数据对象的个数大于等于最小对象数目 minpts,即满足类条件,那么这个强连通分量就是单独一个类。对于不满足类条件的强连通分量,遍历该强连通分量中数据对象的邻域集合中的数据对象即邻域数据点,如果存在邻域数据点已经标记了类别,就用该类别标记此强连通分量中的所有数据对象。如果邻域数据点没有标记类别,那么该强连通分量就定义为一个新的类。
85.步骤s3403,按照所述每个强连通分量的类别,对所述完整数据集进行聚类,得到不同类别的数据子集。
86.这里,通过步骤s3402标记了完整数据集中每个强连通分量的类别,按照所述类别将所述完整数据集分为不同类别的数据子集。假设共得到k个类,记为c1,c2,...,ck。
87.进一步地,所述方法还包括:将所述完整数据集中不属于任何一个强连通分量的数据对象,加入类边界集;根据所述第一数据对象的邻域集合,确定所述类边界集中数据对象的邻域数据对象;以所述邻域数据对象的所属类别,确定所类边界集中数据对象的类别。
88.这里,由于在使用tarjan算法寻找强连通分量时候,只遍历核心对象,而类边界集中数据对象即边界点是由核心对象直接密度可达的,所以用边界点的邻域集合内的数据点所属的类别标记边界点。
89.步骤s350,根据所述缺失数据集中的记录对象与所述不同类别的数据子集的中心之间的第二距离,对所述缺失数据集进行缺失值填充。
90.这里,所述缺失数据集中的记录对象为缺失值数据,对所述缺失数据集进行缺失值填充,也就是对所述记录对象进行填充得到完整的数据。
91.这里,所述第二距离为所述记录对象与每一类别的数据子集的中心之间的距离,即所述第二距离可以是多个不同的距离。
92.这里,通过所述第二距离对缺失数据集进行缺失值填充,也就是对比所述记录对象与所述不同类别的数据子集的中心之间的距离关系,判断所述记录对象属于哪一类数据子集,进而进行填充。可以通过以下步骤实现:
93.步骤s3501,根据所述缺失数据集中的记录对象与所述不同类别的数据子集的中心之间的第二距离,标记所述记录对象的类别。
94.进一步地,可以通过以下方式标记所述记录对象的类别:确定所述第一类数据子集与所述第二类数据子集之间的第三距离,和所述记录对象与所述第一类数据子集之间的第四距离;若所述第三距离大于两倍的所述第四距离,以所述第一类数据子集的类别,标记所述记录对象的类别。
95.这里,由于两个类之间的距离已经在聚类的过程中已知,只需判断第一类数据子集与第二类数据子集之间的距离,大于记录对象到第一类数据子集的两倍距离,根据三角不等式性质(即三角形两边之和大于第三边),就可以得出记录对象到第一类数据子集的距离小于到第二类数据子集的距离,直接以第一类数据子集的类别,标记该记录对象的类别。从而不用比较所述记录对象到第二类数据子集的距离,避免了一些不必要的计算与比较,提高了算法的运行效率。
96.步骤s3502,根据所述记录对象的类别对应的数据子集的平均值,填充所述记录对象。
97.这里,通过上述步骤s3501快速地标记记录对象即缺失值的类别,并使用该类数据子集的平均值填充缺失值,从而将缺失值记录变成完整记录。
98.步骤s360,将所述填充后的缺失数据集和所述完整数据集合并,得到所述目标数据集。
99.这里,通过上述步骤s350所述的方法逐一填充缺失数据集中的记录对象,得到填充后的缺失数据集,与完整数据集进行合并,也可以将每一处理后的缺失值记录与完整数据集分别进行合并,从而得到目标数据集即完整的数据集。
100.在本技术实施例中,首先通过特定的邻域半径和最小对象数目得到第一数据对象的邻域集合,然后在计算缺失值记录与得到的聚类中心之间的距离过程中,通过三角不等式原理来计算缺失值记录与类的相似度,避免了一些不必要的计算与比较,尤其随着数据量的增大,缺失值记录数量增多,能够极大的减少相似度计算量,从而提高缺失值填充算法的效率。
101.传统的dbscan算法只能填充均匀密度数据集,因为传统的dbscan算法使用固定的eps邻域半径进行聚类,可以对密度均匀的数据集有很好的聚类效果,但却不能处理非均匀密度数据集。dbscan算法存在以下两个缺点:
102.首先,在选取邻域半径参数时,如果选取的邻域半径eps过大,会将噪点划分到类中,识别不了噪点,也会将两个高密度的类划分到一类中。但如果选取的邻域半径eps过小,那么密度较小的类就无法识别,并且会被标记为噪点,影响聚类的质量。图4a为本技术实施例提供的数据集的类别示意图。从图4a中可以看出,如果选取eps1作为邻域半径,类3能够正常聚类,但是类1和类2 就会被划分到同一个类中,如果选取eps2作为邻域半径,类1和类2能够被分成两个类,而不会划分到一起,但此时类3却不满足核心点条件会被识别为噪点。以上两种情况都不是令人满意的结果,正确的结果应该是该非均匀密度数据集被划分成3
个类,即类1、类2和类3。
103.其次,在使用dbscan填充缺失值记录时,首先需要对完整数据集进行聚类,得到k个分类,然后逐一计算缺失值记录与这k个类的相似度,取相似度最大的类来标记缺失值记录,随着缺失值记录数量的递增,会极大浪费算法的运行时间。
104.针对以上两个缺点,本技术实施例首先要改进传统的dbscan算法,使其能够对非均匀密度数据集进行聚类,从而提高缺失值填充的准确度。其次,随着缺失值记录数量的递增,会极大浪费算法的运行时间,需要对缺失值填充的过程进行改进,进一步提高填充算法的运行效率。
105.图4b为本技术实施例提供的一种数据填充方法的整体实现流程示意图。如图4b所述,该方法主要包括以下几个步骤:
106.s410,按照数据完整性处理数据集d,形成完整数据集c和缺失值数据集 m。
107.这里,将数据集按照数据的完整性分成两个子数据集,即完整数据集c和缺失值数据集m。完整数据集c保存了整个数据集的整体信息。对于缺失值数据集m,采用数据缺失率大于0.5即被淘汰的规则,筛选出数据集d中有价值的缺失值数据,组成缺失值数据集m,后续的操作就是为了处理缺失值数据集 m,使之成为完整的数据集,从而保证数据的完整性。
108.s420,使用改进的dbscan算法对完整数据集c进行聚类。
109.这里,为了对非均匀密度数据集进行聚类,本技术实施例对传统的dsscan 算法进行改进。改进后的算法中相关定义如下:
110.定义1(minpts邻域):数据集d中数据对象a的minpts邻域是指在其邻域半径eps范围内距离最近的minpts个数据对象的集合(包含数据对象a),表示为 n
minpts
(a)。定义为n
minpts
(a)={b∈d|dist(a,b)≤min(eps,dis(a,ka)),其中,b为数据集d中除数据对象a外的任意数据对象,ak表示离数据对象a第minpts个最近的邻域对象,dis(a,ak)表示a与ak的欧式距离,eps为邻域半径。
111.定义2(核心对象):若数据对象a的minpts邻域内至少包含最小数目minpts 个数据对象,即满足|n
minpts
(a)|>=minpts,那么数据对象a就是核心对象。
112.定义3(直接密度可达):对于数据集d,若数据对象b在核心对象a的minpts 邻域内,那么数据对象b从核心对象a出发是直接密度可达的。
113.定义4(密度可达):对于数据集d,如果存在一条数据对象链a1,a2,

,an,设p=a1,q=an,ai∈d(1≤i≤n),a
i 1
是从ai关于邻域半径eps和minpts邻域直接密度可达的,那么数据对象p是从数据对象q关于eps和minpts邻域密度可达的。
114.定义5(密度互连):对于数据集d中的两个数据对象a和b,如果a是从数据对象b关于eps和minpts邻域密度可达的,并且b是从数据对象a关于eps和 minpts邻域密度可达的,那么数据对象a和b关于eps和minpts邻域密度互连,即有向图的强连通性。
115.定义6(类):对于数据集d,类c由类核心集c
core
和类边界集c
border
组成。其中,类核心集c
core
定义为数据集d的一个非空子集且满足以下条件:1)对于如果p∈c
core
并且q与p密度互连,那么q∈c
core
;2)对于那么点p和点q是密度互连的;3)c
core
中任意数据对象都是核心对象,且c
core
≥minpts。类边界集c
border
是不考虑路径的方向与类核心集c
core
存在连接路径的点的集合。
116.定义7(噪声点):不属于任何类的点就是噪声点。
117.需要说明的是,dbscan算法的核心思想是:如果两个核心对象密度互连,那么这两个核心对象就是强连通的,在同一个强连通分量中的核心对象属于同一个类。而基于深度优先搜索的算法(tarjan)是搜索有向图的强连通分量的经典算法。
118.本技术实施例通过对tarjan算法略微改变,在tarjan算法递归遍历数据集中数据对象的minpts邻域的时候只遍历核心对象,而对于不满足核心对象的数据对象加入边界点集合(borderset)待定类别。
119.在实施过程中,通过tarjan算法找出非均匀密度数据集中多个强连通分量,计算每个强连通分量中的数据对象的个数,看该强连通分量是否满足类的条件。计算每个强连通分量中数据对象的个数,如果大于等于minpts,即满足类条件,那么这个强连通分量就是单独一个类。假设共得到k个类,记为c1,c2,...,ck。对于不满足类条件的强连通分量,遍历该强连通分量中数据对象的minpts邻域数据对象,如果存在邻域数据对象已经标记了类别,就用该类标记此强连通分量中的所有数据对象。如果邻域数据对象没有标记类别,那么该强连通分量就定义为一个新的类。由于在使用tarjan算法寻找强连通分量时候,只遍历核心对象,而边界点是由核心对象直接密度可达的,所以用边界点minpts邻域范围内的数据对象所属类标记边界点。
120.这里,dbscan算法的改进步骤可以通过以下方式实施,以数据集d,参数eps和minpts邻域为输入,最后输出为含有类标记的结果数据集d':
121.第一步:计算每一个数据对象的minpts邻域并保存,使用修改后的tarjan 算法递归遍历数据对象minpts邻域的时候只遍历核心对象,找到数据集中的所有强连通分量,而对于不满足核心对象的数据对象加入边界集待定类别。
122.第二步:计算每个强连通分量中数据对象的个数,如果大于等于minpts,即满足类条件,那么这个强连通分量就是单独一个类。假设共得到k个类,记为c1,c2,...,ck。
123.第三步:对于不满足类条件的强连通分量,遍历该强连通分量中数据对象的minpts邻域数据对象,如果存在邻域数据对象已经标记了类别,就用该类标记此强连通分量中的所有数据对象。如果邻域数据对象没有标记类别,那么该强连通分量就定义为一个新的类。
124.第四步:逐一遍历边界集中数据对象的minpts邻域数据对象,使用已标记类别的邻域数据对象所属类标记边界点。
125.第五步:不属于任何类的数据对象即为噪声点。
126.需要说明的是,虽然改进后的算法能够自适应的根据数据集密度变化自动调整邻域大小,从而识别出非均匀密度数据集,但仍然需要输入参数:邻域半径eps和minpts,本技术实施例和传统的dbscan算法一样使用k-dist图来选取合适的eps和minpts。k-dist是指距离某个数据对象第k个最近的数据对象的距离。而k-dist图就是将数据集中每一个数据对象的k-dist值作为纵坐标的数值,这样就得到了n个坐标值,n是数据集中数据对象的个数,将这n个坐标值按降序排序,然后连成一条曲线,这样就能够根据曲线的变化规律得出参数eps和 minpts。
127.图4c为本技术实施例提供的数据集的k-dist排序图,如图4c所示,通过选取k-dist排序图中突变较大的点作为阀值点,对应的纵坐标值作为参数eps,而阀值点上面的数据对象的距离相距较远可识别为噪声点,下面的数据对象相距较近,是数据集中的类。而参
数minpts的选取是通过比较多个k-dist图,然后选择突变较大的k-dist图作为标准,对应的k就是参数minpts。
128.s430,使用三角不等式原理,标记缺失值数据集m中的缺失值记录的所属类别。
129.在使用dbscan填充缺失值的时候,通过对完整数据集c聚类,形成了k 个聚类即c1,c2,...,ck,然后通过对缺失值数据集m进行缺失值填充时候,需要计算数据集m中每条数据对象与上面k个聚类的相似度,在缺失值数据集m的数据量很大的时候,计算缺失值记录与类的相似度需要浪费很多的时间,由于计算相似度距离时使用的是欧几里得距离公式,而欧式距离满足三角不等式性质,假设c1和c2是数据集的两个聚类中心,则对于任意一个缺失值对象b,满足如下公式(1):
130.d(c1,c2)≤d(b,c1) d(b,c2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1);
131.即两个聚类中心c1和c2的距离小于b到c1距离加上b到c2的距离,如果 d(c1,c2)≥2d(b,c1),就可以得出结论d(b,c2)≥d(b,c1)。图4d为本技术实施例提供的三角不等式在填充算法中的应用示意图,从图4d中可以看出,两个聚类中心c1和c2的距离大于两倍的缺失值对象b到c1的距离,即d(c1,c2)≥2d(b,c1),就可以得出d(b,c2)≥d(b,c1),即b到c2的距离大于b到c1距离,这样就可以不用计算d(b,c2),避免了一些不必要的计算与比较,提高了算法的运行效率。
132.s440,填充缺失值记录,并合并处理后的缺失值数据集m'和完整数据集c。
133.这里,通过使用三角不等式原理,可以快速的标记缺失值的类型,并使用该类的平均值填充缺失值,从而将缺失值记录变成完整记录。然后将处理后的缺失值记录和完整数据集c进行合并,从而得到完整的数据集。
134.本技术实施例利用可变的minpts邻域替代传统的eps邻域,自适应的根据数据的密集程度自动调整邻域大小,从而能够对非均匀数据集进行缺失值填充,从而提高了缺失值记录填充的准确性,解决了传统的dbscan填充方法不能处理非均匀密度数据集,并且填充效率低的问题。同时通过三角不等式原理来计算缺失值记录与类的相似度,可以减少计算量,尤其随着数据量的增大,缺失值记录数量增多,能够极大的减少相似度计算量,从而提高缺失值填充算法的效率。
135.本技术实施例提供一种数据填充装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。
136.图5为本技术实施例提供的一种数据填充装置的组成结构示意图,如图5 所示,所述数据填充装置500包括:第一确定模块510、第二确定模块520、第三确定模块530和填充模块540,其中:
137.所述第一确定模块510,用于确定待处理数据集中的完整数据集和缺失数据集;
138.所述第二确定模块520,用于根据特定的邻域半径和最小对象数目,为所述完整数据集中的第一数据对象,确定第二数据对象;
139.所述第三确定模块530,用于根据所述邻域半径和所述第一数据对象与所述第二数据对象之间的第一距离,在所述完整数据集中,确定所述第一数据对象的邻域集合;
140.所述填充模块540,用于根据所述第一数据对象的邻域集合,对所述缺失数据集进
行缺失值填充,得到目标数据集。
141.在一些实施例中,所述第二确定模块520,还用于在以所述第一数据对象的邻域半径范围内,确定离所述第一数据对象第minpts个最近的第二数据对象。
142.在一些实施例中,所述第三确定模块530,还包括第一确定单元和第二确定单元,其中:所述第一确定单元,用于确定所述邻域半径与所述第一距离之间的最小值;所述第二确定单元,用于在所述完整数据集中,将与所述第一数据对象的距离小于等于所述最小值的数据对象的集合,作为所述第一数据对象的邻域集合。
143.在一些实施例中,所述填充模块540包括聚类单元、填充单元和合并单元,其中:所述聚类单元,用于根据所述第一数据对象的邻域集合,将所述完整数据集进行聚类,得到不同类别的数据子集;所述填充单元,用于根据所述缺失数据集中的记录对象与所述不同类别的数据子集的中心之间的第二距离,对所述缺失数据集进行缺失值填充;所述合并单元,用于所述填充后的缺失数据集和所述完整数据集合并,得到所述目标数据集。
144.在一些实施例中,所述聚类单元包括第一确定子单元、第二确定子单元和聚类子单元,其中:所述第一确定子单元,用于根据所述第一数据对象的邻域集合,确定所述完整数据集中的至少一个强连通分量;所述第二确定子单元,用于根据所述至少一个强连通分量中,每个强连通分量所包括数据对象的个数,确定所述每个强连通分量的类别;所述聚类子单元,用于按照所述每个强连通分量的类别,对所述完整数据集进行聚类,得到不同类别的数据子集。
145.在一些实施例中,所述第一确定子单元,还用于确定所述完整数据集中的至少两个核心对象;若所述至少两个核心对象中存在第一核心对象和第二核心对象关于所述核心对象的邻域集合密度互连,将包含所述第一核心对象和所述第二核心对象的数据集合,作为一个强连通分量;其中,所述第一核心对象为所述至少两个核心对象中的任一个,所述第二核心对象与所述第一核心对象不同。
146.在一些实施例中,所述填充模块还包括分类单元、第三确定单元和第四确定单元,其中:所述分类单元,用于将所述完整数据集中不属于任何一个强连通分量的数据对象,加入类边界集;所述第三确定单元,用于根据所述第一数据对象的邻域集合,确定所述类边界集中数据对象的邻域数据对象;所述第四确定单元,用于以所述邻域数据对象的所属类别,确定所类边界集中数据对象的类别。
147.在一些实施例中,所述填充单元,还包括标记子单元和填充子单元,其中:所述标记子单元,用于根据所述缺失数据集中的记录对象与所述不同类别的数据子集的中心之间的第二距离,标记所述记录对象的类别;所述填充子单元,用于根据所述记录对象的类别对应的数据子集的平均值,填充所述记录对象。
148.在一些实施例中,所述标记子单元,还用于若所述第一类数据子集和所述第二类数据子集之间的第三距离,大于两倍的所述记录对象和所述第一类数据子集之间的第四距离,以所述第一类数据子集的类别,标记所述记录对象的类别。
149.这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
150.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的数据填
充方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得包含该存储介质的设备自动测试线执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
151.对应地,本技术实施例提供一种数据填充设备,例如计算机设备,图6为本技术实施例提供的一种数据填充设备的硬件实体示意图,如图6所示,该设备600的硬件实体包括:处理器601、通信接口602和存储器603,其中
152.处理器601通常控制设备600的总体操作。
153.通信接口602可以使设备600通过网络与其他终端或服务器通信。
154.存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
155.对应地,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据填充方法中的步骤。
156.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
157.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
158.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
159.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
160.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显
示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本技术实施例方案的目的。
161.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
162.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备自动测试线执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
163.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
164.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
165.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献