目前模型的问法优化看似进入了一个瓶颈期,在这个阶段模型的同学一直在调数据跑模型,但见效甚微,大家难免会有些感到手足无措,或者沮丧,这种情况在咱们做模型的过程中肯定会经常遇到的。那么如果碰到这种情况了,我们应该如何去进一步实现我们的目标,体现我们作为算法的价值呢?我觉得有几个点可以和大家分享下看法。
首先,定位问题。
对于算法建模来说,我们的目标不是为了找到最好的模型,最先进的模型,而是用模型加数据来构建我们对目标的认识。模型在这个过程中起到的作用是生产工具,是实现手段,是网;而数据在这个过程中是生产原料,是池塘。结合我们的优化问题,我们看到的现象是模型效果不好,那么从咱们数据和模型的角度来看,导致模型不好的原因有哪些?这个是需要我们仔细考量的。我先抛砖引玉,提几个关于效果不好方面的问题:
a)从模型角度来说,我们当前的模型假设是什么?模型表达能力够么?还是太复杂了?模型能够快速迭代么?
b)从模型和数据结合来说,对结果不好的数据,为什么学不好?模型学到的是数据中的哪部分信息?模型是欠拟合还是过拟合?如果是过拟合,那么结合模型来看,我们有什么泛化调优手段,删掉一些数据能解决不?如果是欠拟合,我们如何扩充数据?
c)从数据角度。我们的数据哪些是期望模型可以学到的?什么样的数据,什么规模的数据,模型是可以学习的?我们对于数据的认识是什么?通过模型对数据的认识是什么?数据是均衡的么?数据是干净的么?
其次,排优先次序。
在确定了我们的效果由不同维度的原因造成后,我们该如何做呢?一股脑乱炖?肯定不行,这里面首先要分清楚哪些对我们的目标来说影响范围的是如何的。这个影响范围在界定的时候一定要有一个链路反馈到最终结果上,这个链路我们得清晰。比如我们在预测结果上看到某类badcase,那么这类badcase的规模如何?
数据分析咨询请扫描二维码