数据处理的方法及装置与流程

文档序号:12271398阅读:406来源:国知局
数据处理的方法及装置与流程

本发明涉及计算机应用技术领域,尤其涉及一种数据处理的方法及装置。



背景技术:

支持向量机(support vector machine,SVM),是一种用来进行模式识别、分类等的学习模型。在实际应用中,SVM模型对于二分类问题的解决效果最佳,因此常被用于解决二分类问题。比如对邮件进行分类,将未知邮件作为待预测数据输入到SVM模型中,通过SVM模型的二分类特性,得到该未知邮件是正常邮件还是垃圾邮件的分类结果。

通常,在使用SVM模型进行分类之前,首先需要使用已知的训练样本对SVM模型进行训练。例如使用大量预先收集的正常邮件及垃圾邮件作为训练样本对SVM模型进行训练。然而,在对SVM模型进行训练的过程中,发明人发现,对于一些维度过高的训练样本,对应组成的训练集的维度同样过高,而训练集的维度过高,会导致训练SVM模型的计算量很大以及包含的“噪声数据”较多,因此直接使用维度过高的训练样本通常会导致训练SVM模型的效率较低。比如邮件类的训练样本,若以组成邮件内容的“词”为单位,将全部单词组成邮件向量,每个邮件对应的向量维数会高达几十万,那么对于这种训练样本组成的训练集的维数也将高达几十万,如此高的维数对于SVM模型的训练必然会增大计算量,而且邮件内容中包含的一些词比如“的”等无意义的“噪音数据”也会较多,大的计算量以及较多的“噪音数据”必然会降低训练SVM模型的效率。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理的方法及装置。

为解决上述技术问题,一方面,本发明提供了一种数据处理的方法,包括:

获取每个训练样本对应的原始样本矩阵,所述训练样本用于对支持向量机SVM模型进行训练获得对待预测数据进行分类的SVM模型,其中,所述训练样本包含至少两种不同类别的训练样本;

根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本。

另一方面,本发明提供了一种数据处理的装置,包括:

获取单元,用于获取每个训练样本对应的原始样本矩阵,所述训练样本用于对支持向量机SVM模型进行训练获得对待预测数据进行分类的SVM模型,其中,所述训练样本包含至少两种不同类别的训练样本;

降维单元,用于根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本。

借由上述技术方案,本发明提供的数据处理的方法及装置,能够从用于对SVM模型进行训练的训练样本中获取对应的原始样本矩阵,其中,训练样本包含至少两种不同类别的训练样本;然后根据主成分分析(Principal Component Analysis,PCA)算法对原始样本矩阵进行降维处理,获得降维后的训练样本。与现有技术相比,本发明能够通过PCA算法对训练样本进行降维,而训练样本维度的降低可以减少在使用训练样本进行SVM模型训练的过程中的计算量,同时也除去了训练样本中的一些“噪音数据”,从而提高训练SVM模型的效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种数据处理的方法流程图;

图2示出了本发明实施例提供的另一种数据处理的方法流程图;

图3示出了本发明实施例提供的一种数据处理的装置的组成框图;

图4示出了本发明实施例提供的另一种数据处理的装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为解决现有使用维度过高的训练样本训练SVM模型的效率低的问题,本发明实施例提供了一种数据处理的方法,如图1所示,该方法包括:

101、获取每个训练样本对应的原始样本矩阵。

本实施例中,训练样本用于对SVM模型进行训练,以获得对待预测数据进行分类的SVM模型,其中训练样本包含至少两种不同类别的训练样本。对于不同类别的训练样本可以为不同类别的邮件包括正常邮件与垃圾邮件;也可以为不同类别的新闻包括体育新闻、财经新闻、娱乐新闻等。

获取由训练样本转换后得到的原始样本矩阵,其中每个训练样本对应一个原始样本矩阵。具体的对原始样本矩阵转换过程为:首先,构造训练样本对应的预设数据库,该预设数据库为包括训练样本可能涉及的所有元素的元素集合,其中每个元素对应一个维度;其次,将所有的元素进行排序;最后,分别将每个训练样本中包含的元素与预设数据库中的元素进行匹配,根据匹配结果分别得到每个训练样本对应的原始样本矩阵。

