趋近智
"机器学习 (machine learning)模型并非独立运行。它们会消耗大量数据,并在训练和预测期间进行复杂的计算。我们选择存储、组织和访问这些数据的方式,从根本上决定了模型训练的速度、所需的内存量,以及最终能否处理实际问题。正是在这一点上,数据结构和算法成为机器学习从业者不可或缺的工具。"
假设您正在构建一个垃圾邮件分类器。您需要快速检查传入的电子邮件中是否包含某些词语(特征)。如果您将已知的垃圾邮件词语列表存储在一个简单的Python列表中,并对每封邮件中的每个词语进行顺序查找,那么随着词汇量和邮件数量的增加,这个过程将变得极其缓慢。查找列表所需的时间与其大小成比例,我们将其表示为 ,其中 是词语的数量。
现在,考虑将这些垃圾邮件词语存储在哈希表(例如Python的字典或集合)中。在哈希表中查找一个词语通常平均只需常数时间,即 ,无论词汇量有多大。这一个数据结构的选择就能将分类过程从不切实际的慢速变为几乎即时。
这个原则贯穿机器学习的整个流程:
我们来直观地看看查找时间的影响。考虑在一个数据集大小增加时,查找其中一个元素的情况。
比较列表中的顺序查找时间()与哈希表中的平均查找时间()。请注意时间轴上的对数刻度;随着元素数量的增加,差异变得显著得多。
如图所示,具有线性时间复杂度()的算法会随着输入大小()的增长而变得越来越慢。相比之下,具有常数时间复杂度()的算法则保持快速。同样地,选择也会影响内存使用。一个密集矩阵可能需要 的内存,而相同数据的稀疏表示可能只需要与非零元素数量成比例的内存,这通常要小得多。
了解核心数据结构和算法的性能特点(时间复杂度和空间复杂度),您可以:
选择错误的数据结构可能导致模型训练需要数天而非数小时、要求过高的内存,或者无法及时提供预测。反之,基于性能特点的周到选择是高效且有效的机器学习工程的一个标志。在本课程中,我们将研究特定的数据结构和算法,将其特性直接与它们在机器学习任务中的应用和影响联系起来。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•