机器学习代码模块化:编写可测试和易读代码
1. 文本墙代码调试难题
分位数 - 分位数图(Q-Q图)是一种很有用的探索性工具,通过将一个序列的分位数值与另一个序列的分位数值进行绘图,可以帮助我们判断数据的正态性(或与不同分布的拟合优度)。例如,在某些数据集中,我们会将价格序列的分位数与标准正态分布的分位数进行绘图。
然而,如果代码中没有对这个图进行标注,也没有说明这个图的用途,那么脚本的最终用户可能会对代码的运行情况感到困惑。在代码中以这种方式放置评估内容通常不是一个好的做法,因为这些内容很容易被忽略,而且用户可能会对它们为什么会出现在代码的那个位置感到困惑。
假设我们面对的不是一个简单的单目标变量的统计分析示例,而是一个长达1500行左右的整体式脚本项目。如果代码出现故障,我们能否清晰地看到并理解代码中正在发生的一切呢?又该从哪里开始排查问题呢?
当我们需要维护这样的代码时,比如要在现有的脚本中集成一个新功能,我们首先要对代码进行逆向工程,并添加注释以帮助自己理解。之后,我们才能开始添加新功能。但在这个过程中,测试代码的唯一方法就是运行整个脚本。
在修改脚本以适应新功能的过程中,我们不可避免地会遇到一些错误。如果我们处理的是一个包含一系列连续操作的脚本或笔记本环境,该如何排查代码中出现的问题呢?
2. 整体式代码的调试困境
整体式代码的调试过程非常耗时且考验耐心。以下是调试整体式代码的流程:
graph TD;
A[异常抛出] --> B[将脚本分成两半];
B --> C[插入打印语
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