其中,每个训练样本进行匹配的过程都是相同的,为简化描述这里以一个训练样本为例进行说明匹配的过程,具体的:训练样本按照元素进行分割,得到训练样本元素集;判断训练样本元素集中的元素是否包含于预设数据库中,将训练样本元素集中出现在预设数据库里的元素进行标记,通常标记为1,将训练样本元素集中不出现在预设数据库里的元素也进行标记,通常标记为0;然后由0和1按照对应的预设数据库中元素的排序进行排列,最终得到对应训练样本的原始样本矩阵,其中原始样本矩阵的维数与预设数据库中的元素个数相同。

在本实施例的一个示例中,假设预设数据库中包含的所有元素排序后结果为:赤、橙、黄、绿、青、蓝、紫,若其中一个训练样本对应的训练样本元素集中包含的元素为:橙、青、紫,则对应该训练样本的原始样本矩阵为[0,1,0,0,1,0,1]T,若另外一个训练样本对应的训练样本元素集中包含的元素为:赤、橙、黄,则对应该训练样本的原始样本矩阵为[1,1,1,0,0,0,0]T

实际应用中,训练样本的内容越丰富涉及的维度就越高,例如对于邮件正文内容,因为其可能涉及不同语种的各种字符,因此训练维度非常之大,通常能够达到几十万维。由于训练样本的维度很高,所以本步骤中获得的原始样本矩阵也是超高维度的,本实施例中可以通过执行后续步骤102将原始样本矩阵的维度降低,从而达到减少模型训练量的目的。

102、根据主成分分析PCA算法对原始样本矩阵进行降维处理,获得降维后的训练样本。

主成分分析PCA是一种掌握事物主要矛盾的事物中解析出主要的影响因素的一种算法,能够将高维度的数据投影到较低维度的空间。本实施例根据PCA算法对每个原始样本矩阵进行降维处理,得到降维之后的原始样本矩阵,由此获得降维后的训练样本。得到降维之后的训练样本是为了对待预测数据进行分类的SVM模型训练。将较低维度的训练样本对SVM模型进行训练可以减少训练过程中的计算量,提高训练SVM模型的效率。

本发明实施例提供的数据处理的方法,能够从用于对SVM模型进行训练的训练样本中获取对应的原始样本矩阵,其中,训练样本包含至少两种不同类别的训练样本;然后根据主PCA算法对原始样本矩阵进行降维处理,获得降维后的训练样本。与现有技术相比,本发明实施例能够通过PCA算法对训练样本进行降维,而训练样本维度的降低可以减少在使用训练样本进行SVM模型训练的过程中的计算量,同时也除去了训练样本中的一些“噪音数据”,从而提高训练SVM模型的效率。

进一步的,作为对图1所示方法的细化及扩展,本发明另一实施例还给出了一种数据处理的方法。如图2所示,该方法包括:

201、获取每个训练样本对应的原始样本矩阵。

本步骤的实现方式图1步骤101中的实现方式相同,此处不再赘述。

202、根据主成分分析PCA算法对原始样本矩阵进行降维处理,获得降维后的训练样本。

具体的根据主成分分析PCA算法对原始样本矩阵进行降维处理包括以下过程:

第一,根据原始样本矩阵生成特征矩阵;

具体的生成特征矩阵包括:

(1)计算所有原始样本矩阵的均值,获得中心样本矩阵;

具体的计算原始样本矩阵均值m的公式为:

其中,表示第i个类别的第j个原始样本矩阵,c为类别总数,Ni表示第i个类别包含的原始样本矩阵总数,i与j均为自然数。

获得的中心样本矩阵H为:

(2)计算中心样本矩阵的转置矩阵,并将中心样本矩阵与中心样本矩阵的转置矩阵相乘,获得目标样本矩阵HHT

(3)计算目标样本矩阵HHT的多个特征值μ,以及每个特征值对应的特征向量g;

本实施例中,多个特征值是多个非零特征值。

计算HHT的多个非零特征值时可以按照通常的求矩阵的非零特征值的方法计算,在本实施例中计算HHT的方法还可以为:先计算HTH的多个非零特征值μ以及与μ对应的特征向量v,然后利用如下公式得到特征向量g;

需要说明的是,HHT与HTH的非零特征值是相同的,因此都记作μ。

(4)按照特征值由大到小的顺序依次选择预设数量的特征向量;

其中预设数量是根据以下公式确定的:

