数据科学家的高级编码技巧
与传统软件工程项目不同,由于其复杂且不断发展的特性,机器学习代码库在代码质量方面往往滞后,导致技术债务增加和协作困难加剧。优先考虑可维护性对于创建可适应、可扩展和能够持续提供价值的强大机器学习解决方案至关重要。
近年来,机器学习席卷全球,改变了从医疗保健到金融等多个行业。随着越来越多的组织加入机器学习的行列,以发现新的可能性和洞察,撰写可维护和强大的机器学习代码的重要性变得至关重要。通过编写易于使用且经得起时间考验的机器学习代码,团队可以更好地协作,并在模型和项目不断发展和适应的过程中保证成功。以下部分将展示机器学习代码库中常见的示例,并解释如何正确处理这些问题。
不要创建巨石式代码
这个提示可能对你来说无关紧要,但它是为那些不知道这个问题的人而写的(直到现在)!
当你将实验代码重用于生产环境时,可能会出现巨石式脚本,即整个项目只有一个脚本。复制、粘贴,完成!创建一个单一脚本来完成一个项目始终是一个坏主意。它难以阅读(甚至对于作者来说),难以调试且效率低下。你无法轻松添加新功能或修改代码,因为每次都需要运行整个脚本。添加单元测试也是不可能的,因为巨石式脚本就是“整个单元”。
单一脚本的另一个问题是可重用性。由于难以阅读,你无法在其他项目中重用这些代码。
只有一个原因可以写巨石式脚本;那就是你不喜欢接手你工作的同事。如果你想让这个人沮丧,这是一个简单的方法。
相反,应该怎么做呢?编写模块和类。创建具有特定目的的不同代码文件。每个文件应包含函数、类和方法。通过这样做,代码变得更易于阅读、调试、重用和测试。在接下来的……