22、机器学习中的实用问题解析

机器学习中的实用问题解析

1. 训练数据误差来源

在机器学习中,训练数据的误差来源主要有两个方面:方差和偏差。

1.1 方差

训练集的创建方式多种多样。有些应用中,训练集是随机生成的;在其他领域,训练集由特定时刻可用的示例组成,这也包含了大量随机性;还有些情况,训练集由专家挑选他们认为最能代表给定类别的示例组成,但这种方式不可避免地带有主观性,并不比前两种方式可靠。

由于训练集的不同,会诱导出不同的分类器,这些分类器在未来数据上会产生不同的误差。这就是训练数据方差成为重要误差来源的原因。通常,使用非常大的训练集可以减少这种负面影响。

1.2 偏差

如果正类和负类不是线性可分的,那么任何线性分类器必然会对未来示例进行一定比例的错误分类。与偏差相关的误差不能低于某个限度,因为它们是所选分类器类型本质固有的。

1.3 方差与偏差的权衡

可以通过采用偏差较弱的机器学习范式来减少与偏差相关的误差,但这样做的一个意外后果是方差会增加。相反,原则上可以通过加强偏差来减少方差,但如果偏差不正确,会增加与偏差相关的误差频率。

2. 不平衡训练集问题

2.1 不平衡训练集现象

以漏油领域为例,记录良好的漏油图像相对较少,项目可能只有几十个正例,而负例却大量存在。这种两类样本的不平衡表示对机器学习会产生严重后果。

通过一个简单实验可以观察到这种影响。假设初始训练集只有50个正例和50个负例,进行5折交叉验证。之后不断增加负例数量,保持正例数量不变,重复实验。结果发现,随着多数类示例数量的增加,诱导出的分类器会偏向于多数类,多数类的分类准确率接近100%,而少数类的分类准确率降至20%以下,两者的几何平均值也不断下降。这种现象被称为不平衡类表示问题。

2.2 解决方法

2.2.1 多数类欠采样
  • 机械方法 :当训练集严重不平衡,如十分之九的示例为负例时,可以随机移除许多负例,例如每个负例有50%的概率从训练集中删除。从这个缩减后的集合诱导出的分类器可能会优于从整个训练集诱导出的分类器。
  • 原因分析 :以1 - NN分类器为例,当训练集中绝大多数示例为负例,且数据存在大量类标签噪声时,几乎每个正例的最近邻都是负例,导致1 - NN分类器误分类正例,产生大量假阴性。
  • 有针对性的方法 - 单边选择 :利用Tomek链接技术,两个示例(x, y)若满足三个条件则参与Tomek链接:每个示例有不同的类标签;x的最近邻是y;y的最近邻是x。通过删除每个Tomek链接对中的负例参与者,可以提高分类器的性能,这种方法比随机删除多数类示例更有效。
2.2.2 少数类过采样

在某些领域,训练集非常小,欠采样会使训练集进一步缩小,不切实际。此时可以采用相反的方法,即添加代表少数类的示例。由于没有真实的少数类示例,可以通过以下两种方式人工创建:
- 为少数类的每个示例创建一个或多个副本并添加到训练集中。
- 为少数类的每个示例创建其略微修改的版本并添加到训练集中,修改可以通过对连续属性进行微小(随机)更改实现,对离散属性值的更改效果相对较差。

3. 上下文相关领域问题

3.1 上下文相关类

有些类的本质会随环境变化。例如,“时尚服装”的含义随时间变化,不同文化对时尚的理解也不同;“最先进技术”在不同时期有不同的定义;“民主”和“正义”等术语的含义取决于政治背景和历史情况。在语音识别软件中,同一个单词在英国和北美发音不同,但软件需要理解来自两个背景的说话者。

3.2 上下文相关特征

上下文被理解为“单独考虑时对类没有影响,但与其他特征结合时会影响类的特征”。例如在医疗诊断中,性别单独对前列腺癌诊断没有预测能力,但“性别 = 女性”明确表示不是前列腺癌。在其他诊断中,性别会影响某些实验室测试的临界值或先验概率。

