//如图所示,我要对这个曲线进行回归分析,使用python建立了一元二次函数进行分析,但是一个二次函数不能覆盖整个数据,我想怎么才能够找到一个个‘分界点’,建立不同的回归方程,提高准确度。//
这位同学应该是指下面这种情况吧(假设piecewise linear分段线性)?
其实各学科都是交叉和相通的
为大家科普一个运筹学的”奇淫“技巧
--引入0-1变量的整数规划建模和求解
- 图模型和离散变量
首先建立一个chain graph(链状图)
每个node(点)引入一个0,1变量x_i
当x_i = 1的时候,就是一个分界点
2. 约束条件
然后用discerete second derivative来刻画线性的性质
并把它放进约束条件
3. 目标函数
目标函数即拟合的绝对误差(L_1 范数)
这里用L_1范数是因为可以方便地转化成Linear Integer Programming(整数线性规划模型)
目前函数的另一部分是regularization term(规则项)
加上惩罚系数Lambda,为的是防止过拟合
4. 模型数值求解
最后这个问题可以完美地建模成一个线性0-1整数规划模型
并且可以求得全局最优解
但众所周知整数规划的求解是NP难的
好在有开源或者商业求解器可以掉包直接求解
把模型和系数输入到求解器就行
留德华叫兽:【学界】混合整数规划/离散优化的精确算法--分支定界法及优化求解器
最后,欢迎引用我的paper
工作之余,历时一年半,一次大修和小修
刚刚发表在Journal of Global Optimization~