其中θ通常为接近1但小于1的预设阈值,通常可以取0.9或者更高,具体的可以根据实际的应用进行设定;μj为HHT的第i大特征值,即μ1≥μ2≥…≥μk,其中k为非零特征值的个数。

选择预设数量的特征向量,即选取前i个非零特征值对应的特征向量。

(5)按照选择特征向量的顺序,将选择的特征向量顺次排列,获得特征矩阵G,具体的获得的特征矩阵G如下所示:

G=[g1,…,gi]

第二,计算特征矩阵的转置矩阵GT

计算特征矩阵的转置矩阵是将特征矩阵的行换成相应的列,得到的新矩阵,通常记作GT。其中在进行矩阵转置时,通常是将矩阵的第一列作为转置矩阵的第一行,第一行作为转置矩阵的第一列。

第三,将特征矩阵的转置矩阵与原始样本矩阵相乘,获得降维后的训练样本。

本步骤中具体涉及的公式为:y=GTx

其中,y为对应原始样本矩阵降维之后的矩阵。每个y即每个原始样本矩阵降维之后的对应的一个训练样本。

本实施例中,利用PCA算法,通过生成特征矩阵、特征矩阵转置以及转置矩阵与原始样本矩阵相乘几步处理,实现降低原始样本矩阵维度的目的。

203、将特征矩阵与训练后获得的训练结果向量相乘,获得优化后的训练结果向量。

其中训练结果向量为使用降维后的训练样本对SVM模型进行训练后得到的训练结果向量,具体的对于SVM模型来讲得到的训练结果向量是支持向量,支持向量用于区别不同类别数据的分类边界对应的向量。

具体的对训练结果向量进行优化的过程为:将由上述步骤202中获取到的特征矩阵对训练结果向量即支持向量进行优化,具体优化的公式如下所示:

z’=Gz

其中,z为训练结果向量,z,为优化后的训练结果向量。

204、根据优化后的训练结果向量确定分类匹配集。

分类匹配集为预设数据库的真子集,预设数据库包括训练样本可能涉及的所有元素的元素集合。确定分类匹配集的过程包括:首先,查找优化后的训练结果向量中的非零值;其次,根据优化后的训练结果向量中的非零值在预设数据库中提取对应的元素,需要说明的是训练结果向量是通过降维后的训练样本得到的,因此训练结果向量的维度与降维后的训练样本中的维度存在对应的关系,而降维后的训练样本是通过原始样本矩阵降维得到的,因此训练结果向量的维度与原始样本矩阵的维度存在对应的关系。又由于原始样本矩阵的维度与预设数据库中元素有对应的关系,因此优化后的训练结果向量的维度与预设数据库中的元素有对应的关系,因此可以根据优化后的训练结果向量中的非零值所在的维度在预设数据库中提取对应维度的元素;最后将提取到的非零值对应的元素组成分类匹配集,其中非零值作为分类匹配集中的对应元素的系数。

205、根据分类匹配集对待预测数据进行分类。

具体的根据分类匹配集对待预测数据进行分类的过程如下:

第一,将待预测数据在分类匹配集中进行多模匹配。多模匹配是在一个字符串中寻找多个模式字符串的过程。在本实施例中多模匹配具体是指,在待预测数据中寻找分类匹配集中的多个元素。进行多模匹配的算法有多种,比如常见的包括字典树(Trie tree,Trie树)、AC自动机(Aho-Corasick automation,AC自动机)算法、Wu-Manber(Wu-Manber,VM)算法等。本实施例不限制具体使用具体哪一种多模匹配算法进行匹配。匹配最后得到的结果是确定待预测数据中包含的对应分类匹配集中的元素。

第二,将同时在分类匹配集中以及待预测数据中的存在的元素在分类匹配集中对应的系数进行累加。

第三,根据累加结果对待预测数据进行分类。

根据累加结果对待预测数据进行分类,即确定待预测数据的类别。具体的:为不同类别分别设置一个对应的阈值范围,不同的阈值范围不存在交集,然后将累加结果与所有的阈值范围进行比对,累加结果属于哪一个阈值范围,就判定对应的待预测数据属于哪一类别的数据。

本发明实施例提供的数据处理的方法,除了能够通过降低训练样本维度的方式减少训练过程的计算量外,还能够对训练获得的训练结果向量进行优化,基于优化后的训练结果向量确定分类匹配集。在使用SVM模型对待预测数据进行分类时,由于只需要根据分类匹配集中包含的元素而不是根据组成不同类别数据的可能的所有元素来进行分类,因此能够大大降低数据分类过程中的计算量,提高数据分类的效率。

