油田生产数据选取进展22.3.4 观察实验

去噪效果

训练集效果,未添加防止过拟合的措施
1 号井

dataAccuracyFprecisionFnrecallFnf1-score
origin98.10100.0091.2695.43
denoised99.79100.0098.7799.38

原始数据
AccuracyF 98.10 posLabel 19.87
precisionF 100.00 recallF 91.26 f1score 95.43
去噪后
AccuracyF 99.79 posLabel 16.91
precisionF 100.00 recallF 98.77 f1score 99.38

2 号井

dataAccuracyFprecisionFnrecallFnf1-score
origin99.32100.0095.5497.72
denoised100.00100.00100.00100.00

原始数据
AccuracyF 99.32 posLabel 14.56
precisionF 100.00 recallF 95.54 f1score 97.72
去噪后
AccuracyF 100.00 posLabel 10.07
precisionF 100.00 recallF 100.00 f1score 100.00

去噪确实能提高在训练集的拟合效果,但是不排除人为再次出错的情况。
去噪的方法待和甲方再讨论。

信息提取

去噪后 2 号井
讨论提取信息:连续未选用次数
从决策树结果发现,决策树的学习依赖于该提取信息。每一折分开训练,该提取信息也是极为重要。
(见大图)
是否有该信息模型的影响很大
提取:
k-fold f1 score:[0.81818182 0.64102564 0.7 ]
不提取:
k-fold f1 score:[0.47826087 0.28888889 0.37837838]

若去掉该提取信息,神经网络的效果会急剧下降。

foldtrain lossvalid lossAccuracyFprecisionFnrecallFnf1-score
fold 10.0006440.09326494.2985.7131.5846.15
fold 20.0012340.01557997.96100.0085.7192.31
fold 30.0005550.01402896.7375.0090.0081.82

********** fold 1 **********
train_loss:0.000644 train_acc:100.0000
valid loss:0.093264 valid_acc:94.2857
AccuracyF 94.29 posLabel 2.86
precisionF 85.71 recallF 31.58 f1score 46.15
********** fold 2 **********
train_loss:0.001234 train_acc:99.7959
valid loss:0.015579 valid_acc:97.9592
AccuracyF 97.96 posLabel 12.24
precisionF 100.00 recallF 85.71 f1score 92.31
********** fold 3 **********
train_loss:0.000555 train_acc:100.0000
valid loss:0.014028 valid_acc:96.7347
AccuracyF 96.73 posLabel 9.80
precisionF 75.00 recallF 90.00 f1score 81.82

删除提取信息:

foldtrain lossvalid lossAccuracyFprecisionFnrecallFnf1-score
fold 10.0137440.08232491.430.000.000.00
fold 20.0077520.05574686.5357.1422.8632.65
fold 30.0126970.04991190.6138.4625.0030.30

********** fold 1 **********
train_loss:0.013744 train_acc:96.3265
valid loss:0.082324 valid_acc:91.4286
AccuracyF 91.43 posLabel 0.82
precisionF 0.00 recallF 0.00 f1score 0.00
********** fold 2 **********
train_loss:0.007752 train_acc:97.7551
valid loss:0.055746 valid_acc:86.5306
AccuracyF 86.53 posLabel 5.71
precisionF 57.14 recallF 22.86 f1score 32.65
********** fold 3 **********
train_loss:0.012697 train_acc:96.3265
valid loss:0.049911 valid_acc:90.6122
AccuracyF 90.61 posLabel 5.31
precisionF 38.46 recallF 25.00 f1score 30.30

数据分块实验

5 口井合并
未进行去噪处理。
计量数: 2532
k折交叉验证:

foldtrain lossvalid lossAccuracyFprecisionFnrecallFnf1-score
fold 10.0010030.01597695.8597.8082.4189.45
fold 20.0014220.00961899.0197.2295.8996.55
fold 30.0010920.00181899.6098.3398.3398.33
fold 40.0011010.00686397.6398.4092.4895.35
fold 50.0010150.02187597.0493.9491.1892.54

