CN110390011A - 数据分类的方法和装置 - Google Patents

数据分类的方法和装置 Download PDF

Info

Publication number
CN110390011A
CN110390011A CN201810325353.7A CN201810325353A CN110390011A CN 110390011 A CN110390011 A CN 110390011A CN 201810325353 A CN201810325353 A CN 201810325353A CN 110390011 A CN110390011 A CN 110390011A
Authority
CN
China
Prior art keywords
data
sorted
classification
coding
characteristic component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810325353.7A
Other languages
English (en)
Inventor
张明阳
吴明静
宋增超
胡涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810325353.7A priority Critical patent/CN110390011A/zh
Publication of CN110390011A publication Critical patent/CN110390011A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据分类的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取原数据空间中的待分类数据;对待分类数据进行编码,使得在原数据空间中相似的数据在编码空间中也相似;根据待分类数据的编码获取待分类数据的类别。该实施方式能够通过对数据进行编码,利用原数据空间中相似的数据在编码空间中也相似的特性来进行数据分类,实现了一种新型的K近邻算法。

Description

数据分类的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据分类的方法和装置。
背景技术
随着信息爆炸时代的来临,互联网上充斥着大量的近重复信息,如何有效地识别它们是一个很有意义的课题。例如,对于搜索引擎的爬虫系统来说,收录近乎重复的网页是毫无意义的,只会造成存储和计算资源的浪费;同时,展示重复的信息对于用户来说也并不是最好的体验。同样地,搜索引擎在接收到用户的搜索请求时,对用户输入的信息进行分类并返回用户想要的结果也很重要。因此,如何对数据进行分类以便存储、查询和管理已变得越来越重要。
目前,常用的对数据进行分类的算法例如K近邻(KNN:K-Nearest Neighbor)分类算法,它是十大数据挖掘算法之一。由于其思想简单、易于实现,K近邻算法已广泛应用于数据挖掘领域。但是在大数据环境下,由于K近邻算法要计算待分类样本与所有训练样本之间的距离,所以K近邻算法的计算复杂度非常高,计算耗时也很长,在某些情况下,甚至会变得不可行。
为了解决这一问题,现有的技术方案大致可分为如下三类:
(1)基于样本选择的方法:从大数据集中选择一个子集来代替原来的大数据集,通过计算待分类样本与该子集中的所有训练样本之间的距离来对待分类样本进行分类;
(2)基于近似搜索的方法:在大数据集中寻找待分类样本的近似近邻,通过计算待分类样本与其近似近邻之间的距离来对待分类样本进行分类,以避免计算待分类样本与大数据训练集中所有训练样本之间的距离;
(3)并行或分布式方法:将寻找待分类样本的K近邻的工作以并行(例如:基于MapReduce的K近邻算法,一般可离线进行)或分布式的方式(例如:基于Spark的K近邻算法)进行,以解决大数据K近邻分类问题。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)基于样本选择的方法,样本的分类结果依赖于选择的子集,当选择的子集不同时结果可能会不同,分类结果不确定;
(2)基于近似搜索的方法,样本的分类结果依赖于选择的近似近邻,当选择的近似近邻不同时结果可能会不同,分类结果不确定;
(3)并行或分布式方法,虽然可以基于大数据集进行样本分类,但是该方法的处理速度较慢,耗时较长,效率比较低。
发明内容
有鉴于此,本发明实施例提供一种数据分类的方法和装置,能够通过对数据进行编码,利用原数据空间中相似的数据在编码空间中也相似的特性来进行数据分类,实现了一种新型的K近邻算法。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据分类的方法。
一种数据分类的方法,包括:获取原数据空间中的待分类数据;对所述待分类数据进行编码,使得在所述原数据空间中相似的数据在编码空间中也相似;根据所述待分类数据的编码获取所述待分类数据的类别。
可选地,利用Simhash算法对所述待分类数据进行编码。
可选地,对所述待分类数据进行编码的步骤包括:将所述待分类数据映射到海明空间,以实现对所述待分类数据进行编码。
可选地,对所述待分类数据进行编码的步骤包括:对所述待分类数据的每个特征分量,使用哈希算法对所述特征分量进行运算以得到所述特征分量的二进制哈希签名值;对所述二进制哈希签名值进行第一变换得到第一变换码,所述第一变换包括:若所述二进制哈希签名值的第i位为0,则将所述第i位置为-1,否则置为1;对每个特征分量的第一变换码进行加权以得到所述每个特征分量的第二变换码;将所述待分类数据的所有特征分量的第二变换码按位相加得到和向量;对所述和向量进行第三变换以得到所述待分类数据的编码,其中,所述第三变换包括:若所述和向量的第j个特征分量大于0,则将所述第j个特征分量置为1,否则置为0。
可选地,根据所述待分类数据的编码获取所述待分类数据的类别的步骤包括:根据所述待分类数据的编码,从预设的编码与类别的对应关系数据中查找所述待分类数据对应的类别;其中,若查找到的类别有多个,则根据多数投票规则确定所述待分类数据的类别。
可选地,所述预设的编码与类别的对应关系数据保存在HBase数据库中。
根据本发明实施例的另一方面,提供了一种数据分类的装置。
一种数据分类的装置,包括:获取模块,用于获取原数据空间中的待分类数据;编码模块,用于对所述待分类数据进行编码,使得在所述原数据空间中相似的数据在编码空间中也相似;分类模块,用于根据所述待分类数据的编码获取所述待分类数据的类别。
可选地,利用Simhash算法对所述待分类数据进行编码。
可选地,所述编码模块还用于:将所述待分类数据映射到海明空间,以实现对所述待分类数据进行编码。
可选地,所述编码模块还用于:对所述待分类数据的每个特征分量,使用哈希算法对所述特征分量进行运算以得到所述特征分量的二进制哈希签名值;对所述二进制哈希签名值进行第一变换得到第一变换码,所述第一变换包括:若所述二进制哈希签名值的第i位为0,则将所述第i位置为-1,否则置为1;对每个特征分量的第一变换码进行加权以得到所述每个特征分量的第二变换码;将所述待分类数据的所有特征分量的第二变换码按位相加得到和向量;对所述和向量进行第三变换以得到所述待分类数据的编码,其中,所述第三变换包括:若所述和向量的第j个特征分量大于0,则将所述第j个特征分量置为1,否则置为0。
可选地,所述分类模块还用于:根据所述待分类数据的编码,从预设的编码与类别的对应关系数据中查找所述待分类数据对应的类别;其中,若查找到的类别有多个,则根据多数投票规则确定所述待分类数据的类别。
可选地,所述预设的编码与类别的对应关系数据保存在HBase数据库中。
根据本发明实施例的又一方面,提供了一种数据分类的电子设备。
一种数据分类的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的数据分类的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的数据分类的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过获取原数据空间中的待分类数据,并对其进行编码,使得在原数据空间中相似的数据在编码空间中也相似,然后根据待分类数据的编码获取待分类数据的类别,可以充分利用原数据空间中相似的数据在编码空间中也相似的特性来进行数据分类,实现了一种新型的K近邻算法;通过将数据的编码与类别的对应关系数据保存到HBase数据库中,可以充分利用HBase数据库的数据存储模型和实时性秒级查询的优点,从而实现了基于大数据的数据高效分类。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据分类的方法的主要流程的示意图;
图2是根据本发明实施例的数据分类的装置的主要模块的示意图;
图3是本发明实施例可以应用于其中的示例性系统架构图;
图4是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了解决现有技术中存在的问题,本发明提供了一种数据分类的方法,通过对数据进行编码,然后利用编码方式具有的原数据空间中相似的数据在编码空间中也相似的特性对K近邻分类算法进行改进,从而可以更高效地对大数据环境下的数据进行分类。本发明的技术方案在实施时,只要是具有可以使得原数据空间中相似的数据在编码空间中也相似这个特性的编码方式均可以实现本发明的功能,该编码方式并不局限于本发明的实施例中所介绍的算法。
在本发明的一个实施例中,利用Simhash算法对待分类数据进行编码。SimHash算法是一种局部敏感哈希算法,是谷歌(Google)公司的研究人员Manku等人提出的一种网页去重的相似性估计方法。SimHash和传统哈希Hash最大的不同在于:传统的Hash函数虽然也可以用于通过映射来比较数据的是否相同,但是对于差距很小(例如只有一个字节)的数据也可能会被映射成两个完全不同的哈希结果,因此,根据传统的Hash函数无法直观地得到数据的相似程度;而SimHash对相似的数据的哈希映射结果也相似,因此,根据数据的SimHash编码的相似程度,即可反映出原数据空间中数据的相似程度。
图1是根据本发明实施例的数据分类的方法的主要流程的示意图。如图1所示,本发明实施例的数据分类的方法主要包括步骤S101至步骤S103。
步骤S101:获取原数据空间中的待分类数据;
步骤S102:对待分类数据进行编码,使得在原数据空间中相似的数据在编码空间中也相似;
步骤S103:根据待分类数据的编码获取待分类数据的类别。
对于搜索引擎或者推荐系统来说,一般是根据用户输入的搜索信息来进行结果显示。而用户输入的搜索信息并不一定能准确、全面地表达用户的想法,因此,需要对用户输入的搜索信息进行分析以尽量全面地涵盖用户的需求,并向用户显示搜索或推荐的结果。为了尽量全面地涵盖用户的需求,可以将用户输入的搜索信息关键词进行分类,进而向用户推荐该类别对应的结果。
在本发明的实施例中,通过统计原数据空间中一段时间(例如:近3个月)内的用户输入的搜索信息数据以得到用于进行数据分类的训练集,其是一个大数据集;然后使用本发明的数据分类的方法对原数据空间大数据集中的数据进行编码以得到编码空间的数据编码,并根据原数据空间中用户的不同搜索信息数据的属性信息(例如:用户对搜索信息数据对应的显示结果的操作情况等)对编码空间中的数据编码的类别进行定义,可以实现使用k近邻算法对对待分类数据(即:用户输入的搜索信息)进行分类。
本发明的实施例中,为了使用k近邻算法对对待分类数据进行分类(即:确定待分类数据的类别),需要将训练集(即:原数据空间中一段时间内用户的搜索信息数据形成的大数据集)中的所有数据预先进行数据训练,以得到大数据集中每个数据的数据编码及类别的对应关系数据,并且,还可以将数据编码及类别的对应关系数据保存到数据库或数据表中,以便从数据库或数据表中进行查找使用。在本发明的实施例中,数据库例如是HBase。HBase是一个分布式的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库,具有高可靠性、高性能、面向列、可伸缩等多种优点,还可以实现实时性秒级查询,从而可以大大提高数据查询的效率。
对于给定的大数据集(作为训练集),为了得到大数据集中每个数据的数据编码及类别的对应关系数据,首先,可以利用SimHash算法对大数据集中的每个数据进行编码,具体地,可以利用SimHash算法将大数据集中的每个数据从原数据空间映射到海明Hamming空间,以得到大数据集对应的二进制编码集合;然后,根据数据的属性信息定义数据的编码与类别的对应关系,以得到大数据集中每个数据对应的类别;最后,以数据的编码作为行键rowkey,类别作为键值value保存到HBase数据库中,如此,即可通过数据训练得到编码与类别的对应关系数据。由于该数据训练过程一般是在对待分类数据进行分类之前进行的,因此,通过数据训练得到的编码与类别的对应关系数据即可作为预设的编码与类别的对应关系数据。
其中,数据对应的类别可以是将数据概化到较高层概念得到的,比如,连续值属性“收入”的数值可以概化为离散值:低、中、高;又比如,标称值属性“市”可概化到高层概念“省”。此外,数据的类别也可以是将数据进行预定的规范化得到的,比如,通过将给定属性的值按比例缩放以落入较小的区间(如[0,1]等),然后以区间作为数据的类别,等等。
下面介绍如何利用SimHash算法对大数据集和待分类数据进行编码,以使得在原数据空间中相似的数据在编码空间中也相似。
SimHash算法具有思想精巧、容易理解和实现的优点,其输入是一个向量,输出是一个f位的签名值。其中,签名值的位数f的取值应综合考虑存储成本以及数据集的大小来定,一般地,f应略大于训练集中所有数据的特征分量对应的二进制编码的最大长度。为了描述方便,假设输入为数据xi的d维特征集合xi=(xi1,xi2,…,xid),那么,利用SimHash算法对数据进行编码的过程如下:
(1)对于xi的每个特征分量,使用传统的Hash算法对该特征分量进行运算以得到f位的二进制哈希签名值b;
(2)对二进制哈希签名值b进行第一变换得到第一变换码,第一变换包括:若二进制哈希签名值b的第i位为0,则将第i位置为-1,否则置为1;
(3)对每个特征分量的第一变换码进行加权以得到每个特征分量的第二变换码,其中,权重可以根据实际使用情况预先设定;
(4)将xi的所有特征分量的第二变换码按位相加得到和向量;
(5)对和向量进行第三变换以得到xi的编码,其中,第三变换包括:若和向量的第j个特征分量大于0,则将第j个特征分量置为1,否则置为0。
下面结合具体的实施例说明SimHash算法的执行过程。假设样本数据x1=(1,2,3,4),样本数据x2=(1,2,3,5),签名值的位数f=4。利用SimHash算法对样本数据x1进行编码的过程如下:
其中,在上述过程中,自左向右,第1、2、3个方括号(“[]”)内的内容分别对应上述的步骤(1)、(2)、(3)的结果,第4和5个小括号(“()”)内的内容分别对应上述的步骤(4)和(5)的结果。由第3个方括号的内容可以看出,本发明的实施例中,样本数据x1的4个特征分量1、2、3、4对应的权重分别是1、3、1、3。在具体实现过程中,每个特征分量的权重可根据需要进行灵活设定。
同样地,假设在本实施例中,样本数据x2的4个特征分量1、2、3、5对应的权重同样分别是1、3、1、3。那么,利用SimHash算法对样本数据x2进行编码的过程如下:
其中,在上述过程中,自左向右,第1、2、3个方括号(“[]”)内的内容分别对应上述的步骤(1)、(2)、(3)的结果,第4和5个小括号(“()”)内的内容分别对应上述的步骤(4)和(5)的结果。
由以上对样本数据x1和x2进行编码的过程可以看出,在原数据空间相似的两个样本数据x1和x2(仅第4个特征分量不同),经过SimHash变换后,在Hamming空间它们也是相似的。
从上面的实施例可以看出,SimHash算法的设计思想简单明了:通过降维,将高维数据的特征向量映射成一个f位的二进制编码,在Hamming空间中两个样本数据对应的编码的相似程度,就能反映出原数据空间中两个样本数据的相似程度,其中在Hamming空间常用Hamming距离来衡量两个样本数据的相似度。
根据上述介绍的过程,即可实现利用SimHash算法对获取的用户输入的待分类数据进行编码。之后,即可根据待分类数据的编码获取待分类数据的类别。在具体实施时,可根据待分类数据的编码,从预设的编码与类别的对应关系数据中查找待分类数据对应的类别。其中,若查找到的类别有多个,则根据多数投票规则确定待分类数据的类别。多数投票规则,即首先判断该多个类别中哪个类别出现的次数最多,然后将该出现次数最多的类别作为待分类数据对应的类别。
根据本发明的实施例,由于预设的编码与类别的对应关系数据保存在HBase数据库中,因此,可以将待分类数据的编码作为行键rowkey,然后从HBase数据库中进行搜索,以获取对应的所有版本的类别。其中,当获取到的类别有多个时,通过对这些类别进行多数投票即可以获得待分类数据的类别。根据本发明实施例的技术方案,在原数据空间类别不同的两个数据,经过SimHash运算后得到的编码可能相同,因此,根据待分类数据的编码从数据库中查找待分类数据的类别时,得到的结果可能有多个。例如:在原数据空间,不同类别的两个数据x1=(1,2,3,4)和x3=(1,2,3,12),结合前述的实施例,利用SimHash算法对数据x1进行运算后得到的编码为(0,0,0,0),而根据如下的对数据x3进行编码的过程,可以看出利用SimHash算法对数据x3进行运算后得到的编码同样为(0,0,0,0):
下面举一个具体的实施例来模拟本发明的具体实现过程,假设有5个训练样本数据:training sample1、training sample2、training sample3、training sample4和training sample5。经SimHash运算后,这些训练样本数据由原数据空间映射到Hamming空间得到的二进制编码Hammingcode与类别lable的对应关系为:
Hamming code1+label1;
Hamming code2+label2;
Hamming code3+label3;
Hamming code4+label4;
Hamming code5+label5。
将映射到Hamming空间得到的二进制编码Hamming code作为行键rowkey,类别label作为键值value存储到HBase数据库中。假设训练样本数据training sample1、training sample2和training sample3映射之后的Hamming code相同,即:Hamming code1=Hamming code2=Hamming code3=Hamming code123。那么,当将映射之后的训练样本数据存储到HBase数据库中之后,其数据存储模型如表1所示。
表1
假设待分类数据xi经SimHash映射之后的二进制编码为Hamming code of xi=Hamming code123=Hamming code1=Hamming code2=Hamming code3。那么,以待分类数据xi的二进制编码Hamming code of xi=Hamming code123作为行键,从HBase数据库中即可获取所有版本的value值:即label1、label2、label3,然后对这3个类别进行多数投票即可获得待分类数据xi的类别。
为了验证本发明提出的算法的有效性,在分类能力保持基本相同的前提下,在5个用于机器学习的数据集UCI(University of California Irvine)数据集(如表2的数据集1-数据集5)上与现有的基于MapReduce的K近邻算法和基于Spark的K近邻算法进行了关于运行时间和测试精度的比较。这5个数据集中包括两个中小型数据集(数据集4和数据集5)和三个大数据集(数据集1-数据集3),这五个数据集的基本信息如表1所示。对于每一个数据集,可按照7:3的比例随机地将其划分为训练集Training sets和测试集Testing sets。并将测试集Testing sets随机地平均划分为6组,作为每一次测试的输入测试集进行使用。
表2
数据集 样本个数 属性个数 类别个数
数据集1 581012 54 7
数据集2 245057 3 2
数据集3 1025010 10 7
数据集4 58000 9 6
数据集5 1473 9 3
为描述方便,本发明提出的算法记为HBase-SimHash-KNN,基于MapReduce的K近邻算法记为MR-KNN,基于Spark的K近邻算法记为Spark-KNN。三种算法在五个数据集上运行时间(单位:秒)的详细信息分别如表3至表7所示,测试精确度的平均值比较(%)结果如表8所示。具体地,表3为三种算法在数据集1上的运行时间信息;表4为三种算法在数据集2上的运行时间信息;表5为三种算法在数据集3上的运行时间信息;表6为三种算法在数据集4上的运行时间信息;表7为三种算法在数据集5上的运行时间信息;表8为三种算法在5个数据集上测试精确度的平均值比较结果。
表3
测试集 MR-KNN Spark-KNN HBase-SimHash-KNN
测试集1 88.4 65.4 2.10
测试集2 89.9 66.5 2.82
测试集3 90.0 68.6 3.13
测试集4 90.0 64.6 3.38
测试集5 90.7 67.6 3.56
测试集6 88.7 69.6 3.76
平均时间 89.6 67.1 3.10
表4
测试集 MR-KNN Spark-KNN HBase-SimHash-KNN
测试集1 15.5 10.1 3.15
测试集2 15.3 9.8 3.56
测试集3 14.8 10.6 3.52
测试集4 15.6 11.7 3.26
测试集5 15.9 9.1 3.24
测试集6 17.1 11.2 2.97
平均时间 15.7 10.4 3.30
表5
测试集 MR-KNN Spark-KNN HBase-SimHash-KNN
测试集1 6.97 6.40 2.43
测试集2 6.17 5.99 1.94
测试集3 7.15 6.79 2.01
测试集4 7.01 6.34 1.98
测试集5 6.84 6.61 1.90
测试集6 7.76 6.64 2.52
平均时间 7.00 6.50 2.13
表6
测试集 MR-KNN Spark-KNN HBase-SimHash-KNN
测试集1 9.03 8.99 2.22
测试集2 8.70 8.42 2.67
测试集3 8.54 8.42 2.39
测试集4 9.12 9.04 2.59
测试集5 8.49 8.21 2.55
测试集6 8.72 8.60 2.46
平均时间 8.80 8.60 2.48
表7
测试集 MR-KNN Spark-KNN HBase-SimHash-KNN
测试集1 3.29 2.21 0.69
测试集2 2.82 2.38 0.91
测试集3 3.49 2.44 0.94
测试集4 3.77 2.26 0.95
测试集5 2.83 2.26 0.95
测试集6 3.49 2.21 0.83
平均时间 3.30 2.30 0.90
表8
数据集 MR-KNN Spark-KNN Hbase-SimHash-KNN
数据集1 94.9 94.9 92.2
数据集2 95.8 95.8 93.4
数据集3 63.7 63.7 61.4
数据集4 93.2 93.2 91.5
数据集5 63.6 63.6 61.4
从表3至表8所示的测试结果可以看出,在分类能力保持基本相同的前提下,本发明提出的算法HBase-SimHash-KNN在运行时间方面远远低于另外两种算法MR-KNN和Spark-KNN,大幅度地降低了KNN算法的运行时间消耗。主要原因在于, 本发明提出的数据分类方法HBase-SimHash-KNN充分利用了HBase数据库的数据存储模型和实时性秒级查询的优点,以及SimHash算法在Hamming空间中Hash签名的相似程度也能反映出原数据空间中样本的相似程度的优点,进而可以通过对K近邻算法进行改进以实现基于大数据集的快速分类。
图2是根据本发明实施例的数据分类的装置的主要模块的示意图。如图2所示,本发明实施例的数据分类的装置200主要包括获取模块201、编码模块202和分类模块203。
获取模块201用于获取原数据空间中的待分类数据;编码模块202用于对待分类数据进行编码,使得在原数据空间中相似的数据在编码空间中也相似;
分类模块203用于根据待分类数据的编码获取待分类数据的类别。
根据本发明的实施例的技术方案,利用Simhash算法对待分类数据进行编码。
根据本发明的实施例,编码模块202还可以用于:
将待分类数据映射到海明空间,以实现对待分类数据进行编码。
根据本发明的实施例的技术方案,编码模块202还可以用于:
对待分类数据的每个特征分量,使用哈希算法对特征分量进行运算以得到特征分量的二进制哈希签名值;
对二进制哈希签名值进行第一变换得到第一变换码,第一变换包括:若二进制哈希签名值的第i位为0,则将第i位置为-1,否则置为1;
对每个特征分量的第一变换码进行加权以得到每个特征分量的第二变换码;
将待分类数据的所有特征分量的第二变换码按位相加得到和向量;
对和向量进行第三变换以得到待分类数据的编码,其中,第三变换包括:若和向量的第j个特征分量大于0,则将第j个特征分量置为1,否则置为0。
本发明的分类模块203还可以用于:根据待分类数据的编码,从预设的编码与类别的对应关系数据中查找待分类数据对应的类别;其中,若查找到的类别有多个,则根据多数投票规则确定待分类数据的类别。
根据本发明的实施例,预设的编码与类别的对应关系数据保存在HBase数据库中。
根据本发明实施例的技术方案,通过获取原数据空间中的待分类数据,并对其进行编码,使得在原数据空间中相似的数据在编码空间中也相似,然后根据待分类数据的编码获取待分类数据的类别,可以充分利用原数据空间中相似的数据在编码空间中也相似的特性来进行数据分类,实现了一种新型的K近邻算法;通过将数据的编码与类别的对应关系数据保存到HBase数据库中,可以充分利用HBase数据库的数据存储模型和实时性秒级查询的优点,从而实现了基于大数据的数据高效分类。
图3示出了可以应用本发明实施例的数据分类的方法或数据分类的装置的示例性系统架构300。
如图3所示,系统架构300可以包括终端设备301、302、303,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备301、302、303通过网络304与服务器305交互,以接收或发送消息等。终端设备301、302、303上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备301、302、303可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器305可以是提供各种服务的服务器,例如对用户利用终端设备301、302、303所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据分类的方法一般由服务器305执行,相应地,数据分类的装置一般设置于服务器305中。
应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图4,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统400的结构示意图。图4示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、编码模块和分类模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,获取模块还可以被描述为“用于获取原数据空间中的待分类数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取原数据空间中的待分类数据;对所述待分类数据进行编码,使得在所述原数据空间中相似的数据在编码空间中也相似;根据待分类数据的编码获取待分类数据的类别。
根据本发明实施例的技术方案,通过获取原数据空间中的待分类数据,并对其进行编码,使得在原数据空间中相似的数据在编码空间中也相似,然后根据待分类数据的编码获取待分类数据的类别,可以充分利用原数据空间中相似的数据在编码空间中也相似的特性来进行数据分类,实现了一种新型的K近邻算法;通过将数据的编码与类别的对应关系数据保存到HBase数据库中,可以充分利用HBase数据库的数据存储模型和实时性秒级查询的优点,从而实现了基于大数据的数据高效分类。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (14)

