本发明属于计算机技术领域,更进一步涉及数据分类技术领域中一种适用于高维大数据集的数据分类方法。本发明可用于高维大数据的分类,以提高数据分类的准确率。
背景技术:
在过去的二十年里,人类收集、存储、传输、处理数据的能力取得了飞速提升,人们积累了越来越庞大和复杂的数据,因此,能有效对数据进行分析和利用的计算机算法是现今迫切需要的。同时,高维大数据量和稀疏冗余的特征使得数据挖掘的难度不断增大,一些传统的机器学习算法已经不能取得较好的效果或难以适用于当前的场景,这导致了高维大数据的挖掘具有很大的挑战性,也具有很大的提升空间。
浪潮电子信息产业股份有限公司在其申请的专利文献“一种基于随机森林加权距离的大规模高维数据分类方法”(申请号:201510272419.7,公开号:cn104915679a)中公开了一种大规模高维数据的分类方法。该方法首先对训练样本利用随机森林算法计算各维度特征的重要性,用维度特征重要性数值来加权标准化距离,在此基础上利用k近邻算法进行分类。该方法存在的不足之处是:k近邻算法用于大规模高维数据集时计算量过大,算法复杂度高,另外,对于现实场景下的高维稀疏数据集,传统随机森林算法收敛速度和分类精度表现不佳,导致该算法的准确率下降。
毛林、陆全华和程涛在其发表的论文“基于高维数据的集成逻辑回归分类算法的研究与应用”(科技通报,2013年12期)中提出一种大规模高维数据的分类方法。该方法首先对全部特征随机抽取多个特征集,并针对各个特征集构建多个逻辑回归模型。最后针对多个逻辑回归模型结果,利用集成学习方法进行最终预测。该方法存在的不足之处是:由于高维大数据集特征的冗余性和稀疏性,随机的特征抽取很难选到有用的特征的问题,导致多数基分类器性能不佳,算法准确率不理想,且直接进行集成学习使得基学习器相似性高,容易过拟合。
技术实现要素:
本发明的目的在于克服上述已有技术的不足,提出一种适用于高维大数据集的数据分类方法,在保证高维大数据下算法收敛速度的同时尽可能的提高分类精度。
实现本发明目的的具体思路是:依据高维稀疏数据集的特点,优化传统随机森林算法的特征选择方式,提高基决策树的分类能力及整体算法的性能。
实现本发明目的的具体步骤如下:
(1)输入训练样本数据集和测试样本数据集:
(1a)输入一个包含两种及以上类别的高维大数据集,作为训练样本数据集;
(1b)输入一个包含两种及以上类别的,与训练样本数据集特征相同的待分类的高维大数据集,作为测试样本数据集;
(2)对训练样本集进行采样:
(2a)采用自助采样法,从训练样本数据集中抽取与训练集样本数量相等的样本,作为抽样样本,放入一个采样集中;
(2b)执行30次上述采样,得到30个采样集;
(3)计算特征权重:
(3a)利用基尼指数计算公式,分别计算每个采样集对应的特征集中所有特征的基尼指数;
(3b)计算每个特征的基尼指数的倒数:
(3c)对每个特征的基尼指数的倒数进行归一化处理,得到各特征的权重值;
(4)用轮盘赌法选择特征:
(4a)按照下式,计算所有采样集中每一个特征的累积权重值:
其中,q(i)表示第d个采样集中第i个特征的累积权重值,σ表示求和操作,w(d,j)表示第d个采样集中第j个特征的权重值;
(4b)在[0,1]区间内随机选择一个均匀分布的伪随机数;
(4c)判断所选伪随机数是否小于当前采样集中第一个特征的累积权重值,若是,则执行步骤(4d),否则,执行步骤(4e);
(4d)将当前采样集中的第一个特征放入当前采样集的特征子集中;
(4e)判断所选伪随机数是否处于当前特征的累积权重值与当前特征的前一个特征的累积权重值之间,若是,则执行步骤(4g),否则,执行步骤(4f);
(4f)用当前特征的下一个特征作为当前特征,执行步骤(4e);
(4g)将当前特征放入当前采样集的特征子集中;
(4h)按照下式,计算当前采样集的特征子集的容量:
k=log2n
其中,k表示当前采样集的特征子集的容量,log2·表示以2为底的对数操作,n表示采样集的特征总数;
(4i)判断当前特征子集中的特征总数是否等于特征子集的容量,若是,执行步骤(5),否则,执行步骤(4b);
(5)构建基决策树:
采用主流方法cart决策树算法,构建30个与采样集及其特征子集对应的基决策树;
(6)获得随机森林模型在测试集上的分类结果:
(6a)利用集成公式,对30个基决策树进行集成,得到高维大数据集的随机森林模型公式;
(6b)将测试样本集输入到高维大数据集的随机森林模型中进行分类,得到分类结果;
(6c)输出分类结果。
本发明与现有方法相比具有如下优点:
第1,由于本发明通过计算特征权重,为特征选择提供依据,将基尼指数的倒数作为特征权重,权重越大,则集合的纯度越高,使得构建基决策树时能够有指导性的建树,克服了现有技术由于高维大数据集特征的冗余性和稀疏性,随机的特征抽取很难选到有用的特征的问题,使得本发明提高了高维大数据集下分类器的分类精度及收敛速度。
第2,由于本发明引入用轮盘赌法选择特征,在构建基决策树时增加了随机扰动,使得特征被选择的可能性与特征权重成正比,从而克服了现有技术直接进行集成学习使得基学习器相似性高,容易过拟合的问题,使得本发明保证了高维大数据集下分类器的稳定性和鲁棒性。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图1,对本发明的步骤作进一步的详细描述。
步骤1,输入训练样本数据集和测试样本数据集。
输入一个包含两种及以上类别的高维大数据集作为训练样本数据集。
输入一个包含两种及以上类别的,与训练样本数据集特征相同的待分类的高维大数据集作为测试样本数据集。
步骤2,对训练样本集进行采样。
采用自助采样法,从训练样本数据集中抽取与训练集样本数量相等的样本,作为抽样样本,放入一个采样集中。
执行30次上述采样,得到30个采样集。
步骤3,计算特征权重。
利用基尼指数计算公式,分别计算每个采样集对应的特征集中所有特征的基尼指数。
所述的基尼指数计算公式如下:
其中,gini(d,i)表示第d个采样集中第i个特征的基尼指数,v表示第i个特征对第d个采样集进行分类后得到的子集总数,s表示第i个特征对第d个采样集进行分类后得到的第v个子集中的样本总数,|·|表示绝对值操作,t表示采样集的样本总数,r表示采样集的类别总数,c表示第v个子集中第r类样本的样本总数。
计算每个特征的基尼指数的倒数。
对每个特征的基尼指数的倒数进行归一化处理,得到各特征的权重。
所述的归一化处理是按照下式实现的:
其中,w(d,i)表示第d个采样集中第i个特征的权重值,g表示第i个特征的基尼指数的倒数,n表示采样集的特征总数。
步骤4,用轮盘赌法选择特征。
第1步,按照下式,计算所有采样集中每一个特征的累积权重值:
其中,q(i)表示第d个采样集中第i个特征的累积权重值,σ表示求和操作,w(d,j)表示第d个采样集中第j个特征的权重值。
第2步,在[0,1]区间内随机选择一个均匀分布的伪随机数。
第3步,判断所选伪随机数是否小于当前采样集中第一个特征的累积权重值,若是,则执行第4步,否则,执行第5步。
第4步,将当前采样集中的第一个特征放入当前采样集的特征子集中。
第5步,判断所选伪随机数是否处于当前特征的累积权重值与当前特征的前一个特征的累积权重值之间,若是,则执行第7步,否则,执行第6步。
第6步,用当前特征的下一个特征作为当前特征,执行第5步。
第7步,将当前特征放入当前采样集的特征子集中。
第8步,按照下式,计算当前采样集的特征子集的容量:
其中,k表示当前采样集的特征子集的容量,log2·表示以2为底的对数操作。
第8步,判断当前特征子集中的特征总数是否等于特征子集的容量,若是,执行步骤5,否则,执行第2步。
步骤5,构建基决策树:
采用主流方法cart决策树算法,构建30个与采样集及其特征子集对应的基决策树。
步骤6,获得随机森林模型在测试集上的分类结果:
利用集成公式,对30个基决策树进行集成,得到高维大数据集的随机森林模型公式。
所述的集成公式如下:
其中,h表示高维大数据集的随机森林模型,argmax表示取最大值操作,j表示测试样本集样本分类类别的编号,hj表示第i个基决策树关于第j个类别的预测结果。
将测试样本集输入到高维大数据集的随机森林模型中进行分类,得到分类结果。
输出分类结果。
本发明的效果可以通过以下仿真实验做进一步的说明。
1.仿真条件。
本发明仿真的硬件环境是:intelcorei7-6700@3.40ghz,8g内存;软件环境:ubuntu14.04,python3.4,pycharm2017。
2.仿真内容与结果分析。
本发明首先将训练样本数据集作为输入,分别构建基决策树个数为5,10,20,30,40,50,60的适用于高维大数据集的改进随机森林模型,然后将测试样本集分别输入训练好的改进随机森林模型,得到对应不同的基决策树个数时的模型分类准确率。
本发明的仿真实验中所采用的现有技术为传统随机森林算法rf。
本发明仿真实验结果如表1所示,表中,将基决策树个数为5,10,20,30,40,50,60时,rf和本发明方法arf在测试样本集上的分类准确率进行对比展示。
从表1的实验结果可以看出,本发明方法arf算法和对比方法rf算法在测试样本集上的分类准确率,可以得到结论:随着基决策树数目的增加,两种方法在预测集上的分类准确率都逐渐提高,并最终基本趋于稳定。arf算法在基决策树数量为10已经基本收敛,rf在基决策树数量为50时才收敛,可以看出本发明方法收敛速度更快。并且,arf算法的准确率也均高于rf算法,arf最终准确率收敛于0.98,rf准确率收敛于0.96,可以看出本发明方法分类准确率更高。