进一步的,对于图2中涉及的生成特征矩阵的方法,本发明实施例还提供了另外一种生成特征矩阵的方法,具体的,如下所述:

由于训练样本通常包含数量级较高的训练样本,在按照图2中的对应生成步骤进行特征矩阵的相关计算时,若同时对较高数量级的训练样本进行计算,由于训练样本数量较大,会对系统计算造成较大的计算压力,因此本实施例通过分组的方式实现根据原始样本矩阵生成特征矩阵。分组的方式的思想是将较高数量级的训练样本分为多个组,每个组中包含的训练样本的数量会大大降低,然后分别对每个组中的训练样本进行对应的计算,相比于将所有的训练样本作为一个整体进行特征矩阵计算时所使用的训练样本的数量大大的降低,因此可以降低系统计算压力。具体的通过分组方式实现根据原始样本矩阵生成特征矩阵的过程包括以下步骤:

第一,根据预设维度值计算矩阵集合M;

其中预设维度是根据系统的计算能力设置的维度值,通常预设维度的设置遵循在系统的计算能力之内越大越好的原则。

根据预设维度值计算矩阵集合的数量M具体的公式为:

其中,a为训练样本中包含的每个类别的训练样本的数量,需要说明的是在进行训练样本的选取时,每个类别的训练样本的数量是相等的;b为预设维度值。

第二,分别将每个类别的原始样本矩阵平均划分为M个矩阵集合;

在将每个类别的原始样本矩阵平均划分为多个M个矩阵集合之前,需要首先以训练样本的类别为依据将训练样本对应的原始样本矩阵进行分类得到不同类别的原始样本矩阵。

第三,将不同类别的矩阵集合进行排列组合式的结合,获得多个矩阵组,其中,每个矩阵组均包含所有类别的矩阵集合。

给出具体的示例,对获取多个矩阵组的过程进行说明:假设训练样本中包含两种类别的训练样本,其中对应的每个类别的训练样本的数量为1000,则对应的原始样本矩阵的数量也为1000,且假设根据预设维度值得到的矩阵集合的数量M为10,那么可以得到每个类别的原始样本矩阵对应的10个矩阵集合,然后将其中一个类别对应的矩阵集合中的每一个矩阵集合分别与另一个类别中对应的矩阵集合进行组合,最终得到的矩阵组的个数为45。

第五,分别计算各个矩阵组的子特征矩阵;

计算各个矩阵组的子特征矩阵的方式与图2中生成特征矩阵的实现方式相同,其中矩阵组对应所有原始样本矩阵,子特征矩阵对应特征矩阵。最终得到多个子特征矩阵。

第六,按照计算子特征矩阵的顺序,将多个子特征矩阵进行组合,获得特征矩阵。

将由第五步得到的子特征矩阵进行线性组合,具体的是按照计算子特征矩阵的顺序,将多个子特征矩阵进行组合,得到特征矩阵。

给出示例对获得特征矩阵的方式进行说明:假设得到的子特征矩阵的个数为r,记第i组的子特征矩阵为Gi,则将r个子特征矩阵线性组合后得到的特征矩阵G=[G1 G2 … Gr]。

在本实施例的一种应用方式中,通过图1或图2流程训练出的SVM模型可以用于识别未知邮件是否为垃圾邮件和/或正常邮件。具体的在进行识别时:将数量相同的已知正常邮件和已知垃圾邮件组成训练样本,然后按照图1或者图2中的方式获到降维之后的训练样本,其中需要说明的是预设数据库为组成邮件的所有可能的“词”组成的集合;然后将训练样本对SVM模型训练得到对应的支持向量,然后对支持向量进行优化,最终根据优化后的支持向量得到对应的分类匹配集,分类匹配集中只包含优化后的支持向量中非零数值对应的“词”;然后将未知邮件中包含的存在于匹配集中的词对应的系数进行累加,并根据累加的数值结果去识别邮件为垃圾邮件还是正常邮件。

进一步的,作为对上述各实施例的实现,本发明实施例的另一实施例还提供了一种数据处理的装置,用于实现上述图1和图2所述的方法。如图3所示,该装置包括:获取单元31以及降维单元32。