3.3 上下文相关领域的归纳策略

以诱导语音识别系统为例,训练示例来自英国和美国说话者,属性向量包含“说话者来源”这一上下文属性。工程师可以采用两种策略:
- 利用上下文属性,将训练示例分为英国说话者和美国说话者两个子集,分别诱导分类器。
- 将所有示例混合在一个大的训练集中,诱导一个“通用”分类器。

实践经验表明,在这类应用中,第一种策略性能更好,但实时系统需要知道使用哪个分类器,这可以通过一个额外的二值分类器来辅助决策,该分类器用于区分英国和美国说话者。

3.4 概念漂移

有时上下文会随时间变化,这就是所谓的概念漂移。概念漂移有多个方面:
- 变化程度 :在一些罕见领域,类的含义变化很大,诱导的分类器几乎无用,需要诱导新的分类器;更常见的是变化较轻微,只是轻微降低分类性能,旧分类器可能经过微调后仍可使用。
- 变化速度 :变化可能是突然的,也可能是逐渐的。在逐渐变化的情况下,工程师需要考虑变化速度以及是否需要采取特殊行动。

3.5 时变类的归纳

在最简单的概念漂移场景中,分类器面对一个逐个到达的示例流。每次有示例到达,分类器为其标记类别,可能有反馈表明分类是否正确。如果怀疑可能出现概念漂移,可以使用滑动窗口。分类器仅从“窗口内看到”的示例诱导。每次新示例到达时,将其添加到窗口中,在适当的时候移除旧示例,可以逐个移除或按组移除,如“最旧的25%示例”。

以下是一个简单的表格总结上述内容:
|问题类型|具体问题|解决方法|
| ---- | ---- | ---- |
|训练数据误差|方差|使用大训练集|
| |偏差|采用弱偏差范式,但可能增加方差|
|不平衡训练集|多数类主导|多数类欠采样(机械方法、单边选择),少数类过采样|
|上下文相关领域|类含义随环境变化|根据上下文属性分组诱导分类器,考虑概念漂移及滑动窗口方法|

下面是一个mermaid流程图展示不平衡训练集处理流程:

graph LR
    A[不平衡训练集] --> B{是否适合欠采样}
    B -- 是 --> C[多数类欠采样]
    C --> D1[机械方法]
    C --> D2[单边选择]
    B -- 否 --> E[少数类过采样]
    E --> F1[创建副本]
    E --> F2[创建修改版本]

4. 总结与实际应用建议

4.1 误差来源应对总结

在处理训练数据误差时,我们需要平衡方差和偏差。方差主要源于训练集的创建方式,不同的训练集可能诱导出不同的分类器,从而在未来数据上产生不同的误差。为了减少方差的影响,我们可以使用更大的训练集。而偏差则与分类器的类型有关,如果正类和负类不是线性可分的,线性分类器必然会产生一定比例的错误分类,且这种偏差相关的误差不能低于某个限度。在选择机器学习范式时,若采用弱偏差范式可以减少偏差相关误差,但会增加方差;加强偏差虽能减少方差,但如果偏差不正确,会增加偏差相关误差的频率。

4.2 不平衡训练集处理建议

对于不平衡训练集问题,我们有多种处理方法可供选择。当训练集较大且多数类样本过多时,可以考虑多数类欠采样。具体操作如下:
- 机械方法 :随机删除多数类样本,例如每个多数类样本有50%的概率被删除。
- 单边选择 :利用Tomek链接技术,删除每个Tomek链接对中的负例参与者。操作步骤为:
1. 确定训练集中的Tomek链接对,即满足每个示例有不同的类标签、x的最近邻是y、y的最近邻是x这三个条件的示例对(x, y)。
2. 删除Tomek链接对中的负例。