1.一种数据分类的方法,其特征在于,包括:
获取原数据空间中的待分类数据;
对所述待分类数据进行编码,使得在所述原数据空间中相似的数据在编码空间中也相似;
根据所述待分类数据的编码获取所述待分类数据的类别。
2.根据权利要求1所述的方法,其特征在于,利用Simhash算法对所述待分类数据进行编码。
3.根据权利要求1或2所述的方法,其特征在于,对所述待分类数据进行编码的步骤包括:
将所述待分类数据映射到海明空间,以实现对所述待分类数据进行编码。
4.根据权利要求1或2所述的方法,其特征在于,对所述待分类数据进行编码的步骤包括:
对所述待分类数据的每个特征分量,使用哈希算法对所述特征分量进行运算以得到所述特征分量的二进制哈希签名值;
对所述二进制哈希签名值进行第一变换得到第一变换码,所述第一变换包括:若所述二进制哈希签名值的第i位为0,则将所述第i位置为-1,否则置为1;
对每个特征分量的第一变换码进行加权以得到所述每个特征分量的第二变换码;
将所述待分类数据的所有特征分量的第二变换码按位相加得到和向量;
对所述和向量进行第三变换以得到所述待分类数据的编码,其中,所述第三变换包括:若所述和向量的第j个特征分量大于0,则将所述第j个特征分量置为1,否则置为0。
5.根据权利要求1所述的方法,其特征在于,根据所述待分类数据的编码获取所述待分类数据的类别的步骤包括:
根据所述待分类数据的编码,从预设的编码与类别的对应关系数据中查找所述待分类数据对应的类别;其中,若查找到的类别有多个,则根据多数投票规则确定所述待分类数据的类别。
6.根据权利要求5所述的方法,其特征在于,所述预设的编码与类别的对应关系数据保存在HBase数据库中。
7.一种数据分类的装置,其特征在于,包括:
获取模块,用于获取原数据空间中的待分类数据;
编码模块,用于对所述待分类数据进行编码,使得在所述原数据空间中相似的数据在编码空间中也相似;
分类模块,用于根据所述待分类数据的编码获取所述待分类数据的类别。
8.根据权利要求7所述的装置,其特征在于,利用Simhash算法对所述待分类数据进行编码。
9.根据权利要求7或8所述的装置,其特征在于,所述编码模块还用于:
将所述待分类数据映射到海明空间,以实现对所述待分类数据进行编码。
10.根据权利要求7或8所述的装置,其特征在于,所述编码模块还用于:
对所述待分类数据的每个特征分量,使用哈希算法对所述特征分量进行运算以得到所述特征分量的二进制哈希签名值;
对所述二进制哈希签名值进行第一变换得到第一变换码,所述第一变换包括:若所述二进制哈希签名值的第i位为0,则将所述第i位置为-1,否则置为1;
对每个特征分量的第一变换码进行加权以得到所述每个特征分量的第二变换码;
将所述待分类数据的所有特征分量的第二变换码按位相加得到和向量;
对所述和向量进行第三变换以得到所述待分类数据的编码,其中,所述第三变换包括:若所述和向量的第j个特征分量大于0,则将所述第j个特征分量置为1,否则置为0。
11.根据权利要求7所述的装置,其特征在于,所述分类模块还用于:
根据所述待分类数据的编码,从预设的编码与类别的对应关系数据中查找所述待分类数据对应的类别;其中,若查找到的类别有多个,则根据多数投票规则确定所述待分类数据的类别。
12.根据权利要求11所述的装置,其特征在于,所述预设的编码与类别的对应关系数据保存在HBase数据库中。
13.一种数据分类的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201810325353.7A 2018-04-12 2018-04-12 数据分类的方法和装置 Pending CN110390011A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810325353.7A CN110390011A (zh) 2018-04-12 2018-04-12 数据分类的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810325353.7A CN110390011A (zh) 2018-04-12 2018-04-12 数据分类的方法和装置