获取单元31,用于获取每个训练样本对应的原始样本矩阵,训练样本用于对支持向量机SVM模型进行训练获得对待预测数据进行分类的SVM模型,其中,训练样本包含至少两种不同类别的训练样本。

获取由训练样本转换后得到的原始样本矩阵,其中每个训练样本对应一个原始样本矩阵。具体的对原始样本矩阵转换过程为:首先,构造训练样本对应的预设数据库,该预设数据库为包括训练样本可能涉及的所有元素的元素集合,其中每个元素对应一个维度;其次,将所有的元素进行排序;最后,分别将每个训练样本中包含的元素与预设数据库中的元素进行匹配,根据匹配结果分别得到每个训练样本对应的原始样本矩阵。

其中,每个训练样本进行匹配的过程都是相同的,为简化描述这里以一个训练样本为例进行说明匹配的过程,具体的:训练样本按照元素进行分割,得到训练样本元素集;判断训练样本元素集中的元素是否包含于预设数据库中,将训练样本元素集中出现在预设数据库里的元素进行标记,通常标记为1,将不包含于预设数据库中的元素也进行标记,通常标记为0;然后由0和1按照对应的预设数据库中元素的排序进行排列,最终得到对应训练样本的原始样本矩阵,其中原始样本矩阵的维数与预设数据库中的元素个数相同。

降维单元32,用于根据主成分分析PCA算法对原始样本矩阵进行降维处理,获得降维后的训练样本。

主成分分析PCA是一种掌握事物主要矛盾的事物中解析出主要的影响因素的一种算法,能够将高维度的数据投影到较低维度的空间。本实施例根据PCA算法对每个原始样本矩阵进行降维处理,得到降维之后的原始样本矩阵,由此获得降维后的训练样本。得到降维之后的训练样本是为了对待预测数据进行分类的SVM模型训练。将较低维度的训练样本对SVM模型进行训练可以减少训练过程中的计算量,提高训练SVM模型的效率。

进一步的,如图4所示,降维单元32包括:

生成模块321,用于根据原始样本矩阵生成特征矩阵;

根据原始样本矩阵x生成特征矩阵G。

计算模块322,用于计算特征矩阵的转置矩阵;

计算特征矩阵的转置矩阵GT,具体的:计算特征矩阵的转置矩阵是将特征矩阵的行换成相应的列,得到的新矩阵,通常记作GT。其中在进行矩阵转置时,通常是将矩阵的第一列作为转置矩阵的第一行,第一行作为转置矩阵的第一列。

相乘模块323,用于将特征矩阵的转置矩阵与原始样本矩阵相乘,获得降维后的训练样本。

相乘模块323中具体涉及的公式为:y=GTx

其中,y为对应原始样本矩阵降维之后的矩阵。每个y即每个原始样本矩阵降维之后的对应的一个训练样本。

本实施例中,利用PCA算法,通过生成特征矩阵、特征矩阵转置以及转置矩阵与原始样本矩阵相乘几步处理,实现降低原始样本矩阵维度的目的。

进一步的,生成模块321,用于:

计算所有原始样本矩阵的均值,获得中心样本矩阵;

计算中心样本矩阵的转置矩阵,并将中心样本矩阵与中心样本矩阵的转置矩阵相乘,获得目标样本矩阵;

计算目标样本矩阵的多个特征值,以及每个特征值对应的特征向量;

按照特征值由大到小的顺序依次选择预设数量的特征向量;

按照选择特征向量的顺序,将选择的特征向量顺次排列,获得特征矩阵。

具体的生成模块321中生成特征矩阵包括:

(1)计算所有原始样本矩阵的均值,获得中心样本矩阵;

具体的计算原始样本矩阵均值m的公式为:

其中,表示第i个类别的第j个原始样本矩阵,c为类别总数,Ni表示第i个类别包含的原始样本矩阵总数,i与j均为自然数。

获得的中心样本矩阵H为:

(2)计算中心样本矩阵的转置矩阵,并将中心样本矩阵与中心样本矩阵的转置矩阵相乘,获得目标样本矩阵HHT

(3)计算目标样本矩阵HHT的多个特征值μ,以及每个特征值对应的特征向量g;

本实施例中,多个特征值是多个非零特征值。

计算HHT的多个非零特征值时可以按照通常的求矩阵的非零特征值的方法计算,在本实施例中计算HHT的方法还可以为:先计算HTH的多个非零特征值μ以及与μ对应的特征向量v,然后利用如下公式得到特征向量g;

