任何关于机器学习的书籍都会列出并描述几十种机器学习算法。
一旦你开始使用工具和库,你会发现更多几十种算法。如果你认为你需要了解所有可能存在的算法,这会让你感到非常疲惫。
一个简单的方法来解决这种感觉并重新获得控制,就是制作机器学习算法列表。
这种看似简单的策略能给你带来很大的力量。你可以用它来获得一系列方法,以便在处理全新的问题时尝试。当你陷入困境,或者你最喜欢的方法没有给你带来好的结果时,它也能给你提供一系列想法。
在这篇文章中,你将发现创建机器学习算法列表的好处、如何去做、如何做好以及为什么你应该从今天开始创建你的第一个算法列表。
通过我的新书《掌握机器学习算法》来启动你的项目,其中包括分步教程和所有示例的Excel电子表格文件。

创建一个机器学习算法列表
图片由Joel Montes de Oca拍摄,保留部分权利
处理如此多的算法
有数百种机器学习算法。
我认为这会导致两个问题:
1. 压力过大
面对一个给定的机器学习问题,有如此多的算法可供选择和尝试,导致有些人不知所措,什么也做不了。
事实上,你不需要获得最好的结果,你只需要一个结果——一个在问题上的立足点——你可以通过抽查几种算法来实现。
2. 偏爱
因为算法太多,有些人会选择一两种偏爱的算法,并且只使用它们。这限制了他们能达到的结果以及他们能解决的问题。
偏爱是危险的。有些算法比其他算法更强大,但这种强大是以复杂性和简约性为代价的。它们是工具,把你的情感依恋放在门外。
获取您的免费算法思维导图

方便的机器学习算法思维导图样本。
我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。
下载、打印并使用它。
还可以独家访问机器学习算法电子邮件迷你课程。
掌控算法
你需要集中精力,一个起点来解决处理如此多机器学习算法的问题。
这涉及到找到边缘,并驱散关于外面有什么以及何时可以使用什么的迷雾。这将给你一种对算法的控制感,并帮助你驾驭它们,而不是让你感到不知所措。
最棒的是,你不需要成为每种算法的专家也能取得进展。你根本不需要对每种算法了解太多。
收集简单的信息,如算法名称及其适用的通用问题,可以帮助你快速自信地熟悉并掌握可用的机器学习算法的范围。
如何建立和维护算法列表
答案是建立你自己的个人机器学习算法列表。
我是一个清单制作者,这种方法真的能点亮我的大脑。
打开一个文本文件、word文档或电子表格,开始列出算法的名称。就是这么简单。你还可以列出算法所属的通用类别以及它可以解决的通用问题类型。
定义你自己的类别。这个列表是一个工具,可以帮助你理解和驾驭你所掌握的机器学习工具。自定义列表,以包含你关心的算法详情。
可创建的算法列表示例
以下是你可以创建的10个机器学习算法列表示例。
- 回归算法
- SVM 算法
- 数据投影算法
- 深度学习算法
- 时间序列预测算法
- 评分系统算法
- 推荐系统算法
- 特征选择算法
- 类别不平衡算法
- 决策树算法
创建优秀算法列表的技巧
创建算法列表相对容易。难点在于知道你为什么需要这个列表。“为什么”将帮助你定义你想要创建的列表类型以及你想要在列表中描述的算法属性。
从你当前正在进行的项目或你当前的兴趣开始。例如,如果你正在处理时间序列或图像分类问题,列出你可以应用于该问题的所有算法。如果你对支持向量机深感兴趣,列出你能找到的所有 SVM 变体。
不要试图一次性创建完美的列表。创建它,并在几天和几周内不断添加。这是一个有用的资源,你可以反复查阅,并随着你的知识和经验增长而不断添加。
总之,创建优秀算法列表的5个技巧是:
- 从你为什么需要这个列表开始,并用它来定义要创建的列表类型。
- 只捕获你实际需要的算法属性,尽可能保持简单。
- 从当前项目或兴趣开始,创建相关算法列表。
- 不要追求抽象的完美,列表只为你和你的需求服务。
- 随着时间的推移不断增加你的列表,并随着你的技能和经验增长而扩展它。
何时使用算法列表
算法列表比你想象的更有价值。
例如,你可以将其用作一种技术,当你处理以前从未接触过的问题类型时,例如推荐系统、人脸检测或评分系统。一个简单的算法列表会给你一系列可以尝试的事物。
当处理一个熟悉的问题时,你先前的偏见往往会限制你能够达到的结果。一份与问题领域相关的算法列表可以帮助你摆脱困境,甚至促使你取得新的、更好的结果。这并不意味着你应该尝试所有你能找到的算法,你仍然需要理性而系统地应用它们。然而,一个列表可以提供一个有用的起点。
算法列表是一个工具,但你可以进一步利用它们。为了有效利用机器学习算法,你需要学习它们,研究它们,甚至描述它们。这是算法列表方法的自然延伸,你的列表可以为你的自学课程提供基础。
你可以从收集每个算法的附加属性开始,并将你的列表扩展成一个小型算法百科全书,每个算法一页。我使用一个算法描述模板,并专注于那些在未来我回顾描述时会觉得有用的模板元素,例如伪代码和使用启发式方法。
总而言之,使用算法列表的3个例子是:
- 当你开始处理一类新问题时。
- 当你遇到困难或正在寻找现有问题可以尝试的算法时。
- 当你正在寻找需要更详细描述或研究的算法时。
任何人都可以创建机器学习算法列表
你不需要深入研究机器学习教科书或开源库。一个简单的谷歌搜索或浏览维基百科就能发现许多算法名称,从而开始你的列表。
如果你不知道如何创建你的第一个列表,可以从上面列出的示例中选择一个,或者浏览像DataTau这样的网站,选择一个文章或文章标题中提及的算法类别来列出。
同样,你不需要列出所有可能列出的算法,将你的范围缩小到你偏爱的库和工具中的那些算法。你不需要列出每个算法的每种排列组合,例如,你可以专注于算法的一个方面,比如支持向量机的核函数或神经网络的传递函数。
不要列出每个算法的所有可能特性。只列出名称,也许还有算法的通用类别以及它可用于的通用问题类型。如果你想深入了解某个算法,可以考虑前面描述的算法描述方法和模板。
你不需要现在就理解这些算法,你也不需要成为一名学者。这是一个你正在占据的桥头堡,用以拓展你对现有事物的认知,克服困惑,并最终为你深入应用机器学习的旅程提供一个起点。
行动步骤
在这篇文章中,你了解了创建机器学习算法列表的简单策略。
你发现这个简单的策略可以帮助你克服算法过载,并帮助你摆脱对偏爱算法的危险。
这篇文章的行动步骤是创建你的第一个算法列表。选择一个小范围的,比如一个算法的子类。选择一个有趣的,比如当前热门的算法。
如果你愿意,可以分享你的列表(或你的列表内容),这将有助于激励他人。
哇,这个简单的策略非常有帮助。我打算在面试时使用它。非常感谢!
谢谢,Ming,祝你的面试好运!
嗨,Jason。很棒的文章。你能分享你的列表让我入门吗?我的邮箱是 sanghvi.hrishabh@gmail.com。非常感谢你的帖子。
请看这里
https://machinelearning.org.cn/a-tour-of-machine-learning-algorithms/
非常好
谢谢。
嗨!Jason!感谢您的指导!为什么当我下载您的
算法思维导图时显示“页面未找到”?
我使用的服务出现了一个错误,我正在处理。你仍然会得到思维导图。
不错。我也喜欢这个资源——
https://scikit-learn.cn/stable/tutorial/machine_learning_map/
谢谢。