Publications (1)

Publication Number Publication Date
CN110390011A true CN110390011A (zh) 2019-10-29

Family

ID=68282573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810325353.7A Pending CN110390011A (zh) 2018-04-12 2018-04-12 数据分类的方法和装置

Country Status (1)

Country Link
CN (1) CN110390011A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552842A (zh) * 2020-03-30 2020-08-18 贝壳技术有限公司 一种数据处理的方法、装置和存储介质
CN112650949A (zh) * 2020-12-31 2021-04-13 东北大学 基于多源特征融合协同过滤的区域poi需求识别方法
CN112948370A (zh) * 2019-11-26 2021-06-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150248458A1 (en) * 2012-09-27 2015-09-03 Nec Corporation Method, apparatus and program for transforming into binary data
CN106649782A (zh) * 2016-12-28 2017-05-10 电子科技大学 一种图片检索方法和系统
CN106777038A (zh) * 2016-12-09 2017-05-31 厦门大学 一种基于序列保留哈希的超低复杂度图像检索方法
CN106909575A (zh) * 2015-12-23 2017-06-30 北京国双科技有限公司 文本聚类方法和装置
CN107341178A (zh) * 2017-05-24 2017-11-10 北京航空航天大学 一种自适应的二进制量化哈希编码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150248458A1 (en) * 2012-09-27 2015-09-03 Nec Corporation Method, apparatus and program for transforming into binary data
CN106909575A (zh) * 2015-12-23 2017-06-30 北京国双科技有限公司 文本聚类方法和装置
CN106777038A (zh) * 2016-12-09 2017-05-31 厦门大学 一种基于序列保留哈希的超低复杂度图像检索方法
CN106649782A (zh) * 2016-12-28 2017-05-10 电子科技大学 一种图片检索方法和系统
CN107341178A (zh) * 2017-05-24 2017-11-10 北京航空航天大学 一种自适应的二进制量化哈希编码方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948370A (zh) * 2019-11-26 2021-06-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备
CN112948370B (zh) * 2019-11-26 2023-04-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备
CN111552842A (zh) * 2020-03-30 2020-08-18 贝壳技术有限公司 一种数据处理的方法、装置和存储介质
CN112650949A (zh) * 2020-12-31 2021-04-13 东北大学 基于多源特征融合协同过滤的区域poi需求识别方法
CN112650949B (zh) * 2020-12-31 2023-12-29 东北大学 基于多源特征融合协同过滤的区域poi需求识别方法

