算法构成了机器学习的很大一部分。
你选择并应用机器学习算法从数据中构建模型,选择特征,结合多个模型的预测,甚至评估给定模型的能力。
在这篇文章中,你将回顾5种不同的方法来学习机器学习算法。
通过我的新书《掌握机器学习算法》启动你的项目,包括分步教程和所有示例的Excel电子表格文件。

如何学习机器学习算法
图片来源:mer chau,保留部分权利
1. 列出机器学习算法
机器学习算法有很多,可能会让人感到不知所措。
甚至定义什么是机器学习算法也可能很棘手。
一个很好的起点是列出你自己的算法清单。启动一个文本文件、Word文档或电子表格,列出算法名称。同时列出每个算法所属的通用类别。
这种简单的策略可以帮助你熟悉可用的不同类型的算法。随着经验的增长,这样的清单可以在你遇到问题时,为你提供不同的方法进行初步检查的思路。
一些算法列表的例子可以帮助你入门,包括:
获取您的免费算法思维导图

方便的机器学习算法思维导图样本。
我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。
下载、打印并使用它。
还可以独家访问机器学习算法电子邮件迷你课程。
2. 应用机器学习算法
机器学习算法并非孤立存在,它们在应用于数据集时才能得到最好的理解。
将算法应用于问题以理解它们。实践应用机器学习。这听起来很简单,但你会惊讶于有多少人因为害怕迈出从理论到实践的一小步而停滞不前。
这可能意味着处理一个对你重要的问题、一个竞赛数据集或一个经典的机器学习数据集。
使用机器学习平台,如Weka、R或scikit-learn,以访问许多机器学习算法。
开始对不同类型的算法(例如决策树和支持向量机)建立直觉。思考它们所需的前提条件以及参数对结果的影响。
建立应用不同算法的信心。你应该对你的问题进行算法抽查。
3. 描述机器学习算法
理解机器学习算法的下一步是探索人们对该算法的现有理解。
这可以在应用算法之前完成,但我认为在深入了解算法描述之前,对实际运行的算法有一个直观的了解作为背景是很有价值的。
你可以研究一个算法。这包括查找和阅读首次描述该算法的主要来源,以及教科书和评论论文中对该算法的权威解释。
会议论文、竞赛结果甚至论坛和问答网站都可以帮助你更好地理解算法的最佳实践和使用启发式方法。
在研究算法时,要建立一个描述。我喜欢使用一个定义明确的算法描述模板。
你可以随着对算法的深入了解而不断完善此模板。你可以添加参考文献,列出算法的伪代码,并列出最佳实践和使用启发式方法。
这是一种宝贵的技术,你可以为自己建立一个算法描述的迷你百科全书以供参考(例如,请参阅Clever Algorithms,其中包含45个算法秘籍)。
有关我使用的模板的更多信息,请查看文章“如何学习机器学习算法”。
4. 实现机器学习算法
实现机器学习算法是具体了解算法工作原理的绝佳方式。
在实现算法时,必须做出许多微小的决定。其中一些决策点通过算法配置参数暴露出来,但许多则不然。
通过自己实现算法,你将了解如何定制算法,以及选择暴露哪些内容和固定哪些决策点。
从零开始实现算法将帮助你理解算法的数学描述和扩展。这听起来可能违反直觉。数学描述是理想化的,通常提供算法内给定过程的快照描述。一旦你将它们转换为代码,这些描述的含义可能会更加明显。
你可以利用教程和开源算法实现来帮助你度过那些困难的部分。
请注意,算法的“我的第一个实现”将比你在机器学习工具或库中找到的生产级实现的可扩展性更差、更脆弱。
请查看我的在Python中从零开始实现k-近邻算法的教程。
你可能还会对我的文章“如何实现机器学习算法”感兴趣。
5. 对机器学习算法进行实验
对机器学习算法进行实验是理解它们的最佳方式。
你需要像科学家一样,将运行中的机器学习算法作为一个复杂的系统进行研究。
你需要控制变量,使用经过充分理解的标准化数据集,并探索参数对结果的因果关系。
理解参数的影响将有助于你在未来更好地配置算法以解决问题。理解算法在不同情况下的行为将有助于你在未来更好地扩展和调整方法以适应新的和不同的问题领域。
许多机器学习算法本质上是随机的,并且抵制更经典的算法分析方法。它们通常需要经验研究和概率描述才能被理解。
总结
在这篇文章中,你发现了学习和研究机器学习算法的五种方法。
它们是:
- 列出机器学习算法
- 应用机器学习算法
- 描述机器学习算法
- 实现机器学习算法
- 对机器学习算法进行实验
你是否使用过这些方法中的任何一种来学习机器学习算法?
也许你有自己研究机器学习算法的方法?请在下面的评论中分享。
你好,Jason,我没有收到你的算法描述模板到我的邮箱。可以请你发给我一份吗?提前感谢!
听到这个消息我很难过。
在这里联系我,我就会发给你
https://machinelearning.org.cn/contact/