问题
之前被模型的高正确率、查准率、查全率蒙蔽了双眼。紫菜。。。
问题出处:
1.对于未计量的数据,在预处理打标签时,直接将其等同于未选用归为负类。这样的负类就地提高了模型整体的准确率。把未计量的数据拿进去跑确实没什么意义,可以说模型只学习到了是否发生计量。
2.负类太少,导致正类的查准率和查全率看起来很高。
检验
1.修改数据集,不考虑含水率,只采用带有“measuring”关键字的数据项并作预处理。训练得到对于负类的查准率很低。
2.数据集中负类数量较少,约16%。包括曾经记录方式不同的数据,该数据可能在预处理时直接被归为负类,但在目前数据集上只占极少数。
3.绝大多数的数据其实只包含了关键字“measuring”、“sampling”,k规则少有用武之地。
考虑直接根据规则生成满足规则的强数据集。
框架修改
流程:
1.根据计量值与选用值是否相同,得到带标签数据集。
2.
- 抽取带标签数据集中的数据,再生成满足对应k规则的带标签强化数据集。注意调整正负类的占比。
对抽取方法的选取注意时序的影响,同时也待验证。满足k规则不一定是同时满足所有k个规则,而是使满足规则数量最大化,且包含规则覆盖的所有情况。比如“well shut in”关井和“open well”开井是一对矛盾的关键字,不可能同时出现,这两个关键词需要分别生成数据。实际情况下也极少出现很多关键字同时出现的情况。 - 带标签数据集合直接训练,获得初步的训练好的ANN模型
3.用强数据集进一步训练已有模型,获得增强模型
教训:充分了解数据特点,避免做过多的无用功。