不平衡数据的半监督分类方法 技术领域 本发明属于数据处理领域, 涉及不平衡数据分类, 是模式识别和机器学习在数据 挖掘领域的应用, 具体的说是一种基于模糊聚类和半监督学习的不平衡数据分类方法, 可 用于训练样本极少的不平衡数据的分类与识别。
背景技术
伴随着全球信息技术的飞速发展, 功能强大的计算机、 数据收集设备和存储设备 为人们进行事务管理、 信息检索和数据分析提供了大量的数据信息。尽管获得的数据量非 常大, 但是对人们有用的数据往往只占全部数据的一小部分。这种某类样本数量明显少于 其它类样本的数据集被称作不平衡数据集, 不平衡数据集的分类问题大量存在于现实生活 之中, 例如, 检测公民的信用申请是否存在欺诈, 一般情况下欺诈申请要远少于合法申请 ; 利用诊疗数据诊断病人的疾病, 如心脏病患者要远少于健康的人。 在这些实际应用中, 人们 更关心的是数据集中的少数类, 即样本数目远少于其它类样本的一类样本, 而且这些少数 类的错分代价往往非常大, 因此需要有效提高少数类的分类精度。
同时随着数据采集技术的发展, 获取大量未标记样本变得非常容易, 而有标记样 本的获取因需要大量的人力物力仍相对困难, 从而需要研究如何有效的利用大量存在的未 标记样本协助少量有标记样本提高分类器的学习性能。 引入半监督学习的思想可同时利用 有标记样本和未标记样本对数据集进行训练和预测, 其中基于 SVM 分类器的直推式支持向 量机 TSVM 方法就是一种具有代表性的半监督分类方法, 该方法需要预先设定未标记样本 中各类样本数目比例, 这通常要依据有标记样本集的数据分布对其进行估计, 在实际应用 中, 如果未标记样本与有标记样本的数据分布偏差较大, 将严重影响 TSVM 分类方法对数据 集的分类和预测结果。
近几年来, 不平衡数据集的分类问题越来越受到数据挖掘和机器学习研究领域的 关注, 国内外学者对不平衡数据的研究主要有两个方面 : 一是基于数据采样的方法, 其主要 目的是通过对数据进行预处理降低数据的不平衡度, 如模拟增加少数类样本的少数类样本 合成过采样技术 SMOTE ; 二是基于分类算法的方法, Veropoulos 等人提出的不同惩罚参数 的支持向量机 Biased-SVM, 为各类样本指派不同的惩罚参数, 从一定程度上抵消了数据不 平衡度对分类器 SVM 的影响。
面对不平衡数据集的学习问题, 研究的困难主要来自于不平衡数据集本身的特 点: 不平衡数据集中的少数类样本不足, 样本的分布并不能很好的反映整个类的实际分布 ; 多数类通常会夹杂噪声数据, 使得两类样本往往会出现不同程度的重叠。 此外, 传统的机器 学习领域的分类方法, 在直接应用于不平衡数据集时, 如果没有考虑数据的不平衡性, 容易 将少数类样本错分为多数类, 尽管整体的分类精度比较高, 但对少数类的分类精度非常低 ; 相反的, 如果过分考虑不平衡性对分类方法的影响, 又容易出现过学习现象, 虽然对训练集 可以达到很高的分类精度, 但面对数据集的更新和变化时, 分类效果又不够理想了。发明内容 本发明的目的在于克服上述已有技术的不足, 针对有标记样本较少的不平衡数 据, 提出一种基于模糊聚类和半监督学习的不平衡数据分类方法, 以在考虑到数据不平衡 性的同时, 引入半监督学习的思想, 避免过学习现象的出现, 提高分类器对数据集中少数类 的分类精度。
实现本发明目的的技术思路是 : 通过实施模糊聚类, 并结合基于 SVM 分类器的自 训练学习过程, 对未标记样本不断进行标记和利用, 扩充有标记样本集中的少数类, 在均衡 各类样本数目的同时, 为分类器提供更多有效的样本分布信息, 从而提高分类器对不平衡 数据的分类性能。其技术方案包括以下步骤 :
(1) 读取一个包含两种类型的不平衡数据集, 将这两种类型按照样本数目的多少 分别记作少数类和多数类, 从该两类不平衡数据样本中随机选取一部分作为初始有标记样 本集 {xi}, 将剩余的数据样本作为初始未标记样本集 {xj} ;
(2) 对所述不平衡数据集的聚类中心进行初始化 :
(2a) 对当前有标记样本集 {xi} 中的少数类样本和多数类样本分别取均值, 得到均 值中心集合 M = {m+, m-}, 其中 m+ 是少数类样本的均值中心, m- 是多数类样本的均值中心 ;
(2b) 对均值中心集合 M 中的各中心分别实施均值漂移算法, 找到初始聚类中心
其中
是少数类样本的初始聚类中心, 是多数类样本的初始聚类中心 ; 其中 是少数类样本的聚类中心, 是多数类样本的聚类中心,(3) 基于初始聚类中心 M*, 对当前有标记和未标记样本实施模糊 C 均值聚类, 得到聚类中心并将当前所有未标记样本到各聚类中心的隶属度集合记作 U = {ucj|j ∈ (1, 2, ..., u), c ∈ (+, -)}, 其中 ucj 是第 j 个未标记样本到标记为 c 的聚类中心的隶属度, u 是当前未标 记样本集的样本数目 ;
(4) 通过上述模糊聚类步骤, 依据隶属度集合 U, 从当前未标记样本集 {xj} 中选取 聚类标记为正且对应隶属度最大的 H 个样本进行标记, 即 H = p×N+, 从而将当前有标记样 本集和未标记样本集分别更新为
和式中 N+ 是当前有标记样本集中少数类的样本数 和 进行基于 SVM 分类器的自训练 ; 中选取判别函数值最目, p 是从未标记样本中选取出并进行标记的比例 ; (5) 对上述聚类更新后的数据集 (6) 通过上述自训练步骤, 从聚类更新后的未标记样本集 和 式中 聚类更新后的有标记样本集 和大的 H* 个样本进行标记, 即 次更新为
从而将当前有标记样本集和未标记样本集分别再 中少数类的样本数目, p 是从未标记样本中选取出并进行标记的比例 ; (7) 对上述自训练更新后的数据集 进行基于不同惩罚参数的支撑矢 量机 Biased-SVM 的分类 ; (8) 对上述基于不同惩罚参数的支撑矢量机 Biased-SVM 的不平衡数据分类结果 利用几何均值 Gm 进行评估 ;
(9) 根据获得的几何均值是否达到最优作为终止条件, 若满足则停止迭代, 返回步 骤 (8) 输出分类结果, 否则返回步骤 (2), 直到满足终止条件为止。
本发明与现有技术相比具有如下优点 :
(1) 本发明由于引入了无监督的模糊聚类算法, 挖掘未标记样本中隐含的数据分 布信息, 因而无需人工预先确定训练样本的标记, 避免了实际操作中枯燥又费时的标记工 作; 同时由于本发明使用有标记样本引导聚类过程, 且不依赖于有标记样本的初始分布, 因 此不会受到数据集的更新和变化所带来的影响, 从而提高了分类器对不平衡数据分类的泛 化能力。
(2) 本发明由于综合考虑了在实际应用中, 经常会遇到有标记样本较少或很难获 取, 同时数据的不平衡度又很高的数据集问题, 通过实施模糊聚类, 并结合基于 SVM 分类器 的自训练学习过程, 对未标记样本不断进行标记和利用, 扩充有标记样本集中的少数类, 因 而可在均衡各类样本数目的同时, 为分类器提供更多有效的样本分布信息, 避免过学习现 象的出现, 提高了分类器对不平衡数据的分类性能。 附图说明
图 1 是本发明的流程图 ;
图 2 是本发明使用均值漂移算法对聚类中心进行初始化示意图
图 3 是本发明中参数 p 的设置对分类器的性能影响分析图 ;
图 4 是本发明与现有技术在不平衡数据集上得到的几何均值 Gm 对比图。具体实施方式
参照图 1, 本发明的具体实现步骤如下 :
步骤 1, 选定初始有标记样本集和初始未标记样本集。
给定一个不平衡数据集, 该数据集的样本按照其特征和属性的不同划分为两种类 型, 将这两种类型按照样本数目的多少分别记作少数类和多数类, 从该两类不平衡数据集 中随机选取一部分作为初始有标记样本集 {xi}, 将剩余的数据样本作为初始未标记样本集 {xj}。
步骤 2, 对所述不平衡数据集的聚类中心进行初始化。
(2a) 对当前有标记样本集 {xi} 中的少数类样本和多数类样本分别取均值, 得到均 值中心集合 M = {m+, m-}, 其中 m+ 是少数类样本的均值中心, m- 是多数类样本的均值中心 ;
(2b) 用有标记和未标记样本 {xk|k = 1, ..., n} 分别对均值中心集合 M = {m+, m-} 中的各中心点实施均值漂移算法, 找到初始聚类中心 其中 是少数类样 本的初始聚类中心, 是多数类样本的初始聚类中心。
在对均值中心集合 M = {m+, m-} 中的各中心点实施均值漂移算法时, 首先将均值漂 移向量用如下公式定义 :
其中 x 对应中心点, G() 采用高斯核函数, 核带宽取是数据集的标准差, n 是样本数目 ; 接着将 1) 式右边的第一项记为 mh(x), 给定容许误差 ε, 并执行下面 三步, 直至结束条件满足,
(a) 计算 mh(x) ;(b) 把 mh(x) 赋给 x ;
(c) 如果 ||mh(x)-x|| < ε, 结束循环, 否则返回执行 (a)。
在上述均值漂移算法中, 因为 mh(x) = x+Mh(x), 且 Mh(x) 指向概率密度梯度的方 向, 即概率密度增加最大的方向, 所以均值漂移算法通过执行以上步骤, 使得待求的中心点 不断的沿着概率密度的梯度方向移动, 最终找到样本分布最密集的区域的中心点。
图 2 展示了采用均值漂移算法初始聚类中心的有效性。 首先从经典的四类 square 数据集中任取两类, 各类样本数目之比为 1 ∶ 5, 接着从各类样本中随机选取 6%的样本作 为有标记样本, 其余作为未标记样本, 其数据分布如图 2(a) 所示, “+” 和 “×” 分别代表各 类的有标记样本, 图 2(b) 中菱形 “◇” 代表均值中心集合 M = {m+, m-} 的各中心点, “☆” 代 表通过均值漂移算法得到的初始聚类中心 的各中心点, 从图 2 可以看到, 本发 明使用的均值漂移算法得到的初始聚类中心点更接近数据集中各类的分布中心。
步骤 3, 基于步骤 2 中取得的初始聚类中心 M*, 对当前有标记和未标记样本实施 模糊 C 均值聚类, 得到聚类中心 其中 是少数类样本的聚类中心, 是 多数类样本的聚类中心, 并将当前所有未标记样本到各聚类中心的隶属度集合记作 U = 2, ..., u), c ∈ (+, -)}, 其中 ucj 是第 j 个未标记样本到标记为 c 的聚类中心 {ucj|j ∈ (1, 的隶属度, u 是当前未标记样本集的样本数目。
所述模糊 C 均值的算法步骤如下 : (a) 给定初始聚类中心 ; (b) 重复下面的运算, 直到有标记和未标记样本的隶属度值稳定 : (b1) 计算隶属度 :(b2) 利用 (b1) 中计算得到的隶属度, 计算聚类中心 :其中, vc 对应聚类中心点, uck 是第 k 个样本到标记为 c 的聚类中心的隶属度, xk 是 有标记和未标记样本的集合, n 是样本数目, b 是模糊程度系数。
步骤 4, 通过上述模糊聚类步骤, 依据取得的隶属度集合 U, 从当前未标记样本集 {xj} 中选取聚类标记为正且对应隶属度最大的 H 个样本进行标记, 即 H = p×N+, 从而将当
前有标记样本集和未标记样本集分别更新为
和 和式中 N+ 是当前有标记样本集中少数 进行基于 SVM 分类器的自训练。类的样本数目, p 是从未标记样本中选取出并进行标记的比例。 步骤 5, 对上述聚类更新后的数据集 (5a) 利用聚类更新后的有标记样本集 训练 SVM 分类器, SVM 分类器通过非线性变换将数据映射到高维空间, 在高维空间寻求最优线性分类面, 最大程度的将两类样本分 开, 训练 SVM 分类器的目标函数可表示为 :
其中 C 是惩罚参数, w 是通过训练 SVM 分类器得到的最优分类平面的权值向量, b (5b) 利用 SVM 分类器的判别函数 得到聚类更新后的未标记样本 其中 sgn() 是符号函数, 是用于测试 中选取判别函数是其偏置向量, ξi 为松弛项, 是用于训练的有标记样本 ;
集中各样本的测试标记的未标记样本。
步骤 6, 通过上述自训练步骤, 从聚类更新后的未标记样本集*即 值最大的 H 个样本进行标记, 别再次更新为
从而将当前有标记样本集和未标记样本集分 是聚类更新后的有标记样本集 和 中少数类的样本数目。 进行基于不同惩罚参数的支撑 训练不同惩罚参数的支撑矢量机和式中步骤 7, 对上述自训练更新后的数据集 (7a) 利用自训练更新后的有标记样本集矢量机 Biased-SVM 的分类。
Biased-SVM, 该训练过程针对不平衡数据集的分类问题, 为各类样本分别指派不同的惩罚 参数, 将式 4) 中描述的训练 SVM 分类器的目标函数变为 :
其中, ξi 松弛项, yi 是用于训练的有标记样本 xi 的标记, C+ 是为少数类指派的惩 罚参数, C- 是为多数类指派的惩罚参数 ;
(7b) 利用为各类样本分别指派不同惩罚参数 C+ 和 C- 的支撑矢量机 Biased-SVM 的 判别函数 f(xj) = w·xj+b, 得到初始未标记样本集 {xj} 中各样本的测试标记 label(xj) = sgn(w·xj+b), xj 是用于测试的未标记样本。
步骤 8, 对上述基于不同惩罚参数的支撑矢量机 Biased-SVM 的不平衡数据分类结 果利用几何均值 Gm 进行评估。
(8a) 分 别 计 算 出 少 数 类 的 分 类 精 度和多数类的分类精度其中, 对应于数据的预测结果, TP 是预测为少数类且实际为少数类样本数 目, FP 是预测为少数类但实际为多数类的样本数目, FN 是预测为多数类但实际为少数类的 样本数目, TN 是预测为多数类且实际为多数类的样本数目 ;
(8b) 依据上述计算得到的 Se 和 Sp 值, 计算几何均值步骤 9, 根据获得的几何均值是否达到最优作为终止条件, 若满足则停止迭代, 返 回步骤 (8) 输出分类结果, 否则返回步骤 (2), 直到满足终止条件为止。
本发明的效果可以通过以下仿真实验进一步说明 :
一、 实验条件和参数设置
在 MATLAB 仿真环境下, 基于支撑矢量机 SVMlight 工具箱, 对本发明方法和现有技 术对不平衡数据集进行分类对比实验, 其中各方法使用到的参数设置如下 :
a) 从不平衡数据集的各类样本中分别随机选取 t = 30%的样本作为初始有标记 样本集, 其余作为初始未标记样本集 ;b) 在支撑矢量机 SVM 方法中采用线性核, 惩罚参数 C = 100 ;
c) 在不同惩罚参数的支撑矢量机 Biased-SVM 中多数类的惩罚参数取 C- = 100, 并用公式 C+/C- = N-/N+ 计算少数类的惩罚参数 C+, 其中 N+ 和 N- 分别为当前有标记样本集 中少数类和多数类的样本数目 ;
d) 在少数类样本合成过采样技术 SMOTE 中取参数 n = 100, 即新产生的少数类的 样本数目为原来的 2 倍 ;
e) 本发明方法在均值漂移算法中取容许误差 ε = 0.1, 迭代循环过程中从未标记 样本中选取出并进行标记的比例 p = 0.1。
二、 实验内容与结果分析
为了验证本发明方法相比现有技术在不平衡数据分类问题上的优势, 实验中使用 一组数据不平衡度较高的生物信息数据集对各方法进行分类对比实验, 该生物信息数据集 如表 1 所示。
表1: 不平衡数据集的描述
表 1 中的数据不平衡度指不平衡数据集中少数类和多数类样本数目的比值。实验 中使用的对比方法包括 : 本发明方法以及现有技术支撑矢量机 SVM 方法、 不同惩罚参数的 支撑矢量机 Biased-SVM 方法、 少数类样本合成过采样技术 SMOTE 方法和直推式支撑矢量机 TSVM 方法。
a) 利用表 1 的不平衡数据对各方法进行的相关实验内容如下 :
a1) 本发明中参数 p 的设置对分类的性能影响分析实验。
使用本发明方法在参数 p 依次取值 {0.01, 0.03, 0.1, 0.3, 0.5} 的条件下对不平衡 数据 Data1.2 进行分类实验, 其结果如图 3 所示, 图 3 中的各条曲线是本发明方法在参数 p 的不同取值条件下, 其分类性能随迭代次数的变化情况。从图 3 可以看出, P 值越大, 即每 次迭代中从未标记样本中选取出并进行标记的比例越大, 本发明方法的分类性能达到最优 所需的迭代次数越少, 虽然时间复杂度降低了, 但每次迭代中对未标记样本错误标记的机 率就会变大, 从而方法的分类性能也随之降低。由此可见, p 值的选取应该是分类性能和算 法时间复杂度的折中, 实验中依据大量实验结果统一取经验值 p = 0.1。
a2) 本发明方法与现有技术在不平衡数据集上的分类对比实验。
不平衡数据集在各种分类方法下, 少数类的分类精度 Se 和多数类的分类精度 Sp 值如表 2 所示 ; 为了更好的评估各种分类方法的整体分类性能, 表 3 给出不平衡数据集在各
种分类方法下的几何均值 Gm, 其中表格的最后一行是各分类方法对不平衡数据的平均分类 情况 ; 为了更清楚的看出本发明方法对不平衡数据分类的优势将表 3 的实验结果绘制成柱 状图, 如图 4 所示。
表2: Se 和 Sp 值对比实验结果
表3: Gm 值对比实验结果
b) 实验结果分析。
从表 2 可以看出, 现有技术的少数类的分类精度 Se 值较低, 而多数类的分类精度 Sp 值却相对很高, 这是因为在处理不平衡数据分类问题时, 现有技术将几乎所有未标记样 本都错分成了多数类。
当前针对不平衡数据分类研究的关键在于, 如何在保证多数类的分类精度的同时 最大程度的提高少数类的分类精度, 从而提高对不平衡数据的分类精度。
从表 3 和图 4 可以看出, 本发明方法相比现有技术取得了更高的几何均值 Gm, 从而 对不平衡数据获得了更好的分类精度。
综上实验所述, 本发明针对有标记样本较少的不平衡数据分类问题, 提出一种基 于模糊聚类和半监督学习的不平衡数据分类方法, 通过在一组生物信息数据上对本发明方 法和现有技术实施分类对比实验, 验证了本发明方法相比现有技术对不平衡数据能够获得 更好的分类精度。