CN105260742A - 一种针对多种数据类型的统一分类方法及*** - Google Patents
一种针对多种数据类型的统一分类方法及*** Download PDFInfo
- Publication number
- CN105260742A CN105260742A CN201510632562.2A CN201510632562A CN105260742A CN 105260742 A CN105260742 A CN 105260742A CN 201510632562 A CN201510632562 A CN 201510632562A CN 105260742 A CN105260742 A CN 105260742A
- Authority
- CN
- China
- Prior art keywords
- strong point
- data
- steps
- data set
- point
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据处理,提供了一种针对多种数据类型的统一分类方法,包括下述步骤:步骤A,在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;步骤B,利用分类算法对所述数据集进行分类。本发明与现有技术相比,在度量空间下,不同种类的数据只考虑数据之间的距离信息,不考虑其他属性,使得复杂的数据类型变得简单、易操作,同时通过支撑点空间模型的转换,将不同类型数据统一成一种数据类型,在一定程度上扩大了分类算法的使用范围。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种基于支撑点空间模型下的度量空间下的多种数据类型的统一分类方法及***。
背景技术
分类算法是一种重要数据挖掘算法,广泛存在于模式识别、机器学习和数据挖掘等应用中。现有的大部分分类算法都是针对多维数据的,虽然存在一些方法可以用于非多维数据,但这些方法本身的弱点往往也很明显。在大数据时代,复杂的数据类型越来越多,基于复杂数据对象(空间数据、文本、图像、音频、视频、时空序列等)的海量复杂数据不断涌现,同时,近年来生物信息系的蓬勃发展也产生了大量的复杂生物数据(基因序列、蛋白质谱等)分类已经成为处理这些复杂数据的基本需求,现有的可以处理非多维数据的统一分类方法的局限也逐渐成为瓶颈,而专用的非多维数据分类算法往往受限于其应用领域。如何能够把同国内高多维数据分类算法应用于大数据时代的复杂数据类型已经成为一个越发重要的问题。
度量空间是一种覆盖范围很广的数据类型抽象。它把复杂的数据对象抽象成度量空间中的点,利用用户定义距离函数的三角不等性来去除无关数据并减少直接距离计算的次数。度量空间分类算法最大的优势是其高度的普遍适用性。然而,同时这也是其劣势。数据被抽象成度量空间中的点,虽然提高了通用性,但同时也损失了坐标信息,唯一可用的信息就是距离值。坐标的缺失使度量空间的研究手段比较单一,研究进展收到了很大限制。
现有的大部分数据挖掘分类算法都是针对多维数据的,虽然存在一些方法可以用于非多维数据,但这些方法本身的弱点往往也都很明显。文本数据经过预处理后,仍然包含成千上万甚至几十万个特征词,这使得传统的统一分类方法由于计算量过大而不具有可行性。DNA序列数据具有特定的生物学意义,由非数值型的字符组成,长短差异较大,短的只有几十个字符,长的可达百兆以上,使用传统的统一分类方法处理DNA序列数据存在很大的问题。如传统的归纳决策树、支持向量机(SupportVectorMachine,SVM)、朴素贝叶斯等,都难以直接对具有序列特性的数据建立分类模型。由于KNN算法自身简单的特点,它不需要在训练集上建立分类器,因此可以用于DNA序列分类。但是,KNN在分类DNA序列数据,寻找k个最相似序列时,通常采用序列比对记分方法来计算两个序列间相似性,这种方法的计算量是相当巨大的。
发明内容
本发明所要解决的技术问题在于提供一种基于支撑点空间模型的度量空间下的多类型数据的统一分类方法及***,旨在解决现有技术在大数据时代的复杂数据类型下计算量巨大的问题。
本发明是这样实现的,一种针对多种数据类型的统一分类方法,包括下述步骤:
步骤A,在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;
步骤B,利用分类算法对所述数据集进行分类。
进一步地,所述统一分类方法还包括:
步骤C,以所述数据集为分类算法的训练集,对分类器进行训练;
步骤D,对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
进一步地,所述步骤A包括:
步骤A1,选取空间模型;
步骤A2,根据所述空间模型将所述原始数据集进行转换,生成数据集。
进一步地,所述空间模型为支撑点空间模型,所述步骤A1包括:
步骤A11,根据所述原始数据集选取距离函数;
步骤A12,确定支撑点个数;
步骤A13,根据所述距离函数和所述支撑点个数确定支撑点选择算法;
步骤A14,根据确定的支撑点选择算法确定所述支撑点空间模型。
进一步地,所述步骤A2具体包括:
步骤A21,计算所述原始数据中的每一数据点到每一支撑点的距离,获取距离值;
步骤A22,将所述距离值作为所述数据点的新属性,生成只包含距离信息的数据集。
进一步地,所述支撑点选择算法为FFT算法,所述步骤A14具体包括:
步骤A141,从所述原始数据集中随机选取一数据点作为第一支撑点,加入支撑点集合,所述支撑点集合用P表示;
步骤A142,计算所有非支撑点到支撑点集合P的距离, 其中θ(x,p)表示原始数据集中所有数据点到支撑点的最小距离集合,pj表示支撑点集合P中的某一支撑点,xi表示原始数据集X中的某一数据点;表示原始数据集中一个数据点到一个支撑点之间的距离;min为从原始数据集中所有数据点xi到某一个支撑点pi的距离中取距离最小的值;
步骤A143,选取步骤142中到支撑点集合P中距离最大的数据点xi作为下一个支撑点,并将下一支撑点加入支撑点集合P;
步骤A144,判断所述支撑点是否选取完毕;
若判断为所述支撑点选取完毕,则结束本算法;
若判断为未完成支撑点选取,则返回步骤A142。
本发明还提供了一种针对多种数据类型的统一分类***,包括:
数据集生成单元,用于在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;
分类单元,与所述数据集生成单元相连接,用于利用分类算法对所述数据集进行分类。
进一步地,所述统一分类***还包括:
分类器训练单元,与所述分类单元相连接,用于以所述数据集为分类算法的训练集,对分类器进行训练;
测试单元,与所述分类器训练单元相连接,用于对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
进一步地,数据集生成单元包括:
选取模块,用于选取空间模型;
转换模块,与所述选取模块相连接,用于根据所述空间模型将所述原始数据集进行转换,生成数据集并传输至所述分类单元。
进一步地,所述空间模型为支撑点空间模型,选取模块具体包括:
选取子模块,用于根据所述原始数据集选取距离函数;
支撑点确定子模块,用于确定支撑点个数;
算法确定子模块,分别于所述选取子模块和所述支撑点确定子模块相连接,用于根据所述距离函数和所述支撑点个数确定支撑点选择算法;
模型确定子模块,与所述模型确定子模块相连接,用于根据确定的支撑点选择算法确定所述支撑点空间模型。
进一步地,所述支撑点选择算法为FFT算法,所述模型确定子模块具体用于:
首先,从所述原始数据集中随机选取一数据点作为第一支撑点,加入支撑点集合,所述支撑点集合用P表示;
接着,计算所有非支撑点到支撑点集合P的距离, 其中θ(x,p)表示原始数据集中所有数据点到支撑点的最小距离集合,pj表示支撑点集合P中的某一支撑点,xi表示原始数据集X中的某一数据点;表示原始数据集中一个数据点到一个支撑点之间的距离;min为从原始数据集中所有数据点xi到某一个支撑点pi的距离中取距离最小的值;
然后,选取上述支撑点集合P中距离最大的数据点xi作为下一个支撑点,并将下一支撑点加入支撑点集合P;
最后,判断所述支撑点是否选取完毕;
若判断为所述支撑点选取完毕,则结束本算法;
若判断为未完成支撑点选取,则继续进行支撑点选取。
本发明与现有技术相比,有益效果在于:在度量空间下,将不同数据进行空间转换,只考虑数据之间的距离信息,不考虑其他属性,使得复杂的数据类型变得简单、易操作,同时将不同的类型统一成一种数据类型,在一定程度上达到了降维的效果,减少了在进行数据处理时的计算量。
附图说明
图1是本发明实施例提供的一种针对多种数据类型的统一分类方法的流程图。
图2是本发明实施例提供的一种针对多种数据类型的统一分类***的结构示意图。
图3是本发明使用例提供的属性界面。
图4是本发明使用例提供的添加包含目录界面。
图5是本发明使用例提供的添加库目录界面。
图6是本发明使用例提供的添加运行参数界面。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
度量空间是一种覆盖范围很广的数据类型抽象。它把复杂的数据对象抽象成度量空间中的点,利用用户定义距离函数的三角不等性来去除无关数据并减少直接距离计算的次数。度量空间分类算法最大的优势是其高度的普遍适用性。然而,同时这也是其劣势。数据被抽象成度量空间中的点,虽然提高了通用性,但同时也损失了坐标信息,唯一可用的信息就是距离值。坐标的缺失使度量空间的研究手段比较单一,研究进展收到了很大限制。因此,采用支撑点空间模型,把没有坐标的度量空间转化为有坐标的支撑点空间。基于支撑点空间模型的度量空间下的分类只要求用户提供满足度量空间性质的距离函数和训练数据集,而距离函数的具体实现和数据的表达都是透明的,同样的算法可以应用于不同的数据类型,因而具备了更广泛的使用范围。
基于支撑点空间模型的度量空间下分类算法,主要用于分类。目前,主要的分类算法有KNN(K-NearestNeighbor),Bayes,C4.5,SVM(SupportVectorMachine),人工神经网络等,基于支撑点空间模型的度量空间下的分类算法目前还没有人提出过。
基于上述原因,如图1所示,本发明实施例提供了一种针对多种数据类型的统一分类方法,步骤包括:
S1,在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集。在本步骤中,原始数据集可以使任何的数据类型,空间模型为支撑点空间模型,将原始数据进行空间转换,生成统一数据类型的训练数据集,具体的,该统一数据类型的数据集为只包含距离信息的数据集。
S2,利用分类算法对所述数据集进行分类。在本步骤中,根据仅包含数据之间距离信息的数据集,用分类算法进行分类,具体的,使用的是KNN、Bayes和C4.5分类算法。
进一步地,为了检测分类的准确性及分类器的准确性,本发明还包括:
S3,以所述数据集为分类算法的训练集,对分类器进行训练。
S4,对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
在上述步骤S1中,具体步骤包括:
S11,选取空间模型;
S12,根据所述空间模型将所述原始数据进行转换,生成训练数据集。
具体的,针对背景技术存在的不足,本发明提出了相关的解决方法。
首先,在度量空间下使用分类算法,这样是为了统一不同的数据类型。在度量空间下,只考虑数据之间的距离信息,不考虑其他属性。使得复杂的数据类型变的简单、易操作。
然后,进行支撑点选择,支撑点的个数由用户决定,这样是为了将无坐标的度量空间转换为有坐标的支撑点空间,使得现有的、大量的、可用的数学工具和方法可以应用于此。
最后,将通过支撑点空间模型转换的数据集保存并使用分类算法对其建立分类模型和测试。
理论和实践证明,上述方法,扩大了分类算法的使用范围,且分类性能有所提高。
同时,为了解决传统的经典数据挖掘分类算法不能直接应用于复杂数据类型的问题,本发明采用的技术方案是,一种基于支撑点空间模型的度量空间下多类型数据的分类算法,其中支撑点选择算法的过程如下:
a.根据所述原始数据选取距离函数;
b.确定支撑点个数;
c.根据所述距离函数和所述支撑点个数确定支撑点选择算法;
d.根据所述支撑点选择算法确定所述空间模型。
以上所述的度量空间中支撑点选择方法,
在步骤a中,选择能够表示该数据类型的距离函数,作为相似性度量方法。
在步骤b中,确定本次要选择的支撑点个数。
在步骤c中,确定本次使用的支撑点选择算法,本发明中使用的是FFT(Farthest-FirstTraversal)算法,该算法的流程如下:
c1,随机挑选一个数据作为第一个支撑点,加入支撑点集合P;
c2,计算所有非支撑点到支撑点集合P的距离, 其中θ(x,p)表示原始数据集中所有数据点到支撑点的最小距离集合,pj表示支撑点集合P中的某一支撑点,xi表示原始数据集X中的某一数据点;表示原始数据集中一个数据点到一个支撑点之间的距离;min为从原始数据集中所有数据点xi到某一个支撑点pi的距离中取距离最小的值;
c3,选取步骤c2中到支撑点集合P中距离最大的数据点xi作为下一个支撑点,并将下一支撑点加入支撑点集合P;
c4,如果选够k个支撑点,算法结束。否则,进入步骤b。
在步骤c中,假设有n个支撑点p1,p2,…,pn,n<k(k表示总共要选取的支撑点数目),则原始数据集中总共有m条样本数据,求下一个支撑点的FFT方法为:
如上表所示,每列表示原始数据集中所有数据点到一个支撑点的距离dn,n=1,2,3,…,n,从中找到最小的min(dn);然后再从这些最小的距离中找到最大距离max(d1,d2,…,dn),将该最大距离对应的训练样本点作为下一个支撑点。
在步骤d中,存储选出的支撑点的下标值并返回,由此确定空间模型。
以上所述的度量空间中支撑点选择方法,是现有软件包UMAD(UniversalManagementandAnalysisofData)的一部分,继承了PivotSelectionMethod方法,用于在度量空间支撑点选择。需要从main函数接收三个参数,分别是trainDFN(traindatafilename),disFun(distancefunction)和v(pivotnumber)。
上述为基于支撑点空间模型的度量空间下分类算法框架的第一步,选取完支撑点后,计算原始数据点到每个支撑点的距离,将这些距离值作为原始数据点的新的属性,形成一个只包含距离信息的新的数据集。然后将这个只包含距离信息的新的数据集作为KNN、Bayes和C4.5分类算法的训练数据集,对其训练分类器并测试。使用此方法,可以将不同类型的数据统一成只包含距离信息的数据,即属性都为连续型数据,使得原先不能直接用于处理复杂数据类型的分类算法现可以使用,扩大了分类算法的使用范围。
具体技术方案阐述如下:
1、算法框架
输入:runModel:操作类型,如train、test、trainandtest
dataType:原始数据的数据类型,如vector、string、dna等
disFun:用来度量原始数据之间相似性的距离函数,如EuclideanDistanc、EditDistance等
pivotSelectionMethod:对原始数据选择支撑点的方法,本发明使用FFT
numPivot:要选择的支撑点的个数
classifyMethod:选择训练分类器的分类算法,如KNN、Bayes或C4.5
trainDataFileName:要读取的原始数据集的文件名
initialSize:读取的原始数据集的大小
testDataFileName:测试分类器使用的数据的文件名
finalSize:测试数据集的大小
dim:训练数据集和测试数据集的维度,此处支撑点的个数即为其维度
pivotsAndTrainModelFileName:用于存储选取的支撑点和分类器信息的文件名
testModelFileName:用于存储对分类器测试结果的文件名
status:状态值,0表示测试数据集来自训练数据;1表示测试数据集由用户提供
k:当选择的classifyMethod方法为KNN时,最近邻的个数
splitRatio:比例值,当status=0时,测试数据集取自训练数据的比例
输出:testResult:测试结果,即分类准确性
框架总体思路:
1:从trainDataFileName数据集中根据数据集的大小和维度读取本次任务需要处理的数据;
2:采用pivotSelectionMethod提供的方法和disFun距离函数对trainDataFileName中的数据选择支撑点,并计算trainDataFileName中每个数据点到支撑点之间的距离;
3:选取trainDataFileName数据集中第一个点为支撑点,放入indices数组中;
4:Do
5:Do逐个判断trainDataFileName数据集中的每个数据点
6:if该数据点不是支撑点
7:计算该点到支撑点集合indices的距离,并与当前最大距离curMaxDist比较,若大于curMaxDist,则置换掉当前最大距离值,并将该点的下标存入indices数组。
8:else什么也不做
9:While(未遍历完trainDataFileName数据集中的数据)
10:找到一个支撑点,并将该点在数组isCenter中对应的位置的值设为true;
11:While(已选择的支撑点个数小于numPivot);
12:使用disFun距离函数计算trainDataFileName中每个数据点到支撑点集合indices的距离,得到新的只包含距离信息的数据集M_traindata;
13:保存支撑点信息到pivotsAndTrainModelFileName文件中;
14:将经过支撑点空间模型转换的数据集M_traindata读入到分类算法KNN、Bayes或C4.5中;
15:根据不同分类算法建立分类器的步骤训练分类器;
16:将训练得到的分类器存储到pivotsAndTrainModelFileName文件中;
17:根据status的状态,确定测试数据的来源,status=0时,测试数据来自原始数据集的比例为splitRatio;status=1时,使用用户提供的测试数据集testModelFileName;
18:测试分类器,并将结果存储到testModelFileName中;
整个分类算法框架的时间复杂度为O(读取数据+支撑点选择+计算只包含距离信息的数据集+训练分类器),其中读取数据的时间复杂度为O(initialSize),支撑点选择的时间复杂度为O((numPivot-1)*(initialSize-1)),计算只包含距离信息的数据集的时间复杂度为O(numPivot*initialSize),训练分类器的时间复杂度因分类算法不同而不同,具体的时间复杂度分析见下文。
2、分类算法
对原始数据进行支持点空间模型转换后,得到只包含距离信息的数据集,此时,不管原始数据是什么类型,最终放到分类算法中使用的都是连续型数据,使得不同数据类型统一化,且数据集的维度由支撑点的个数决定,一定程度上起到了降维的作用。
在UMAD中,目前有三种不同分类算法:KNN、Bayes和C4.5。三种方法的训练分类器的输入参数如下:
classifyMethod:选择训练分类器的分类算法,如KNN、Bayes或C4.5
traindata:读入的原始数据集数据
trainDataLabel:训练数据集中数据对应的类标签
cmetric:对应原始数据集的距离函数
pivotselectionmethod:支撑点选择算法
numPivot:要选取的支撑点的个数
newPivotsAndTrainModelFileName:用于存储支撑点信息和训练得到的分类器的文件名
newTrainDataFileName:原始数据集的文件名
dim:原始数据集的维度
输出:训练得到的分类器。
测试参数如下:
classifyMethod:选择训练分类器的分类算法,如KNN、Bayes或C4.5
testdata:读入的测试数据集的数据
testDataLabel:被测试数据的真正的类标签
cmetric:度量测试数据之间相似性的距离函数
newPivotsAndTrainModelFileName:存储支撑点信息和分类器的文件名
newTestModelFileName:存储测试结果的文件名
status:状态值,0表示测试数据集来自训练数据;1表示测试数据集由用户提供
k:当选择的classifyMethod方法为KNN时,最近邻的个数
splitRatio:比例值,当status=0时,测试数据集取自训练数据的比例
输出:分类器的分类准确性。
下面分别三个分类算法进行介绍。
2.1KNN方法
KNN方法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
算法步骤:
输入:训练数据集训练数据集M_traindata、最近邻个数k和测试数据M_testdata
输出:测试数据的类标签
1:初始化容器gNearestDistance[k].distance;
2:Do从M_testdata中取一条测试数据
3:Do从M_traindata取一条训练集数据
4:计算测试数据到该训练数据的距离,与gNearestDistance[k].distance比较;若小于gNearestDistance[k].distance的最小值,则将该训练数据的信息写入gNearestDistance[k]中。否则,继续读取训练数据,计算并比较距离。
5:while(未遍历完M_traindata中的数据)
6:统计gNearestDistance[k]中训练数据的类标签的种类数及每种类标签的个数,将出现次数最多的类标签作为该测试数据的类标签;
7:while(未读取完M_testdata中的数据)
KNN算法直接使用这些训练样本对未分类数据进行预测,不必维护原始数据的模型,可用于各种数据类型,是分类数据最简单有效的算法。该算法的时间复杂度为O(initialSize)。
2.2Bayes方法
Bayes算法基于贝叶斯定理与特征条件独立假设,它是一个简单并且概念清晰的方法,用来表达、使用和学习概率的知识。相对于其他分类算法来说,Bayes在对数据进行分类时,并不是给出“该数据实例属于哪一类”这类问题的明确答案,而是给出了一个最优的类别猜测结果,同时给出这个猜测的概率估计值。
算法步骤:
输入:训练数据集M_traindata和测试数据集M_testdata
输出:类标签
1:对训练数据集M_traindata中的每个属性进行离散化。把每个属性的取值按照从小到大进行排序,计算每个候选分割阈值点的信息熵,选择信息熵取值最大的点作为分割阈值点;
2:假设条件独立,计算每个类的条件概率,存储在TrainingModel中;
3:计算每个类的概率,存储在ClassFreq中;
4:运用贝叶斯公式计算类的后验概率,即类的后验概率=类的条件概率*类的概率;
5:比较每个类的后验概率,取后验概率最大的类作为测试数据的类标签;
NBC算法的特点:面对孤立的噪声点、无关属性,朴素贝叶斯分类器是健壮的,也可以处理属性值遗漏问题;相关属性可能会降低朴素贝叶斯的性能,因为对这些属性,条件独立的假设已不成立。朴素贝叶斯算法的时间复杂度为O(离散化中排序所用时间+计算类条件概率所用时间MaxItemNo*MaxAttNo+计算后验概率所用时间MaxTestItemNo*MaxClassNo*MaxAttNo)。
2.3C4.5方法
C4.5决策树分类算法是一种简单却广泛适用于统计学、模式识别、决策理论、信号处理、机器学习和人工神经网络等多种学科的分类技术,同时也是描述、划分和统计数据的一个非常有价值的工具。
算法步骤:
输入:训练数据集M_traindata和测试数据集M_testdata
输出:类标签
1:若训练样本集M_traindata为空或所有样本都属于同一个类,则建立叶结点,结束建树。
2:对于是连续属性的M_traindata数据集,要先进行离散化:先对属性值进行排序;计算所有二分点的信息熵,取使信息熵最大的点为阀值点。
3:计算每个属性的信息增益率,取使得信息增益率最大的属性作为测试属性。
4:根据测试属性的分类情况划分样本集,为每一个划分创建节点。
5:对每个子节点重复执行C4.5算法,当某一节点所覆盖的样本都属于同一个类或所覆盖的样本数小于一个阀值时,停止划分,结束子树建设。
6:对建立好的决策树采用悲观误差剪枝法进行剪枝。
C4.5算法能够处理连续属性、存在噪声和不完整信息的数据集,通过后剪枝方法降低了对训练数据集的过分拟合。不足之处是只能处理存储在内存中的数据,当数据量很大时,程序没有办法运行。在构造树的过程中,需要对数据集进行多次顺序扫描和排序,花费大量的时间。C4.5的时间复杂度为O(离散化中排序所用时间+选择测试属性所用时间+建树所用时间+后剪枝所用时间)。
3三种不同分类算法的性能比较
分类准确性:
如图2,本发明还提供了一种针对多种数据类型的分类***,包括:
数据集生成单元1,用于在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;
分类单元2,与数据集生成单元1相连接,用于利用分类算法对所述数据集进行分类;
分类器训练单元3,与分类单元2相连接,用于以所述数据集为分类算法的训练集,对分类器进行训练;
测试单元4,与分类器训练单元3相连接,用于对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
进一步地,数据集生成单元1包括:
选取模块,用于选取空间模型;
转换模块,与所述选取模块相连接,用于根据所述空间模型将所述原始数据集进行转换,生成数据集并传输至所述分类单元。
进一步地,所述空间模型为支撑点空间模型,选取模块具体包括:
选取子模块,用于根据所述原始数据集选取距离函数;
支撑点确定子模块,用于确定支撑点个数;
算法确定子模块,分别于所述选取子模块和所述支撑点确定子模块相连接,用于根据所述距离函数和所述支撑点个数确定支撑点选择算法;
模型确定子模块,与所述模型确定子模块相连接,用于根据确定的支撑点选择算法确定所述支撑点空间模型。
进一步地,所述转换模块包括:
距离计算子模块,与所述选取模块相连接,用于计算所述原始数据中的每一数据点到每一支撑点的距离,获取距离值;
生成子模块,与所述距离计算子模块相连接,用于将所述距离值作为所述数据点的新属性,生成只包含距离信息的训练数据集。
进一步地,所述支撑点选择算法为FFT算法,所述模型确定子模块具体用于:
首先,随机选取一数据点作为第一支撑点,加入支撑点集合,所述支撑点集合用P表示;
然后,计算所有非支撑点到所述支撑点集合P的距离,所述距离表示为:θ(x,p)=min{d|d=θ(x,pi),pi∈P},其中θ(x,p)表示所有训练样本到支撑点的最小距离集合,d表示所有训练样本到一个支撑点的距离中的最小距离;
接着,选取步骤142中到p距离最大的x作为下一个支撑点;
最后,判断所述支撑点是否选取完毕;
若判断为所述支撑点选取完毕,则结束本算法;
若判断为未完成支撑点选取,则继续进行选取。
以下通过使用一具体使用例来对本发明进行进一步阐述:
在windows***下,本***采用VisualStudio2010开发,并且在程序运行过程中需要GSL库,所以,在程序运行之前需要首先在VS2010中,配置GSL。
Windows下配置GSL步骤如下:
1、点击菜单栏中的“DEBUG”“cGeDBITProperties”,或者右键单击SolutionExplorer中的cGeDBIT“Properties”,将会打开cGeDBITPropertyPages窗口。如图3所示;
2、选择左侧导航栏中的“C/C++”,在“AdditionalIncludeDirectories”中包含进“GSL\Include”。如图4所示:
3、选择左侧导航栏中的“Linker”,在“AdditionalLibraryDirectories”中包含进“GSL\lib”。如图5所示:
在Linux下,采用g++编译器进行编译,而且,在编译之前也需要配置GSL。
Linux下配置GSL步骤如下:
1、打开~/.bashrc
2、在文件末尾加上下面的代码:
配置完环境之后,则可编译程序,生成UMAD.exe文件,并为此可执行文件传递必要的参数(程序各个参数的含义与取值见“十缩略语和关键术语定义”),即可训练分类器。
在window下,可以如是操作:
在选择左侧导航栏中的“Debugging”,在“CommandArguments”中添加运行参数,如图6所示:
在Linux下,则可以编辑makefile文件,对程序进行编译,假设编译完成之后,形成了可执行文件UMAD,则可以:
./UMAD--taskclassification--runMtrainandtest--tvector--disFunEuclideanDistance--psmfft--v9--classifyMethodknn--trainDFNwaveform.data--init5000--testDFNwaveform.data--F5000--dim21--ptFN
waveform_EuclideanDistance_fft_9_knn.txt—testMFNTrainAndTest_waveform_EuclideanDistance_fft_9_knn_0.txt--status0--k3
运行程序前,需要把原始数据文件存放在SourceFiles/util/data/文件夹下。程序运行后,训练的分类器会存放在SourceFiles/util/result/文件夹下,对分类器的测试结果也放在SourceFiles/util/result/文件夹下。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种针对多种数据类型的统一分类方法,其特征在于,所述统一分类方法包括下述步骤:
步骤A,在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;
步骤B,利用分类算法对所述数据集进行分类。
2.如权利要求1所述的统一分类方法,其特征在于,所述统一分类方法还包括:
步骤C,以所述数据集为分类算法的训练集,对分类器进行训练;
步骤D,对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
3.如权利要求1所述的统一分类方法,其特征在于,所述步骤A包括:
步骤A1,选取空间模型;
步骤A2,根据所述空间模型将所述原始数据集进行转换,生成数据集。
4.如权利要求3所述的统一分类方法,其特征在于,所述空间模型为支撑点空间模型,所述步骤A1包括:
步骤A11,根据所述原始数据集选取距离函数;
步骤A12,确定支撑点个数;
步骤A13,根据所述距离函数和所述支撑点个数确定支撑点选择算法;
步骤A14,根据确定的支撑点选择算法确定所述支撑点空间模型。
5.如权利要求4所述的统一分类方法,其特征在于,所述步骤A2具体包括:
步骤A21,计算所述原始数据中的每一数据点到每一支撑点的距离,获取距离值;
步骤A22,将所述距离值作为所述数据点的新属性,生成只包含距离信息的数据集。
6.如权利要求5所述的统一分类方法,其特征在于,所述支撑点选择算法为FFT算法,所述步骤A14具体包括:
步骤A141,从所述原始数据集中随机选取一数据点作为第一支撑点,加入支撑点集合,所述支撑点集合用P表示;
步骤A142,计算所有非支撑点到支撑点集合P的距离, 其中θ(x,p)表示原始数据集中所有数据点到支撑点的最小距离集合,pj表示支撑点集合P中的某一支撑点,xi表示原始数据集X中的某一数据点;表示原始数据集中一个数据点到一个支撑点之间的距离;min为从原始数据集中所有数据点xi到某一个支撑点pi的距离中取距离最小的值;
步骤A143,选取步骤142中到支撑点集合P中距离最大的数据点xi作为下一个支撑点,并将下一支撑点加入支撑点集合P;
步骤A144,判断所述支撑点是否选取完毕;
若判断为所述支撑点选取完毕,则结束本算法;
若判断为未完成支撑点选取,则返回步骤A142。
7.一种针对多种数据类型的统一分类***,其特征在于,所述统一分类***包括:
数据集生成单元,用于在度量空间中,利用空间模型对原始数据集进行转换,生成统一数据类型的数据集;
分类单元,与所述数据集生成单元相连接,用于利用分类算法对所述数据集进行分类。
8.如权利要求7所述的统一分类***,其特征在于,所述统一分类***还包括:
分类器训练单元,与所述分类单元相连接,用于以所述数据集为分类算法的训练集,对分类器进行训练;
测试单元,与所述分类器训练单元相连接,用于对分类器进行多种方式的测试,并比较各种测试方式的测试结果,以验证分类的准确性。
9.如权利要求7所述的分类***,其特征在于,数据集生成单元包括:
选取模块,用于选取空间模型;
转换模块,与所述选取模块相连接,用于根据所述空间模型将所述原始数据集进行转换,生成数据集并传输至所述分类单元。
10.如权利要求9所述的分类***,其特征在于,所述空间模型为支撑点空间模型,选取模块具体包括:
选取子模块,用于根据所述原始数据集选取距离函数;
支撑点确定子模块,用于确定支撑点个数;
算法确定子模块,分别于所述选取子模块和所述支撑点确定子模块相连接,用于根据所述距离函数和所述支撑点个数确定支撑点选择算法;
模型确定子模块,与所述模型确定子模块相连接,用于根据确定的支撑点选择算法确定所述支撑点空间模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510632562.2A CN105260742A (zh) | 2015-09-29 | 2015-09-29 | 一种针对多种数据类型的统一分类方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510632562.2A CN105260742A (zh) | 2015-09-29 | 2015-09-29 | 一种针对多种数据类型的统一分类方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105260742A true CN105260742A (zh) | 2016-01-20 |
Family
ID=55100423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510632562.2A Pending CN105260742A (zh) | 2015-09-29 | 2015-09-29 | 一种针对多种数据类型的统一分类方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260742A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975519A (zh) * | 2016-04-28 | 2016-09-28 | 深圳大学 | 一种基于多支撑点索引的离群检测方法及其*** |
CN106503245A (zh) * | 2016-11-08 | 2017-03-15 | 深圳大学 | 一种支撑点集合的选择方法及装置 |
CN106528790A (zh) * | 2016-11-08 | 2017-03-22 | 深圳大学 | 度量空间中支撑点的选取方法及装置 |
WO2018027459A1 (zh) * | 2016-08-08 | 2018-02-15 | 深圳市博信诺达经贸咨询有限公司 | 分类比对在大数据中的应用方法及*** |
CN108038543A (zh) * | 2017-10-24 | 2018-05-15 | 华南师范大学 | 期望与反期望深度学习方法和神经网络*** |
CN108537340A (zh) * | 2017-03-02 | 2018-09-14 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN110399404A (zh) * | 2019-07-25 | 2019-11-01 | 北京明略软件***有限公司 | 一种计算机的用户表示生成方法及装置 |
CN113268521A (zh) * | 2021-04-16 | 2021-08-17 | 佛山市奥博环保技术有限公司 | 一种基于度量空间的水环境监测数据挖掘方法及*** |
CN113407786A (zh) * | 2021-06-22 | 2021-09-17 | 深圳大学 | 基于欧氏距离的度量空间索引构建方法、装置及相关设备 |
-
2015
- 2015-09-29 CN CN201510632562.2A patent/CN105260742A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975519A (zh) * | 2016-04-28 | 2016-09-28 | 深圳大学 | 一种基于多支撑点索引的离群检测方法及其*** |
WO2018027459A1 (zh) * | 2016-08-08 | 2018-02-15 | 深圳市博信诺达经贸咨询有限公司 | 分类比对在大数据中的应用方法及*** |
CN106503245B (zh) * | 2016-11-08 | 2019-07-26 | 深圳大学 | 一种支撑点集合的选择方法及装置 |
CN106528790A (zh) * | 2016-11-08 | 2017-03-22 | 深圳大学 | 度量空间中支撑点的选取方法及装置 |
CN106503245A (zh) * | 2016-11-08 | 2017-03-15 | 深圳大学 | 一种支撑点集合的选择方法及装置 |
CN106528790B (zh) * | 2016-11-08 | 2019-08-16 | 深圳大学 | 度量空间中支撑点的选取方法及装置 |
CN108537340A (zh) * | 2017-03-02 | 2018-09-14 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN108537340B (zh) * | 2017-03-02 | 2021-04-27 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN108038543A (zh) * | 2017-10-24 | 2018-05-15 | 华南师范大学 | 期望与反期望深度学习方法和神经网络*** |
CN108038543B (zh) * | 2017-10-24 | 2021-01-22 | 华南师范大学 | 期望与反期望深度学习方法和神经网络*** |
CN110399404A (zh) * | 2019-07-25 | 2019-11-01 | 北京明略软件***有限公司 | 一种计算机的用户表示生成方法及装置 |
CN113268521A (zh) * | 2021-04-16 | 2021-08-17 | 佛山市奥博环保技术有限公司 | 一种基于度量空间的水环境监测数据挖掘方法及*** |
CN113407786A (zh) * | 2021-06-22 | 2021-09-17 | 深圳大学 | 基于欧氏距离的度量空间索引构建方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260742A (zh) | 一种针对多种数据类型的统一分类方法及*** | |
Bhattacharjee et al. | A survey of density based clustering algorithms | |
Palit et al. | Meeting the challenges of high-dimensional single-cell data analysis in immunology | |
CN101604363B (zh) | 基于文件指令频度的计算机恶意程序分类***及分类方法 | |
Snir et al. | Quartets MaxCut: a divide and conquer quartets algorithm | |
CN110413780A (zh) | 文本情感分析方法、装置、存储介质及电子设备 | |
Chug et al. | Software defect prediction using supervised learning algorithm and unsupervised learning algorithm | |
CN109410588A (zh) | 一种基于交通大数据的交通事故演化分析方法 | |
CN112364352A (zh) | 可解释性的软件漏洞检测与推荐方法及*** | |
Thilagavathi et al. | A survey on efficient hierarchical algorithm used in clustering | |
Hlaváč et al. | Machine learning and business intelligence or from descriptive analytics to predictive analytics | |
Guyet et al. | Incremental mining of frequent serial episodes considering multiple occurrences | |
Camilleri et al. | Parameter optimization in decision tree learning by using simple genetic algorithms | |
Wallace et al. | Towards explaining metaheuristic solution quality by data mining surrogate fitness models for importance of variables | |
Nikoloski et al. | Structuring the output space in multi-label classification by using feature ranking | |
Raamesh et al. | Data mining based optimization of test cases to enhance the reliability of the testing | |
Pimentel | Choosing a clustering: an a posteriori method for social networks | |
Patil et al. | Efficient processing of decision tree using ID3 & improved C4. 5 algorithm | |
Kavitha et al. | Efficient transaction reduction in actionable pattern mining for high voluminous datasets based on bitmap and class labels | |
Nishatharan | Content based data mining and analysis for weather related web documents | |
Yin | Shape classification via optimal transport and persistent homology | |
Ingale et al. | Review of algorithms for clustering random data | |
Zhang et al. | Automatic constraint programming solver selection method based on machine learning for the cable tree wiring problem | |
Irfan et al. | Evolving the taxonomy based on hierarchical clustering approach | |
Wu et al. | Evaluation of error-sensitive attributes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160120 |
|
RJ01 | Rejection of invention patent application after publication |