信息论的 MDLM 模型,在 MATLAB 里用起来其实还挺顺手的。mdl.m
文件就是它的核心,里面封装了根据最小长度原则来做模型选择的逻辑,兼顾拟合度和模型复杂度,蛮适合搞信号或者控制系统的朋友试一试。
马蒂·里桑宁提的最小长度原则听起来有点学术,但意思其实实用——选个能用最少信息数据的模型,不就意味着效率高嘛?尤其在多模型对比的时候,MDL 思路挺靠谱的,不容易过拟合。
对编码理论也有点要求,像哈夫曼编码、香农熵这些都得多少懂点,毕竟比的是编码长度。你可以通过对比不同模型的编码开销,来判断哪个更合适。
如果你是 Simulink 用户,那就更有意思了。这个 MDLM 方法也可以嵌在Simulink流程里,用来做模型简化或者系统识别。比如你想从仿真数据中识别一个最简控制模型,就挺适合用 MDL 逻辑。
代码文件mdl.m
建议自己读一读逻辑,里面通常会包括模型评分函数、编码长度计算之类的内容,如果你有自己的模型结构,也能基于它扩展下。记得看一下license.txt
,用之前别忘了合规。
,如果你经常在 MATLAB 里纠结模型怎么选,不妨看看这个 MDLM 实现。是多模型交替实验的场景下,它真的是省时省力的好帮手。如果你想延伸理解,也可以翻翻这篇相关资料,讲得蛮清楚的。