在这篇文章中,我将对近半年来在决策行为相关领域的一些学习与思考进行整理,便于在后续应用中作为参照。
Multivariate Boosted Trees
随着数据收集能力的提升和控制手段的复杂化,在实际业务中,常常会遇到对多维、异质化的处置效应(treatment effect)的估计问题。近年来,学界在这个方向上提出了一些新的方法和工具;其中一个较为知名的工作是Susan Athey等人提出的generalized random forest(grf)。不过,这些工具与当前业界常用的工具(例如XGBoost,下称为xgb)存在一定差距:
- 未针对大规模数据场景进行计算效率优化,训练和推断时间较长;
- 功能局限于少数几种场景,无法支持多样化的建模需求;
- 设计时主要考虑离线分析场景,缺乏对线上部署等工程应用场景的原生支持。
考虑到这些痛点,在这一篇文章中,我将基于对这些新估计方法的认识和对xgb等常用工具的理解,提出(或者是重新发现)数种处置效应估计方法,以尝试结合xgb的计算效率和新方法的估计准确性。然后,我将通过一系列简单的数值实验,对这些方法在估计准确性、计算效率和开发效率等各方面的优劣进行评估。最后,我将根据这些实验结果和个人经验,对这些方法的实际使用给出一些个人建议。
How to Develop Your Own Branch & Bound Solver IV: Summary
在这篇文章中,我将对本系列之前的内容进行总结,并针对MIP的求解方法设计及求解器的使用给出一些个人理解和建议。
How to Develop Your Own Branch & Bound Solver III: Cut & Bound Tightening
在这篇文章中,我将回顾割(cut)方法的基本思路,介绍将其引入B&B求解流程中的常用手段及注意事项,并实现最基础的基于线性约束的变量边界加强(bound tightening/domain propagation)方法。
Annual Summary (2019-20)
在这篇文章中,我将照惯例总结在最近一年的工作和研究中的心得体会。在这次年度总结中,我想要讨论的主题是尺度。
In this post, as usual, I will summarize my experience in formulating and tackling the problems in work and research in the past year. The topic of this post is scale.
How to Develop Your Own Branch & Bound Solver II: Branching & Node Selection Methods
在这篇文章中,我将介绍问题拆分(branching)和结点选取(node selection)阶段的常用方法。
How to Develop Your Own Branch & Bound Solver I: Introduction
在接下来这个系列中,我将介绍混合整数规划中的分支定界法(branch & bound, B&B)的基本原理,并示范如何实现一个简单的B&B求解器。
How to Develop Your Own Dual Simplex Solver V: Summary
在这篇文章中,我将对本系列之前的内容进行总结,并针对LP求解器的设计开发和使用给出一些个人建议。
How to Develop Your Own Dual Simplex Solver IV: Preprocessing Techniques
在这篇文章中,我将介绍一系列常用的预处理技术,以进一步提升对偶单纯形法的求解效率。
How to Develop Your Own Dual Simplex Solver III: Pipeline Design
在这篇文章中,我将介绍初始对偶可行基的寻找方法以及迭代过程中数值误差的处理,以进一步完善对偶单纯形法的求解流程,保障求解结果的可靠性。