需要说明的是,HHT与HTH的非零特征值是相同的,因此都记作μ。

(4)按照特征值由大到小的顺序依次选择预设数量的特征向量;

其中预设数量是根据以下公式确定的:

其中θ通常为接近1但小于1的预设阈值,通常可以取0.9或者更高,具体的可以根据实际的应用进行设定;μj为HHT的第i大特征值,即μ1≥μ2≥…≥μk,其中k为非零特征值的个数。

选择预设数量的特征向量,即选取前i个非零特征值对应的特征向量。

(5)按照选择特征向量的顺序,将选择的特征向量顺次排列,获得特征矩阵G,具体的获得的特征矩阵G如下所示:

G=[g1,…,gi]

进一步的,生成模块321用于:

将原始样本矩阵平均划分为多个矩阵组;

分别计算各个矩阵组的子特征矩阵;

按照计算子特征矩阵的顺序,将多个子特征矩阵进行组合,获得特征矩阵。

进一步的,生成模块321用于:

以训练样本的类别为依据,对训练样本对应的原始样本矩阵进行分类;

根据预设维度值计算矩阵集合M;

分别将每个类别的原始样本矩阵平均划分为M个矩阵集合;

将不同类别的矩阵集合进行排列组合式的结合,获得多个矩阵组,其中,每个矩阵组均包含所有类别的矩阵集合。

生成模块321中还包含另一种生成特征矩阵的方式,具体的:

第一,根据预设维度值计算矩阵集合M;

其中预设维度是根据系统的计算能力设置的维度值,通常预设维度的设置遵循在系统的计算能力之内越大越好的原则。

根据预设维度值计算矩阵集合的数量M具体的公式为:

其中,a为训练样本中包含的每个类别的训练样本的数量,需要说明的是在进行训练样本的选取时,每个类别的训练样本的数量是相等的;b为预设维度值。

第二,分别将每个类别的原始样本矩阵平均划分为M个矩阵集合;

在将每个类别的原始样本矩阵平均划分为多个M个矩阵集合之前,需要首先以训练样本的类别为依据将训练样本对应的原始样本矩阵进行分类得到不同类别的原始样本矩阵。

第三,将不同类别的矩阵集合进行排列组合式的结合,获得多个矩阵组,其中,每个矩阵组均包含所有类别的矩阵集合。

进一步的,如图4所示,装置进一步包括:

优化单元33,用于在根据主成分分析PCA算法对原始样本矩阵进行降维处理,获得降维后的训练样本之后,并且在使用降维后的训练样本对SVM模型进行训练后,将特征矩阵与训练后获得的训练结果向量相乘,获得优化后的训练结果向量;

其中训练结果向量为使用降维后的训练样本对SVM模型进行训练后得到的训练结果向量,具体的对于SVM模型来讲得到的训练结果向量是支持向量,支持向量用于区别不同类别数据的分类边界对应的向量。

具体的对训练结果向量进行优化的过程为:将由上述降维单元32中获取到的特征矩阵对训练结果向量即支持向量进行优化,具体优化的公式如下所示:

z’=Gz

其中,z为训练结果向量,z,为优化后的训练结果向量。

确定单元34,用于根据优化后的训练结果向量确定分类匹配集,分类匹配集为预设数据库的真子集,预设数据库包括训练样本可能涉及的所有元素的元素集合;

分类匹配集为预设数据库的真子集,预设数据库包括训练样本可能涉及的所有元素的元素集合。确定分类匹配集的过程包括:首先,查找优化后的训练结果向量中的非零值;其次,根据优化后的训练结果向量中的非零值在预设数据库中提取对应的元素,需要说明的是训练结果向量是通过降维后的训练样本得到的,因此训练结果向量的维度与降维后的训练样本中的维度存在对应的关系,而降维后的训练样本是通过原始样本矩阵降维得到的,因此训练结果向量的维度与原始样本矩阵的维度存在对应的关系。又由于原始样本矩阵的维度与预设数据库中元素有对应的关系,因此优化后的训练结果向量的维度与预设数据库中的元素有对应的关系,因此可以根据优化后的训练结果向量中的非零值所在的维度在预设数据库中提取对应维度的元素;最后将提取到的非零值对应的元素组成分类匹配集,其中非零值作为分类匹配集中的对应元素的系数。

