在这篇文章中, 我们将介绍最流行的机器学习算法.
浏览该领域的主要算法以了解可用的方法有哪些是有用的.
有很多算法是可用的, 当算法名称被抛出时, 它会让人感到无所适从, 而你只需要知道它们是什么以及它们适合用在哪里.
我想给你两种方法来思考和分类你可能在机器学习领域遇到的算法.
这两种方法都是有用的, 但我们重点放在按相似性对算法进行分组, 继续浏览各种不同的算法类型.
阅读完这篇文章之后, 你将更好地理解最受欢迎的监督学习机器学习算法以及它们之间的关系.
一个线性拟合一个很酷的例子. 弱成员是灰色的, 综合预测是红色的.
来自维基百科的绘图, 在公共领域许可.
算法可以根据与经验或环境的交互方式或任何我们想要调用输入数据的方式对问题进行建模.
在机器学习和人工智能教科书中, 把考虑算法可以采用的学习风格作为第一位的内容很常见.
算法只有少数几种主要的学习风格或学习模型, 我们将在这里通过几个对应的算法和问题类型的例子.
这种机器学习算法的分类或组织方法很有用, 因为它会迫使你考虑输入数据的角色和模型准备的过程, 并选择最适合你的问题的方法, 以获得最佳结果.
让我们来看看机器学习算法中的三种不同的学习风格:
输入数据称为训练数据, 并具有已知的标签或结果, 例如垃圾邮件/非垃圾邮件或某次股票价格.
模型是通过一个训练过程来准备的. 在训练过程中模型需要进行预测, 并在预测错误时予以纠正. 训练过程要一直持续到模型达到训练数据所需的准确度.
示例的问题是关于分类和回归的.
示例算法包括Logistic Regression(逻辑回归)和Logistic Regression(后向传播)神经网络.
输入数据没有经过标记, 也没有一个已知的结果.
通过推导输入数据中存在的结构来准备模型. 这可能是提取一般规则. 可能是通过数学过程来系统地减少冗余, 也可能是通过相似性来组织数据.
示例问题是聚类, 降维和关联规则学习.
示例算法包括: Apriori(先验)算法和k-Means算法.
输入数据是标记和未标记的混合示例.
有一个理想的预测问题, 但模型必须学习结构来组织数据以及做出预测.
示例问题是分类和回归.
示例算法是对其他灵活方法的扩展, 这些方法对如何对未标记数据建模进行了假设.
在处理数据来建模业务决策时, 最典型的是使用有监督和无监督的学习方法.
目前的热门话题是半监督学习方法, 如在图像分类领域中存在大量数据集且带标签的样例很少.
算法通常根据其功能(或它们如何工作)的相似性分组. 例如, 基于树的方法和神经网络的启发方法.
我认为这是分组算法最有用的方法, 这也是我们将在这里使用的方法.
这是一种有用但并不完美的分组方法. 还有一些算法可以很轻松地适合多个类别, 例如学习向量量化, 这既是神经网络启发的方法, 也是基于实例的方法. 也有同样的名称来描述问题和算法的类, 如回归和聚类.
我们可以通过两次列表算法来处理这些情况, 或者通过选择主观上是“最佳”的组. 我喜欢后一种不重复算法的方法来让事情保持简单.
在本节中, 我列出了很多流行的机器学习算法, 按我认为最直观的方式进行分组. 这个列表并不是在所有的组或算法中都是详尽的, 但是我认为它是有代表性的, 并且对你从这片知识的土地中得到一个想法会有帮助.
请注意: 对于用于分类和回归的算法存在强烈的偏见, 这两个算法是你将遇到的最普遍的受监督的机器学习问题.
如果你知道一个或一组算法这里没有列出来的, 请在评论中与我们分享. 让我们可以学习探究.
回归是关于建模变量之间关系的模型, 这些关系使用模型预测中的错误度量来迭代地改进模型.
回归方法是统计学中的一个重要手段, 并已被纳入统计机器学习领域. 这可能会令人感到困惑, 因为我们可以使用回归来指代问题的类别和算法的类别. 事实上, 回归是一个过程.
最流行的回归算法是:
基于实例的学习模型是一个决定性问题, 具有被认为对模型重要或需要的训练数据的实例或例子.
这样的方法通常建立示例数据的数据库, 并使用相似性度量将新数据与数据库进行比较, 以便找到最佳匹配并进行预测. 基于这个原因, 基于实例的方法也被称为赢家通吃(winner-take-all)方法和基于记忆的学习. 重点放在实例之间使用的存储实例和相似性度量的表示上.
最流行的基于实例的算法是:
对另一种方法(通常是回归方法)进行的扩展是对基于其复杂性的模型进行惩罚, 有利于简化模型, 也能更好的泛化.
我在这里分别列出了正则化算法, 因为它们是流行的, 功能强大且对其他方法进行了简单的修改.
最流行的正则化算法是:
决策树方法根据数据中属性的实际值构建决策模型.
决定分叉树形结构, 直到对给定记录作出预测决定. 用分类和回归问题的数据训练决策树. 决策树通常是快速而准确的, 是机器学习中最受欢迎的.
最流行的决策树算法是:
贝叶斯方法是那些显式应用贝叶斯定理的问题, 如分类和回归问题.
最流行的贝叶斯算法是:
类似回归算法, 聚类描述了问题的类别和方法的类别.
聚类方法通常由诸如基于质心和分层的建模方法来组织. 所有的方法都关注于使用数据中的固有结构来将数据尽可能地组织成具有最大通用性的组.
最流行的聚类算法是:
关联规则学习方法提取最能解释数据中变量之间观察关系的规则.
这些规则可以发现大型多维数据集中重要且商业上有用的关联, 这些关联可以被组织利用.
最流行的关联规则学习算法是:
人工神经网络是受生物神经网络的结构和(或)功能启发的模型.
它们是模式匹配的一类, 通常用于回归和分类问题, 但实际上它们是一个巨大的子域, 包含数百种算法和各种问题类型的变体.
请注意, 由于在该领域的高速增长和普及, 我已将神经网络中的深度学习分离出来. 这里我们关心的是更经典的方法.
最流行的人工神经网络算法是:
深度学习方法是对人工神经网络的现代更新, 利用了丰富的廉价计算.
他们关心的是构建更大更复杂的神经网络, 正如上面所写的, 许多方法都与半监督学习问题有关, 这些问题中大规模数据集包含的标记数据非常少.
最流行的深度学习算法是:
与聚类方法一样, 降维算法也寻找和利用数据中的固有结构, 但是在这种情况下是使用更少的信息, 以无监督的方式或顺序来总结或描述数据.
这对于可视化空间的数据或简化随后可用于监督学习方法的数据是有用的. 这其中许多方法可以适用于分类和回归.
集成方法是由多个较弱的模型组成的模型, 这些模型是经过独立训练的, 它们各自的预测以某种方式进行组合以作出整体预测.
要把哪些类型的弱学习者结合起来, 以及如何把它们结合起来, 需要付出很多的努力. 这是一个非常强大的技术类, 因此非常受欢迎.
还有许多算法没被覆盖到.
例如, 支持向量机器会进入哪个组? 它自己的吗?
我没有涵盖机器学习过程中的专业任务算法, 例如:
我也没有涵盖机器学习专业子领域的算法, 例如:
这些算法可能会在未来的文章中提到.
机器学习算法之旅是为了让你有一个关于如何将算法相互关联和有哪些算法的概念.
我已经收集了一些资源给你继续阅读关于算法的知识. 如果你有任何具体问题, 请留下评论.
如果你有兴趣的话, 还有其他很好的算法列表. 以下是几个手选的例子.
算法是机器学习的重要组成部分, 也是我在这个博客上热衷书写的话题. 以下是几个手动筛选的文章, 可能会让你有兴趣进一步阅读.
有时你只是想研究代码. 下面是一些链接, 你可以使用它们运行机器学习算法, 使用标准库对其进行编码或从头开始实现.
我希望你觉得这个文章有用.
如果你对如何改进算法游览有任何疑问或想法, 请留下评论.
更新#1: 继续关于HackerNews(黑客新闻) 和reddit的讨论.
更新#2: 我添加了更多的资源和更多的算法. 我还添加了一个可以下载的简便的思维导图(见上文).