system: [SYSTEM]

user: 4. XGBoost提高测温精度 4.1. XGBoost拟合温度实验 1) 特征选择 航拍温度与理想值之间存在误差，采用XGBoost对航拍温度进行拟合以期达到较为精准的结果。但是XGBoost拟合航拍温度需要考虑各类影响因素，主要包括无人机的航高、姿态角(航向角、横滚角、俯仰角)、环境温度、风速、湿度等，这些影响因素在XGBoost建模的过程中称之为特征，如表1所示。 Table 1 The main features of modelin 特征种类 特征描述 监测温度 640组航拍温度与船测温度 航拍高度 航拍温度对应的640组航高 俯仰角 航拍温度对应的640组俯仰角 横滚角 航拍温度对应的640组横滚角 航速 航拍温度对应的640组航速 风速 不同高处的风速值 气温 不同高度处的气温值 湿度 不同高的处的湿度值 表1. 建模的主要特征 2) 温度预测流程 建模特征选取后，本文采用Python2.7上进行仿真实验，选取640组数据中的608组数据进行训练，32组数据作为测试集，采用XGBoost预测温度的过程如图1所示。 图1. 温度预测流程图 3) 参数的优化 XGBoost模型存在大量可以调节的参数，例如eta、max_depth、nround、subsample、alpha、lambda、min_child_weight等；根据多次实验发现，XGBoost准确率虽然较高，但仍然有较高的提升空间，故而可以将参数逐个进行优化，每优化一个参数便可以提升一定的预测精度。 例如：gamma在树的叶子节点上进一步划分所需的最小损失减少，数值越大，算法越保守，默认0最为可靠。min_child_weight [default = 1]为叶子节点中最小的样本权重和，如果一个叶子节点的样本权重和小于min_child_weight则拆分过程结束，在现行回归模型中，这个参数是指建立每个模型所需要的最小样本数，典型值取1。max_delta_step这参数限制每棵树权重改变的最大步长，如果这个参数的值为0，那就意味着没有约束，如果它被赋予了某个正值，那么它会让这个算法更加保守，通常，这个参数不需要设置，但是本文航拍温度值的样本十分不平衡，为了得到更为接近逻辑回归，故而选择参数值0；subsample决定随机采样比例，减小这个参数的值，算法会更加保守，避免出现过拟合，但是，如果这个值设置得过小，它可能会导致欠拟合，本文经过多次试验得出参数值0.85最为符合理想要求。seed为随机数种子，用来生成可复制性的结果，本文数据选择1440组。scale_pos_weight在类别高度不平衡的情况下，将参数设置大于0，可以加快收敛。 根据多次实验，本次模型选择的重要参数如下： max_depth = 5 learning_rate = 0.1 n_estimators = 75 silent = True objective = 'reg:linear' nthread = −1 gamma = 0 min_child_weight = 1 max_delta_step = 0 subsample = 0.85 colsample_bytree = 0.72 colsample_bylevel = 1 reg_alpha = 0 reg_lambda = 1 scale_pos_weight = 1 seed = 1440 4) 实验结果 按上述方法进行训练实验后，所测试的32组数据得到了较好的预测值，32组预测值中误差最大值为0.085℃，均方根误差为0.046，可知预测值精度基本满足要求，预测值、航拍值及原始值对比如图2所示。 图2. 温度拟合对比图 神经网络同样可以很好的预测温度值，如文献 [ 8 ] 采用小波神经网络对航拍温度数据进行拟合，同样的采用BP神经网络对航拍温度进行预测，预测的32组温度值误差对比图如图3所示。 图3. 预测温度误差值对比图 根据三者的预测结果进行精度评价，如表2所示：XGBoost预测的温度精度值最高，其次是小波神经网络拟合的温度值，均方根误差约为0.1左右，预测温度误差最大值为0.177℃；而BP神经网络预测的温度值相比较另外两种方法预测的温度精度最低，造成小波神经网络与BP神经网络拟合精度低于XGBoost拟合精度的主要原因是两者均未考虑诸项外在的影响因素对测温误差的影响，所以各类影响因素是不可忽略的。 Table 2 Comparison and analysis table of prediction temperature accurac 精度指标 原始误差值 BP网络 小波神经网络 XGBoost 误差最大值 0.500 0.399 0.177 0.085 均方根误差 0.231 0.159 0.101 0.046 表2. 预测温度精度对比分析表 4.2. 测温误差分析 考虑上述影响航拍温度的因素后，采用XGBoost预测出的温度值较为理想，基本确定上述各种影响因素对航拍温度的确造成了不可忽略的影响，但是并不能确定每种影响因素对航拍温度精度的影响程度，为此，采用4.1节的方法，在Python2.7进行仿真实验，分析重要的影响因素对航拍温度造成的误差，为后续的相关实验进行误差排除。 4.2.1. 影响因素重要度分析 航拍温度影响因素较多，为了分析每种影响因素对温度误差的影响程度，本文在4.1节预测值的基础上分析每种因素的重要性，采用Python进行仿真实验，关键程序如下： plot_importance(xgb_boost， importance_type = 'weight') pyplot.show() print(xgb_boost.feature_importances_) 实验分析结果如图4所示。实验表明，航拍温度影响度最大，因为航拍温度本身就是误差修正的主要特征；其次影响度为0.0517的10米高度处的瞬时风速值；然后是POS数据的影响，如横滚角、俯仰角、航高等，其中航高在姿态角中对温度的影响最大，达到了0.0463；影响度较小的为30米高度处的最大风速、10米高度处的空气湿度、GPS、80米和100米高度处2分钟内的风速、以及10米高度处的空气温度等。从大类影响因素来说，当时环境的风速、温度、湿度依然影响最大，这些影响因素在反演温度时虽然已经被国内外的学者进行了充分的研究，但是从XGBoost上来说还未进行过研究，所以重点关注对航拍温度影响度较大的因素，如各类姿态角、航高、风速、温度、湿度等，将这些影响因素逐一进行考虑分析，验证误差是否随着影响因素的增多而逐渐减小。 图4. 影响因素重要度 4.2.2. 姿态角的影响 无人机在飞行的过程中由于飞控系统的误差以及气流的影响，无人机的姿态时刻处于变化状态，内业处理时虽已对影片进行了几何校正，但是并不能完全校正姿态角造成的实际成像误差，致使所测目标值与实际值不符合；另外姿态角是一组不可分割的数据组，不可单独的分析对测温误差影响的程度，需要综合性的考虑。本文为了验证姿态角对测温精度的影响值，在无人机的航向角、横滚角、俯仰角、航高、航速等因素作用下通过XGBoost进行温度预测，并将预测值与船测值进行对比分析。采用上述640数据进行实验，预测出的32对温度的误差如图5所示。 图5. 预测温度误差图 本次实验预测温度误差最大值为0.387℃，均方根误差为0.180，未进行温度校正前的船测温度与航拍温度最大误差为0.5℃，均方根误差为0.231，从以上结果对比可知，无人机的姿态角是影响航拍温度值不可或缺的重要因素。故而为了得到更高精度的航拍温度值，必须将无人机的姿态角因素考虑在内。 4.2.3. 风速的影响 由于被测物体在室外，环境温度和目标温度会受风速的影响。当风速很大时，会造成向外散热，目标的热量被风力加速吹散，则相对应的目标景物下降，致使所测温度比实际温度低。比如风速为1 m/s，某电线设备接头的温度是60℃，根据经验公式换算，在风速为4 m/s时，该设备接头的温度仅为30℃，所以风速对误差影响不可忽视。 本次航测实验采用红沿河核电站气象观测站观测的数据资料，与航拍同步观测，这样减少了时间上不同步造成的误差问题。本次的风速因子包含有10米高度处的平均风速与瞬时风速、30米高度处的平均风速与瞬时风速、80米高度处的平均风速与瞬时风速、100米高度处平均风速与瞬时风速，为了分析风速对航拍值的影响，将各类风速因素均考虑在内，温度预测结果误差如图6所示： 图6. 预测温度误差图 预测的结果显示，本次预测温度的最大误差为0.351℃，均方根误差为0.144，与4.2.2节考虑姿态角对航拍温度值的影响相比，最大误差值已经减小，均方根误差也有所减小。 4.2.4. 湿度、气温的影响 1) 气温与湿度共同影响 根据大量的实验表明，当背景温度介于(T − 10)~(T + 25)之间时，红外测量的精度较高。在进行红外测温实验之前已经对红外成像仪影响进行了标定试验，对室外温度的影响已经进行了温度补偿。但是环境中的气温时刻在变化，比如本次测量过程中不同高度处的气温值不同，且随时间也在发生变化，这对监测温度产生了一定的影响。另外，当大气湿度大于85%的情况时，由于水蒸汽密度增加，增大了对红外辐射吸收，大气对目标物体辐射的衰减急剧加大，因此，在雨雾天气下不适宜进行红外监测；但是大气的湿度低于85%时，红外测温依然会受影响，所以综合气温和湿度这两个影响因素，探讨两者对红外测温的精度影响的程度，并分析两者对温度影响的占比情况。 实验时将不同高处的气温与大气湿度考虑进影响测温的行列，实验结果如图7所示。 图7. 预测温度误差图 实验结果显示，当考虑气温与湿度的共同影响后，预测温度最大误差为0.262℃，均方根误差为0.134，误差值再次减小。 1) 气温、湿度单独作用下的影响 在气温与湿度的共同作用下，预测的温度值精度比未进行校正前的温度值有了较大的提升，可见气温与湿度是影响测温误差的重要因素。为了探讨两者对气温的影响大小，将两个因素分别进行验证其对预测温度值的影响，首先进行在仅有气温因素作用下对航拍值进行预测值，其次进行仅有湿度作用下航拍值的预测。 实验的结果显示，当仅有气温参与温度预测时，预测温度误差的最大值为0.315℃，均方根误差为0.179；当仅有湿度参与温度预测时，预测温度误差最大值为0.316℃，均方根误差为0.144。通过对比分析，湿度对红外测温精度的影响比气温的影响大，这也比较符合原理上的解释，湿度较大时，空气中悬浮过多的水滴，将影响海面的辐射波，造成一定的折射或者漫反射，故而对测温影响较为显著。图8为气温、湿度、气温与湿度的测温误差对比曲线图。 图8. 气温、湿度测温误差对比图 2) 气温、湿度影响误差分析 根据仿真实验结果可知，将气温与湿度影响因素单独进行温度预测，其精度均低于将气温与湿度共同作用下预测温度的精度值，可以得出气温和湿度是影响测温误差因素的重要组合部分。