分类单元35,用于根据分类匹配集对待预测数据进行分类。

具体的根据分类匹配集对待预测数据进行分类的过程如下:

第一,将待预测数据在分类匹配集中进行多模匹配。多模匹配是在一个字符串中寻找多个模式字符串的问题。在本实施例中多模匹配具体是指,在待预测数据中寻找分类匹配集中的多个元素。进行多模匹配的算法有多种,比如常见的包括字典树(Trie tree,Trie树)、AC自动机(Aho-Corasick automation,AC自动机)算法、Wu-Manber(Wu-Manber,VM)算法等。本实施例不限制具体使用具体哪一种多模匹配算法进行匹配。匹配最后得到的结果是确定待预测数据中包含的对应分类匹配集中的元素。

第二,将同时在分类匹配集中以及待预测数据中的存在的元素在分类匹配集中对应的系数进行累加。

第三,根据累加结果对待预测数据进行分类。

根据累加结果对待预测数据进行分类,即确定待预测数据的类别。具体的:为不同类别分别设置一个对应的阈值范围,不同的阈值范围不存在交集,然后将累加结果与所有的阈值范围进行比对,累加结果属于哪一个阈值范围,就判定对应的待预测数据属于哪一类别的数据。

本发明实施例提供的数据处理的方法,除了能够通过降低训练样本维度的方式减少训练过程的计算量外,还能够对训练获得的训练结果向量进行优化,基于优化后的训练结果向量确定分类匹配集。在使用SVM模型对待预测数据进行分类时,由于只需要根据匹配集中包含的元素而不是根据组成不同类别数据的可能的所有元素来进行分类,因此能够大大降低数据分类过程中的计算量,提高数据分类的效率。

进一步的,获取单元31中的SVM模型用于识别未知邮件是否为垃圾邮件和/或正常邮件;

训练样本包含训练使用的已知正常邮件及已知垃圾邮件。

在本实施例的一种应用方式中,通过图3或图4装置训练出的SVM模型可以用于识别未知邮件是否为垃圾邮件和/或正常邮件。具体的在进行识别时:将数量相同的已知正常邮件和已知垃圾邮件组成训练样本,然后按照图3或者图4中的装置获到降维之后的训练样本,其中需要说明的是预设数据库为组成邮件的所有可能的“词”组成的集合;然后将训练样本对SVM模型训练得到对应的支持向量,然后对支持向量进行优化,最终根据优化后的支持向量得到对应的分类匹配集,分类匹配集中只包含优化后的支持向量中非零数值对应的“词”;然后将未知邮件中包含的存在于匹配集中的词对应的系数进行累加,并根据累加的数值结果去识别邮件为垃圾邮件还是正常邮件。

本发明实施例提供的数据处理的装置,能够从用于对SVM模型进行训练的训练样本中获取对应的原始样本矩阵,其中,训练样本包含至少两种不同类别的训练样本;然后根据主成分分析(Principal Component Analysis,PCA)算法对原始样本矩阵进行降维处理,获得降维后的训练样本。与现有技术相比,本发明实施例能够通过PCA算法对训练样本进行降维,而训练样本维度的降低可以减少在使用训练样本进行SVM模型训练的过程中的计算量,同时也除去了训练样本中的一些“噪音数据”,从而提高训练SVM模型的效率。

本发明实施例还公开了:

A1、一种数据处理的方法,所述方法包括:获取每个训练样本对应的原始样本矩阵,所述训练样本用于对支持向量机SVM模型进行训练获得对待预测数据进行分类的SVM模型,其中,所述训练样本包含至少两种不同类别的训练样本;

根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本。

A2、根据A1所述的方法,所述根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本,包括:

根据所述原始样本矩阵生成特征矩阵;

计算所述特征矩阵的转置矩阵;

将所述特征矩阵的转置矩阵与所述原始样本矩阵相乘,获得降维后的训练样本。

A3、根据A2所述的方法,所述根据所述原始样本矩阵生成特征矩阵,包括:

计算所有原始样本矩阵的均值,获得中心样本矩阵;

计算所述中心样本矩阵的转置矩阵,并将所述中心样本矩阵与所述中心样本矩阵的转置矩阵相乘,获得目标样本矩阵;

计算所述目标样本矩阵的多个特征值,以及每个特征值对应的特征向量;

按照特征值由大到小的顺序依次选择预设数量的特征向量;

