本发明涉及带有概念漂移的不平衡数据流学习技术领域,具体涉及熵值为决定数据流平衡度的评判方法。
背景技术:
天气预报现已成为人们日常工作学习的不可或缺的一项重要服务,其中预测天气是否下雨,对农作物的生长、室外设备的维护、合理安排行程有重要意义,如何做好阴雨天气预报提高其准确度已成为社会关注的焦点所在。其中在预测天气是否下雨时,其数据特征通常是不平衡的,晴天数据样本个数远远大于阴天数据样本个数,因此为了提高分类器的分类精度需要对数据先进行预处理然后再去训练分类器。传统的决定数据不平衡率的方式基于样本数量,即假设样本中只有正类样本跟负类样本,数据的不平衡率ir为大类样本的数量与小类样本的数量比值,一般情况下当ir大于等于1.45时认为数据集是不平衡的。目前解决不平衡问题的方法有很多,大多是从数据预处理、分类算法以及集成分类器三个层面来进行。本方法是从数据预处理层面的采样技术解决这类问题。采样技术是处理不平衡数据流的有效方法,一般分为上采样方法跟下采样方法。上采样方法smote或者databoost-im基于存在的实例样本来合成新的实例样本点。这种合成新样本的方式有可能产生噪声样本,影响分类的精度而且花费时间较多,为了提高分类器的效率,数据流预处理一般采用下采样算法。下采样方法一般采用uob或者oob,其基本思想是从大类样本中按照bootstrap方法随机挑选相当于正类样本数量的负类样本形成平衡的数据对,以此解决不平衡问题。
在处理天气信息的数据流样本时,数据块样本会出现下雨天样本个数大于晴天样本个数,即正类样本与负类样本概念发生交换,这便是概念漂移问题。目前解决概念漂移问题的方法有很多,其中不断调整分类器的权重以适应新的数据概念可以合理的处理这类问题。
样本的信息熵值可以反应样本的价值,我们计算样本各个属性参数的信息价值以此来确定样本整体的信息量的大小,通过信息量的大小确定样本的不平衡率,即信息量大的样本被认作是负类样本,信息量小的样本被认作是正类样本。通过信息量的方式确定样本的类型相较于通过样本数量的方式更加合理。
技术实现要素:
针对传统的数据流平衡的判断方式,本发明提供了基于样本熵值的判断数据样本的平衡状态,根据平衡状态进行数据的预处理,这样相较于通过数量来决定样本的平衡状态能得到更高的精度,相较于上采样技术,本方法可以避免产生噪声样本。
本发明的思路:通过计算样本各个的属性携带的信息量来确定样本整体的信息量的大小,根据样本的信息量来计算样本的平衡状态/并且根据信息量的大小划分正、负类样本。最终根据样本的信息量划分样本子集形成平衡的样本对去训练分类规则,并根据得到的子分类器在新的数据流上的表现不断调整分类器的权重,以此来适应概念漂移问题。最后根据得到的子分类器加权求和得到最终的集成分类器。
具体步骤为:
第一步将数据流中的数据看作是以数据块的方式到达(即数据流中的数据每到达一定数量的数据便封装成数据块)。计算到达数据块的整体熵值ei,计算数据块中正类样本的熵值ep、负类样本的熵值en。
第二步根据得到的总体熵值跟正类样本的熵值计算要划分的平衡样本对的个数t。
第三步将总的熵值,划分为t个相等的熵子集。
第四步将每个熵子集分成相等的两部分,其中一部分用于存放正类样本,另一部分用于存放负类样本。
第五步计算每个正类样本的平均熵值,计算每个负类样本的平均熵值。
第六步从数据块中利用bootstrap方法选取正类样本与负类样本,使得正类样本熵值等于负类样本的熵值。
第七步通过t个熵值平衡的样本对训练分类规则,这些分类规则组成当前数据块的分类器,该分类器初始权重为1,之后根据其在测试样本中的g-mean值动态调整权重。
本发明所述的基于熵值的天气预测方法,其中基于熵值的处理不平衡数据的方法能够通过样本信息量更加合理的区分正类样本跟负类样本,并分配合理的实例样本对训练分类器,相比于传统的按照数量确定不平衡率跟初始化样本的方式能够取得更好的分类效果。
附图说明
图1是本发明的实施流程图。
图2是目前较新的通过样本数量解决此类问题的方法简介。
图3是每个数据块的auc值动态变化图。(dicae为本文提出的算法)
图4是每个数据块的g-mean值动态变化图。(dicae为本文提出的算法)。
具体实施方式
本实施案例采用包含在贝尔维尤(bellevue)和内布拉斯加州(nebraska)50年间的天气信息。其标签为某天是否下雨,其中数据有18,159个样本,每个样本有8个属性1个标签。分类器的训练通过cart训练分类器。
具体实施步骤为:
第1步划分样本块,将数据的到达看作是以数据块的形式到达,即到一定数量的样本看作是一个数据块,每个数据块样本数量定为固定值n。
第2步为避免计算熵值时对数的无意义,现将数据块中的样本归一化处理,
第3.1步计算第i个样本中第j个属性在第j列属性总和中所占的比重pij
第3.2步计算第i个样本中第j个属性的熵值(信息量的值),其计算方式为:
其中,k≥0,ej≥0数k的取值与样本属性个数m有关,一般令
第3.3步计算第i个样本的第j个熵值的差异系数,差异系数决定样本的总体熵值,其差异系数越大,熵值越小,计算方式为:cj=1-ej:
第3.4步计算第i个样本的第j个熵值的差异系数占第j列总差异系数的权重其计算公式为:
第3.5步计算第i个样本的熵值(信息量)
第4步计算到达数据块的整体熵值
第5步计算每个正类样本的平均熵值ap,其计算方式为ap=ep/np,计算每个负类样本的平均熵值an,其计算方式为
第6步从数据块中利用bootstrap方法选取正类样本与负类样本,使得正类样本熵值等于负类样本的熵值。
第7步通过t个熵值平衡的样本对训练分类规则,这些分类规则组成t时间戳到达的数据块的分类器
第8步将所有的子分类器加权求和得到最终的预测分类器:
表1auc值跟g-mean值的对比实验结果
auc值
g-mean值。
1.一种基于天气数据熵值的晴雨天预测方法,其特征在于能根据样本数据的变化动态调整分类器,其数据样本预处理的计算流程为:
(1)计算到达的数据块中样本的总熵值,记为ei,计算数据块中正类样本的熵值en,负类样本的熵值ep;
(2)根据得到的熵值ei,en,ep确定划分平衡样本对的个数t,将总体熵值ei划分为t个等熵子集;
(3)计算每个正类样本平均信息量,计算每个负类样本平均信息量;
(4)在每个等熵子集中,根据每个子集平均分配的熵值取等信息量的正类样本与负类样本,形成信息平衡的样本对,以此来训练分类规则,生成该样本块的子分类器。
技术总结