当训练集本身较小,欠采样可能会影响分类器性能时,可采用少数类过采样方法。具体方式有:
- 创建副本 :为少数类的每个示例创建一个或多个副本并添加到训练集中。
- 创建修改版本 :对少数类的每个示例,通过对连续属性进行微小(随机)更改来创建其略微修改的版本并添加到训练集中。

4.3 上下文相关领域处理要点

在上下文相关领域,我们需要充分考虑类的含义随环境变化的情况。当处理包含上下文属性的训练数据时,建议根据上下文属性将训练示例分组,分别诱导分类器。例如在语音识别系统中,将来自英国和美国说话者的训练示例分开,分别诱导分类器,这样通常能获得更好的性能。同时,要注意概念漂移的问题,当上下文随时间变化时,需要采取相应的措施。如果怀疑可能出现概念漂移,可以使用滑动窗口方法,具体操作步骤为:
1. 确定滑动窗口的大小。
2. 分类器仅从“窗口内看到”的示例诱导。
3. 每次新示例到达时,将其添加到窗口中。
4. 在适当的时候移除旧示例,可以逐个移除或按组移除,如“最旧的25%示例”。

4.4 实际应用步骤总结

为了更清晰地展示在实际应用中如何处理这些问题,下面给出一个综合的操作步骤列表:
1. 数据检查
- 检查训练集是否存在方差和偏差问题,观察训练集的创建方式以及分类器在不同训练集上的表现。
- 检查训练集是否不平衡,统计正类和负类的样本数量。
- 检查数据是否存在上下文相关问题,判断类的含义是否随环境变化。
2. 问题处理
- 若存在方差问题,考虑增加训练集的大小。
- 若存在偏差问题,权衡采用弱偏差范式或加强偏差的利弊。
- 若训练集不平衡,根据训练集大小和实际情况选择多数类欠采样或少数类过采样方法。
- 若数据存在上下文相关问题,根据上下文属性分组诱导分类器,并考虑概念漂移的影响,必要时使用滑动窗口方法。
3. 模型评估
- 使用交叉验证等方法评估处理后模型的性能,观察分类准确率、召回率等指标。
- 根据评估结果调整处理方法和模型参数,直到达到满意的性能。

以下是一个mermaid流程图展示实际应用的整体流程:

graph LR
    A[数据检查] --> B{是否存在方差问题}
    B -- 是 --> C[增加训练集大小]
    B -- 否 --> D{是否存在偏差问题}
    D -- 是 --> E{选择弱偏差范式还是加强偏差}
    E --> F[调整模型]
    D -- 否 --> G{训练集是否不平衡}
    G -- 是 --> H{是否适合欠采样}
    H -- 是 --> I[多数类欠采样]
    H -- 否 --> J[少数类过采样]
    G -- 否 --> K{是否存在上下文相关问题}
    K -- 是 --> L[根据上下文分组诱导分类器]
    K -- 否 --> M[正常诱导分类器]
    C --> N[模型评估]
    F --> N
    I --> N
    J --> N
    L --> N
    M --> N
    N --> O{性能是否满意}
    O -- 否 --> P[调整处理方法和参数]
    P --> A
    O -- 是 --> Q[应用模型]

4.5 未来展望

随着机器学习技术的不断发展,我们可以预见在处理这些实际问题方面会有更多的创新方法。例如,在处理不平衡训练集时,可能会有更智能的采样算法出现,能够根据数据的分布和特征自动选择最佳的采样策略。在上下文相关领域,可能会有更先进的模型能够更好地适应类含义的动态变化,减少概念漂移的影响。同时,随着数据量的不断增加和计算能力的提升,我们也有更多的机会去探索更复杂的模型和算法,以提高机器学习系统的性能和稳定性。

总之,通过深入理解训练数据误差来源、不平衡训练集问题以及上下文相关领域的特点,并采用合适的处理方法,我们能够提高机器学习模型的性能,使其更好地应用于实际场景中。希望本文的内容能够为读者在机器学习实践中提供有益的参考和指导。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值