在地学智能化应用中,很多分类任务都会遇到同一个现实问题:
-
泥岩样本特别多,砂岩或优质储层样本很少;
-
“非储层”占绝大多数,“储层”只占一小部分;
-
甚至某些关键岩性(如胶结强的白云岩、特定相带的细粒岩)样本数量极少。
这会导致一个典型现象:
模型 Accuracy 看起来不低,但关键类别(少数类)几乎识别不出来。
或者你把 Recall 拉高了,误报(Precision 下降)又变得很严重。
这一篇文章专门讲清楚:
-
什么是类别不平衡,为什么地学里普遍存在;
-
它会对模型和指标造成什么影响;
-
常见的处理方法有哪些;
-
在岩性识别、甜点评价中如何做更“可落地”的选择。
一、什么是类别不平衡?地学里为什么特别常见?
1. 定义
类别不平衡(Class Imbalance) 指的是:不同类别的样本数量差异很大。
例如(简化):
-
泥岩:80%
-
砂岩:15%
-
灰岩:4%
-
优质储层:1%
2. 地学里常见原因
-
地质客观事实:某类岩性/相带本来就占比小。
-
采样偏差:核心、测试、化验往往集中在目标层段,其他层段标签缺失。
-
解释标准偏差:解释人员更倾向于给出“大类”,导致小类更稀少。
-
数据整合问题:多井合并后,某些井特定岩性多,整体分布被拉偏。
二、类别不平衡会导致什么问题?(你会看到的“假象”)
1) Accuracy 会被“多数类”绑架
如果“泥岩”占 90%,模型永远预测泥岩,也能获得 90% 的 Accuracy。
但这在岩性识别或甜点评价中毫无价值。
所以:类别不平衡时,Accuracy 不是核心指标。
2) 少数类 Recall 很低:关键段识别失败
在甜点评价或优质储层识别中,你往往更关心:
真正的好段有多少能被抓出来?(Recall)
不平衡数据下,模型为了“整体准确”,会倾向于预测多数类,从而漏掉少数类,Recall 下降。
3) Precision 与 Recall 常常“互相拉扯”
特别在二分类任务(优质储层 vs 非优质)中:
-
想提高 Recall(少漏判) → 模型会更“激进”,误报增加 → Precision 下降
-
想提高 Precision(少误报) → 模型会更“保守”,漏判增加 → Recall 下降
这不是模型“坏”,而是你需要明确业务侧:
漏判和误判哪一个代价更大。
三、正确的评估方式:别只看一个数字
类别不平衡情况下,推荐你优先看:
1) 每类 Recall / Precision
尤其关注你最关心的类别(优质储层、关键岩性)。
2) Macro-F1
多分类任务里,Macro-F1 对少数类更敏感,是比 Accuracy 更稳健的综合指标。
3) PR 曲线与 PR-AUC(强烈推荐)
在“少数类很少”的场景下,PR 曲线(Precision-Recall curve)通常比 ROC 曲线更有意义。
原因很简单:ROC 在极不平衡时可能看起来“很好看”,但实际少数类效果并不好。
四、处理类别不平衡的四大策略(按优先级推荐)
下面这四类方法,从“最稳健、最常用”到“更激进”,你可以按实际情况选择。
策略 A:改指标与改验证方式(先做这个)
在动数据之前,先确保你评估方式正确:
-
按井分组验证(GroupKFold / 留井法)
避免同井信息泄露导致指标虚高。 -
用 Macro-F1、每类 Recall、PR-AUC
把关注点从“整体正确”转到“关键类能否识别”。
很多时候,你会发现不是模型不行,而是你之前看的指标不对。
策略 B:加权训练(Class Weight)——最推荐的“第一步干预”
核心思想:
让模型在训练时更加重视少数类,把“漏判少数类”的代价提高。
常见做法:
-
对逻辑回归、SVM、神经网络等:设置
class_weight='balanced'或自定义权重 -
对树模型(RF、XGBoost、LightGBM):也有对应权重参数(例如样本权重、正负样本权重比例)
优点:
-
不改变原始数据分布(更稳健)
-
实现成本低
-
对多数场景有效
注意:
-
权重过高可能导致误报增加,需要结合 Precision/Recall 平衡。
策略 C:重采样(Resampling):过采样与欠采样
核心思想:通过改变训练样本数量分布,让模型“看到更多少数类”。
1) 欠采样(Undersampling)
减少多数类样本,使比例更平衡。
优点:
-
训练更快
-
有时能显著提升少数类 Recall
缺点:
-
丢失大量多数类信息,可能导致整体泛化变差
-
地学数据异质性强,删掉样本可能删掉关键变化
适用:多数类样本极多、且冗余明显的情况。
2) 过采样(Oversampling)
增加少数类样本数量。
常见方法:
-
简单复制少数类(Random Oversampling)
-
SMOTE:用插值方式生成“合成样本”
优点:
-
保留多数类信息
-
能提升少数类识别能力
缺点:
-
简单复制容易过拟合
-
SMOTE 在地学数据上需谨慎:合成样本可能不符合地质约束(尤其是岩性边界、层位约束明显时)
地学建议:
-
优先尝试“轻量过采样 + 强约束验证(按井)”
-
不要一上来就大比例 SMOTE,容易制造虚假样本结构。
策略 D:改决策阈值(Threshold Tuning)——甜点评价非常实用
很多分类模型的输出是概率:P(优质储层)。
默认用 0.5 作为阈值,但在不平衡数据里,0.5 往往不合理。
你可以按业务目标调阈值:
-
想提高 Recall(少漏判):阈值从 0.5 降到 0.3
-
想提高 Precision(少误报):阈值从 0.5 提到 0.7
这一步非常适合甜点评价:
因为你可以在不同阶段使用不同阈值策略:
-
初筛阶段:Recall 优先
-
精选阶段:Precision 优先
五、岩性识别与甜点评价:两类典型业务的“建议打法”
场景 1:岩性分类(多分类)
目标:别让小类“全灭”,同时整体稳定。
推荐组合:
-
指标:Macro-F1 + 每类 Recall + 混淆矩阵
-
验证:按井分组交叉验证(GroupKFold)
-
方法:class_weight(优先) + 适度过采样(谨慎)
-
结果检查:岩性柱状图是否碎片化(必要时引入平滑/层段约束)
场景 2:甜点评价 / 优质段识别(二分类)
目标:明确漏判与误判成本,并用阈值控制策略。
推荐组合:
-
指标:Recall、Precision、F1、PR-AUC
-
验证:留井法(或按区块留出)
-
方法:class_weight + 阈值调优(核心)
-
输出:给出“不同阈值下的候选段数量与可信度”,便于工程决策
六、结语:不平衡不是“坏数据”,而是地学真实世界的常态
类别不平衡几乎是地学建模的常态,不需要恐慌。关键是:
-
用对指标(别被 Accuracy 误导)
-
用对验证(按井分组防止虚高)
-
先用权重,再考虑重采样
-
用阈值把模型输出转化为可落地的决策策略
文章评论