Similar Documents

Publication Publication Date Title
CN109376234A (zh) 一种训练摘要生成模型的方法和装置
CN110532352B (zh) 文本查重方法及装置、计算机可读存储介质、电子设备
CN112395487B (zh) 信息推荐方法、装置、计算机可读存储介质及电子设备
CN112085565A (zh) 基于深度学习的信息推荐方法、装置、设备及存储介质
CN110390011A (zh) 数据分类的方法和装置
CN109146152A (zh) 一种线上事故等级预测方法和装置
CN114707041B (zh) 消息推荐方法、装置、计算机可读介质及电子设备
CN111339784B (zh) 一种新话题的自动挖掘方法和系统
CN110309293A (zh) 文本推荐方法和装置
CN113268560A (zh) 用于文本匹配的方法和装置
CN111177719A (zh) 地址类别判定方法、装置、计算机可读存储介质及设备
Zhao Information iterative retrieval of Internet of Things communication terminal based on symmetric algorithm
JP2023517518A (ja) ヌル値又は同等の値を有するリレーショナル・テーブルのためのベクトル埋込モデル
CN113010771A (zh) 搜索引擎中的个性化语义向量模型的训练方法及装置
CN115239214B (zh) 企业的评估处理方法、装置及电子设备
CN111428486B (zh) 物品信息数据处理方法、装置、介质及电子设备
CN113806492B (zh) 基于语义识别的记录生成方法、装置、设备及存储介质
WO2023110182A1 (en) Extracting explanations from attention-based models
CN114818686A (zh) 基于人工智能的文本推荐方法及相关设备
Lei et al. Influence of Review Properties in the Usefulness Analysis of Consumer Reviews: A Review-Based Recommender System for Rating Prediction
CN112417260B (zh) 本地化推荐方法、装置及存储介质
Shen et al. ANGraph: attribute-interactive neighborhood-aggregative graph representation learning
CN111914201A (zh) 网络页面的处理方法及装置
Bhushan et al. A novel integer representation-based approach for classification of text documents
CN110489414A (zh) 报表推送方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination