近期在做一个研究,流程图与方法都早早确定了,唯一的工作就是尽快做出结果。但是我预期很简单的操作,却遇到了很多问题,走了一些弯路,主要是做了一些重复的过程,浪费了宝贵的时间。
因此,在这里总结下我得到的教训,以及在其中的收获。
一)优化好实验流程,再动手
论文的流程图与实验的流程图,并不能等同。一个好的实验流程首先应该:
1. 实验开始前,尽可能对数据进行精简。确保只有必要的数据参与实验**
例如:加入你要做北京市的城市拓展研究,就请务必把你使用的各类遥感数据裁剪到北京地区。不要拿全国的影像参与计算。
又例如:处理POI数据时,请删掉大量无用的字段。
2. 先拿小样本做示范实验,走通全部流程,发现并排除所有可能遇到的问题。**
理想和现实之间永远是有差距的。在实验设计的时候,我们难以预见到所有可能的问题。很多都是极小极小的疏忽。这些问题大多是技术层面的,并不是我们的理论和方法有问题。更多的是数据格式,投影方式,代码输入,统计的时候字段匹配错误等等。
但如果我们开始就拿着全部的数据或研究区进行实验,运算量大,工作量大。遇到了问题,再重头开始。其实会浪费大量的时间和精力。
例如,我想进行全国的城市范围提取,使用随机森林算法,使用的变量包括土地利用数据,夜间灯光数据,NDVI等等。我完全可以只选择北京地区,只是用土地利用数据,看流程能否走通。期间我可能遇到很多问题,如发现遥感数据的投影有问题,随机森林的代码有问题等等。如果我用小样本实验的话,就能用最小的时间成本发现问题。否则,上来我就用全部数据搞,仅仅“投影有问题”这一步,可能就要花费几天的操作才能发现(对所有的遥感数据都做好了处理和统计),又要重复浪费了很多时间。
3对数据做探索性分析
对数据质量进行检查,包括缺失值,0值,甚至本该是数字的地方结果是一个字符(比如 na) 。这些问题如果未能在此阶段发现,后续进行建模的时候,不可避免的报错,又要重新检查。