按照选择特征向量的顺序,将选择的特征向量顺次排列,获得所述特征矩阵。

A4、根据A2或A3所述的方法,所述根据所述原始样本矩阵生成特征矩阵,包括:

将所述原始样本矩阵平均划分为多个矩阵组;

分别计算各个矩阵组的子特征矩阵;

按照计算子特征矩阵的顺序,将多个子特征矩阵进行组合,获得所述特征矩阵。

A5、根据A4所述的方法,所述将所述原始样本矩阵平均划分为多个矩阵组,包括:

以训练样本的类别为依据,对训练样本对应的原始样本矩阵进行分类;

根据预设维度值计算矩阵集合M;

分别将每个类别的原始样本矩阵平均划分为M个矩阵集合;

将不同类别的矩阵集合进行排列组合式的结合,获得所述多个矩阵组,其中,每个矩阵组均包含所有类别的矩阵集合。

A6、根据A2所述的方法,在所述根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本之后,所述方法进一步包括:

在使用所述降维后的训练样本对所述SVM模型进行训练后,将所述特征矩阵与训练后获得的训练结果向量相乘,获得优化后的训练结果向量;

根据优化后的训练结果向量确定分类匹配集,所述分类匹配集为预设数据库的真子集,所述预设数据库包括训练样本可能涉及的所有元素的元素集合;

根据所述分类匹配集对所述待预测数据进行分类。

A7、根据A1所述的方法,所述SVM模型用于识别未知邮件是否为垃圾邮件和/或正常邮件;

所述训练样本包含训练使用的已知正常邮件及已知垃圾邮件。

B8、一种数据处理的装置,所述装置包括:

获取单元,用于获取每个训练样本对应的原始样本矩阵,所述训练样本用于对支持向量机SVM模型进行训练获得对待预测数据进行分类的SVM模型,其中,所述训练样本包含至少两种不同类别的训练样本;

降维单元,用于根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本。

B9、根据B8所述的装置,所述降维单元包括:

生成模块,用于根据所述原始样本矩阵生成特征矩阵;

计算模块,用于计算所述特征矩阵的转置矩阵;

相乘模块,用于将所述特征矩阵的转置矩阵与所述原始样本矩阵相乘,获得降维后的训练样本。

B10、根据B9所述的装置,所述生成模块,用于:

计算所有原始样本矩阵的均值,获得中心样本矩阵;

计算所述中心样本矩阵的转置矩阵,并将所述中心样本矩阵与所述中心样本矩阵的转置矩阵相乘,获得目标样本矩阵;

计算所述目标样本矩阵的多个特征值,以及每个特征值对应的特征向量;

按照特征值由大到小的顺序依次选择预设数量的特征向量;

按照选择特征向量的顺序,将选择的特征向量顺次排列,获得所述特征矩阵。

B11、根据B9或B10所述的装置,所述生成模块用于:

将所述原始样本矩阵平均划分为多个矩阵组;

分别计算各个矩阵组的子特征矩阵;

按照计算子特征矩阵的顺序,将多个子特征矩阵进行组合,获得所述特征矩阵。

B12、根据B11所述的装置,所述生成模块用于:

以训练样本的类别为依据,对训练样本对应的原始样本矩阵进行分类;

根据预设维度值计算矩阵集合M;

分别将每个类别的原始样本矩阵平均划分为M个矩阵集合;

将不同类别的矩阵集合进行排列组合式的结合,获得所述多个矩阵组,其中,每个矩阵组均包含所有类别的矩阵集合。

B13、根据B9所述的装置,所述装置进一步包括:

优化单元,用于在所述根据主成分分析PCA算法对所述原始样本矩阵进行降维处理,获得降维后的训练样本之后,并且在使用所述降维后的训练样本对所述SVM模型进行训练后,将所述特征矩阵与训练后获得的训练结果向量相乘,获得优化后的训练结果向量;

确定单元,用于根据优化后的训练结果向量确定分类匹配集,所述分类匹配集为预设数据库的真子集,所述预设数据库包括训练样本可能涉及的所有元素的元素集合;

分类单元,用于根据所述分类匹配集对所述待预测数据进行分类。

B14、根据B8所述的装置,所述获取单元中的所述SVM模型用于识别未知邮件是否为垃圾邮件和/或正常邮件;

所述训练样本包含训练使用的已知正常邮件及已知垃圾邮件。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如数据处理的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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