正在加载图片...
第2期 胡小生,等:动态平衡采样的不平衡数据集成分类方法 ·259· 集成迭代的每次数据采样过程中,无需给定抽样比例 定相应的采样操作,如果产生的随机数k小于初始 参数,而是基于随机生成的样本规模数值,或者对正 数据集的负类样本数量,则在负类样本集进行欠采 类进行过采样,或者在负类上进行欠采样,获得类别 样,在正类样本集进行过采样,使得最终输出集合 平衡的训练集,然后参与后续的集成算法训练。 S'的样本数量与初始数据集数量一致,反之,则进 行相反的采样。与传统的采样方法不同的是,在步 2动态平衡采样不平衡数据分类方法 骤4中对正类样本进行欠采样,对负类样本进行过 本文算法包括动态平衡采样的训练数据获取和 采样,通过随机函数产生的随机数,使得输出集合 子分类器学习2个步骤,主要包括4个阶段:1)对初 S'在总数量一定的情况下保持对对各类别样本的 始数据集的各个样本设置相同的初始权值:2)调用 中立性。 动态平衡采样算法,生成合成样例,组成样本规模一 2.2训练样例权值更新 致的训练集,对于新生成的合成样例,需要赋予权 在第t次迭代过程中,需要对两个集合中的样 值:3)应用AdaBoost算法,生成子分类器,之后根据 例权重进行更新,分别是动态平衡采样后的输出集 子分类器的分类情况对初始训练集的各个样本进行 合S'和子分类器形成之后的初始数据集S。 权值更新,以及权值归一化:2)、3)重复迭代执行T 分析动态平衡采样算法过程可知,经过数据采 次:最后将T个子分类器集成。 样之后,新数据集S'的样例总数与初始数据集S一 2.1动态平衡采样 致,均为m,其中包括从数据集S抽取的部分样例, 作为数据预处理的采样技术,需要预先确定数 以及部分由SMOTE方法产生的合成样例。S'中的 据采样参数,不合理的数据采样参数会导致生成的 样本权值按照式(1)更新: 数据分布严重背离初始数据分布,进而影响算法的 (1 x:年S 分类性能。动态平衡采样依赖随机函数产生的数值 D',(i)= (1) 确定各类别的采样方式及采样比例,通过重复多次 D(i), x;∈S 的动态提取初始数据集的样本,获取充分的数据分 式中:D,(i)和D',(i)分别表示第1次迭代时,合成 布特性信息,降低富含分类信息样本点丢失现象。 样例加入前及加入后的权值。 整体算法如算法1所示。 第t次迭代训练结束时,AdaBoost分类算法 算法1动态平衡采样算法 在数据集S'进行学习后得到子分类器 输入初始数据集S={x:y:}1出:∈Y= h,:x→{-1,+1},t=1,2,…,T,h,(x)给出 数据集S中的样例x的所属类别,根据子分类器 {+1,-1},+1表示正类样本,-1表示负类样本: 的分类情况,更新样本权值,增加错分样本的权 输出新数据集S'。 值,减少正确分类样本权值,以便下次迭代时, 1)计算集合S中的样本数目,负类样本集合 “错分”样本得到更多关注。 Sw,其数量记为a,正类样本集合Sp的样本数记为 计算子分类器h,(x)的分类错误率E,: b m a b 2)利用随机函数,生成一个随机整数k, 6=2Daa)) (2) 2<k<m-2; 如果6,>0.5,终止此轮迭代。 3)如果k<a,则从数据集Sx中进行随机欠 计算子分类器投票权重α,: 采样,采样数目为k,将其加入集合S',在集合S 中应用SMOTE进行过采样,生成m-k-b个新合 (3) E 成样例,连同S。中的b个样本,均加入集合S'; 更新样例权值: 4)如果k≥a,则从数据集Sp中进行随机欠采 D,(i) D+1(i)= (4) 样,采样数目为m-k,将其加入集合S”,在集合S、 Z. exp(-ah,(x:)y:) 中应用SMOTE进行过采样,生成k-a个合成样例, 式中Z,是归一化常数。 连同S、中的a个样本,都加入集合S'; 完整算法如算法2所示。 5)输出集合S”。 算法2动态平衡采样的不平衡分类算法 算法依据2)中所产生的随机整数值大小来决 输入初始数据集S={x:,y:}1,y:∈Y=集成迭代的每次数据采样过程中,无需给定抽样比例 参数,而是基于随机生成的样本规模数值,或者对正 类进行过采样,或者在负类上进行欠采样,获得类别 平衡的训练集,然后参与后续的集成算法训练。 2 动态平衡采样不平衡数据分类方法 本文算法包括动态平衡采样的训练数据获取和 子分类器学习 2 个步骤,主要包括 4 个阶段:1)对初 始数据集的各个样本设置相同的初始权值;2)调用 动态平衡采样算法,生成合成样例,组成样本规模一 致的训练集,对于新生成的合成样例,需要赋予权 值;3)应用 AdaBoost 算法,生成子分类器,之后根据 子分类器的分类情况对初始训练集的各个样本进行 权值更新,以及权值归一化;2)、3)重复迭代执行 T 次;最后将 T 个子分类器集成。 2.1 动态平衡采样 作为数据预处理的采样技术,需要预先确定数 据采样参数,不合理的数据采样参数会导致生成的 数据分布严重背离初始数据分布,进而影响算法的 分类性能。 动态平衡采样依赖随机函数产生的数值 确定各类别的采样方式及采样比例,通过重复多次 的动态提取初始数据集的样本,获取充分的数据分 布特性信息,降低富含分类信息样本点丢失现象。 整体算法如算法 1 所示。 算法 1 动态平衡采样算法 输入 初始数据集 S = {xi,yi} m i = 1,yi ∈ Y = { + 1, - 1} , + 1 表示正类样本, - 1 表示负类样本; 输出 新数据集 S′。 1) 计算集合 S 中的样本数目,负类样本集合 SN, 其数量记为 a ,正类样本集合 SP 的样本数记为 b , m = a + b ; 2) 利 用 随 机 函 数, 生 成 一 个 随 机 整 数 k , 2 < k < m - 2; 3) 如果 k < a ,则从数据集 SN 中进行随机欠 采样,采样数目为 k ,将其加入集合 S′ ,在集合 SP 中应用 SMOTE 进行过采样,生成 m - k - b 个新合 成样例,连同 SP 中的 b 个样本,均加入集合 S′ ; 4) 如果 k ≥ a ,则从数据集 SP 中进行随机欠采 样,采样数目为 m - k ,将其加入集合 S′ ,在集合 SN 中应用 SMOTE 进行过采样,生成 k - a 个合成样例, 连同 SN 中的 a 个样本,都加入集合 S′ ; 5)输出集合 S′ 。 算法依据 2)中所产生的随机整数值大小来决 定相应的采样操作,如果产生的随机数 k 小于初始 数据集的负类样本数量,则在负类样本集进行欠采 样,在正类样本集进行过采样,使得最终输出集合 S′ 的样本数量与初始数据集数量一致,反之,则进 行相反的采样。 与传统的采样方法不同的是,在步 骤 4 中对正类样本进行欠采样,对负类样本进行过 采样,通过随机函数产生的随机数,使得输出集合 S′ 在总数量一定的情况下保持对对各类别样本的 中立性。 2.2 训练样例权值更新 在第 t 次迭代过程中,需要对两个集合中的样 例权重进行更新,分别是动态平衡采样后的输出集 合 S′ 和子分类器形成之后的初始数据集 S 。 分析动态平衡采样算法过程可知,经过数据采 样之后,新数据集 S′ 的样例总数与初始数据集 S 一 致,均为 m ,其中包括从数据集 S 抽取的部分样例, 以及部分由 SMOTE 方法产生的合成样例。 S′ 中的 样本权值按照式(1)更新: D′t(i) = 1 m , xi ∉ S Dt(i), xi ∈ S ì î í ï ï ïï (1) 式中: Dt(i) 和 D′t(i) 分别表示第 t 次迭代时,合成 样例加入前及加入后的权值。 第 t 次迭代训练结束时,AdaBoost 分类算法 在 数 据 集 S′ 进 行 学 习 后 得 到 子 分 类 器 ht:x → { - 1, + 1} ,t = 1,2,…,T , ht( x) 给出 数据集 S 中的样例 x 的所属类别,根据子分类器 的分类情况,更新样本权值,增加错分样本的权 值,减少正确分类样本权值,以 便 下 次 迭 代 时, “错分”样本得到更多关注。 计算子分类器 ht(x) 的分类错误率 εt : εt = ∑ m i = 1 Dt(i)I(ht(xi) ≠ y) (2) 如果 εt > 0.5,终止此轮迭代。 计算子分类器投票权重 αt : αt = 1 2 log{ 1 - εt εt } (3) 更新样例权值: Dt+1(i) = Dt(i) Zt exp( - αtht(xi)yi) (4) 式中 Zt 是归一化常数。 完整算法如算法 2 所示。 算法 2 动态平衡采样的不平衡分类算法 输入 初始数据集 S = { xi,yi} m i = 1 ,yi ∈ Y = 第 2 期 胡小生,等: 动态平衡采样的不平衡数据集成分类方法 ·259·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有