********** fold 1 **********
train_loss:0.001003 train_acc:99.9012
valid loss:0.015976 valid_acc:95.8498
AccuracyF 95.85 posLabel 17.98
precisionF 97.80 recallF 82.41 f1score 89.45
********** fold 2 **********
train_loss:0.001422 train_acc:99.8518
valid loss:0.009618 valid_acc:99.0119
AccuracyF 99.01 posLabel 14.23
precisionF 97.22 recallF 95.89 f1score 96.55
********** fold 3 **********
train_loss:0.001092 train_acc:99.9506
valid loss:0.001818 valid_acc:99.6047
AccuracyF 99.60 posLabel 11.86
precisionF 98.33 recallF 98.33 f1score 98.33
********** fold 4 **********
train_loss:0.001101 train_acc:99.8518
valid loss:0.006863 valid_acc:97.6285
AccuracyF 97.63 posLabel 24.70
precisionF 98.40 recallF 92.48 f1score 95.35
********** fold 5 **********
train_loss:0.001015 train_acc:99.9506
valid loss:0.021875 valid_acc:97.0356
AccuracyF 97.04 posLabel 19.57
precisionF 93.94 recallF 91.18 f1score 92.54

去噪后 2 号井
计量数: 735
问题:单井的计量数量少,导致分块时容易出现
在上次 实验 的基础上,去掉结果中差异最大的第一块数据,再作k折交叉验证:

foldtrain lossvalid lossAccuracyFprecisionFnrecallFnf1-score
fold 10.0006640.02748193.25100.0042.1159.26
fold 20.0001130.07290192.02100.0058.0673.47
fold 30.0014030.00756997.5557.1480.0066.67

********** fold 1 **********
train_loss:0.000664 train_acc:100.0000
valid loss:0.027481 valid_acc:93.2515
AccuracyF 93.25 posLabel 4.91
precisionF 100.00 recallF 42.11 f1score 59.26
********** fold 2 **********
train_loss:0.000113 train_acc:100.0000
valid loss:0.072901 valid_acc:92.0245
AccuracyF 92.02 posLabel 11.04
precisionF 100.00 recallF 58.06 f1score 73.47
********** fold 3 **********
train_loss:0.001403 train_acc:100.0000
valid loss:0.007569 valid_acc:97.5460
AccuracyF 97.55 posLabel 4.29
precisionF 57.14 recallF 80.00 f1score 66.67

2折交叉验证(相当于相互验证,效果劣于整体作k折验证,因为数据又减少了)

foldtrain lossvalid lossAccuracyFprecisionFnrecallFnf1-score
fold 10.0015710.03871891.8494.1245.7161.54
fold 20.0026630.02114795.1070.0070.0070.00

********** fold 1 **********
train_loss:0.001571 train_acc:100.0000
valid loss:0.038718 valid_acc:91.8367
AccuracyF 91.84 posLabel 6.94
precisionF 94.12 recallF 45.71 f1score 61.54
********** fold 2 **********
train_loss:0.002663 train_acc:100.0000
valid loss:0.021147 valid_acc:95.1020
AccuracyF 95.10 posLabel 8.16
precisionF 70.00 recallF 70.00 f1score 70.00

对每一块数据生成的决策树:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下一步工作

1.机器去噪是否可行?
2.迁移学习
3.


老板的笔记
实验观察的三个层次:

  1. 顶层,如测试精度。可以通过最终结果来观察。相当于系统测试。
  2. 中层,如:把数据分成几块,分别计算:
    a) 训练集中的精度、召回率等,知道模型的拟合能力,这是一个基本保障。如果这个效果不好,就表示数据质量不好,无法保证内部的一致性;
    b) 用一块训练,另一块测试,获取精度、召回率等。如果这个不好,就表示分布不同;
    c) 用 k - 1 块训练,另一块测试,获取精度、召回率等。如果这个不好,就表示这一块与其它的分布不同;
    d) 生成决策树等具有可读性的模型,比较不同数据块获得的模型;
    相当于集成测试。
  3. 底层,对单个的样例分类。可以通过跟踪调拭来观察。相当于单元测试。

总之,要进行具体问题的定位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值