task04 学习笔记

task04学习笔记

学习笔记–类别不均衡问题学习
我觉得太多学员和我一样,还没有找到分析对象的本质。虽然他们运用算法也拿到了高分。
但他们真的关心心电图中预示疾病的特征了吗?这个他们引以为荣的算法能解决临床医生们的困惑了吗?
心电图的波峰波谷,即心电图时间序列的揭示出的特点与不同疾病究竟有何种关联,疾病之间的关联特征?
还有类别不均衡情况,也得到恰当的处理了么?

不平衡场景下学习困难的来源

通常情况下,类别不平衡程度越高,数据集的分类难度越大。但在一些工作中,发现存在某些高度不平衡的数据集,在这些数据集上不加任何修改的标准学习模型(如,SVM,Decision Tree等)仍能得到很好的分类结果。显然,类别不平衡本身并不是分类困难的来源,其背后的原因需要对数据分布以及模型在训练过程中的行为进行更细致的观察。
一些研究工作尝试说明不平衡数据集上分类困难的本质原因,这些工作认为分类困难的原因来自于数据分布中的一些本质因素。如,

  • 过多的少数类样本出现在多数类样本密集的区域 类别之间的分布严重重叠(即不同类别的样本相对密集地出现在特征空间的同一区域)
    数据中本身存在的噪声,尤其是少数类的噪声
    少数类分布的稀疏性(sparsity)以及稀疏性导致的拆分多个子概念(sub-concepts,可理解为子clusters)并且每个子概念仅含有较少的样本数量

因素4又被称为small disjuncts问题。它导致分类困难的原因很直观:在同样的特征空间中,相比于只有一个cluster的简单少数类分布,具有多个子概念的少数类分布需要模型给出更复杂的决策边界来获得良好的预测。在模型复杂度不变的情况下,分类性能会因子概念个数的增多而变差。因此该问题的解决办法也较为简单:上更大容量的模型(DL: 更宽,更深,更强)。

不平衡学习算法划分为3类:数据级方法,算法级方法以及集成方法。

数据级方法
数据级方法是不平衡学习领域发展最早、影响力最大、使用最广泛的一类方法,也可称为重采样方法。该类方法关注于通过修改训练数据集以使得标准学习算法也能在其上有效训练。根据实现方式的不同,数据级方法可被进一步分类为:

  1. 从多数类别中删除样本的方法(欠采样,如RUS、NearMiss[11]、ENN[12]、Tomeklink[13]等)
  2. 为少数类别生成新样本的方法(过采样,如SMOTE[14],ADASYN[15],Borderline-SMOTE[16]等)
  3. 结合上述两种方案的混合类方法(过采样+欠采样去噪,如SMOTE+ENN[17]等)

标准的随机重采样方法使用随机方法来选择用于预处理的目标样本。然而随机方法可能会导致丢弃含有重要信息的样本(随机欠采样)或者引入无意义的甚至有害的新样本(随机过采样),因此有一系列更高级的方法,试图根据根据数据的分布信息来在进行重采样的同时保持原有的数据结构。

Strength:

  1. 该类方法能够去除噪声/平衡类别分布:在重采样后的数据集上训练可以提高某些分类器的分类性能。
  2. 欠采样方法减小数据集规模:欠采样方法会去除一些多数类样本,从而可能降低模型训练时的计算开销。

Weakness:

  1. 采样过程计算效率低下:这一系列的“高级”重采样方法通常使用基于距离的邻域关系(通常是k-最近邻方法)来提取数据分布信息。该方式的缺点是需要计算每个数据样本之间的距离,而计算距离需要的计算量随着数据集的大小呈平方级增长,因此在大规模数据集上应用这些方法可能会带来极低的计算效率。
  2. 易被噪声影响:此外在具有高不平衡比且包含大量噪声的工业数据集中,少数类的结构可能并不能被样本的分布很好地表示。而被这些重采样方法用来提取分布信息的最近邻算法很容易被噪声干扰,因此可能无法得到准确的分布信息,从而导致不合理的重采样策略。
  3. 过采样方法生成过多数据:当应用于大规模且高度不平衡的数据集时,过采样类的方法可能会生成大量的少数类样本以平衡数据集。这会进一步增大训练集的样本数量,增大计算开销,减慢训练速度,并可能导致过拟合。
  4. 不适用于无法计算距离的复杂数据集:最重要的一点是这些重采样方法依赖于明确定义的距离度量,使得它们在某些数据集上不可用。在实际应用中,工业数据集经常会含有类别特征(即不分布在连续空间上的特征,如用户ID)或者缺失值,此外不同特征的取值范围可能会有巨大的差别。在这些数据集上定义合理的距离度量十分困难。

算法级方法
算法级方法专注于修改现有的标准机器学习算法以修正他们对多数类的偏好。在这类方法中最流行的分支是代价敏感学习[18,19](cost-sensitive learning),我们在此也只讨论该类算法。代价敏感学习给少数类样本分配较高的误分类代价,而给多数类样本分配较小的误分类代价。通过这种方式代价敏感学习在学习器的训练过程中人为提高了少数类别样本的重要性,以此减轻分类器对多数类的偏好。

调参:深度学习学到的分类器 P(z | x) 正比于 P(x | z) * P(z)。这是个贝叶斯公式,也就是说它学到了先验知识 – 多数类 P(z) ~ 99%。使用这个先验,它不需要知道任何 P(x | z) 的知识就能得到99%的预测精度。现在对多数类欠采样,使用1:1 的 P(z) 分布,那么就强迫神经网络学习 P(x | z)。但同时,神经网络从数据中学不到任何先验的 P(z)。直接应用于不均衡的测试数据,结果只会变差。如果知道测试数据与训练数据是 iid,那么可以直接将已知的先验-- 多数类 P(z) ~ 99%应用于测试数据。UC Berkeley 深度学习课上讲了一种修正 Covariate Shift 的方法。这种方法甚至适用于测试数据先验未知的情形,可以直接拿过来处理样本不均衡。
机器学习两类需要调参的参数(parameters)
优化类的参数:学习率(learning rates)、mini batch、训练代数(epochs)
模型类的参数:隐含层数(hidden layers)、模型结构的参数(如RNN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值