前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【干货】机器学习工程师必须知道的十个算法

【干货】机器学习工程师必须知道的十个算法

作者头像
新智元
发布2018-03-23 14:42:41
6170
发布2018-03-23 14:42:41
举报
文章被收录于专栏:新智元

【新智元导读】机器学习算法可以分为三个大类:监督学习、无监督学习、强化学习。监督学习对于有属性(标记)的特定数据集(训练集)是非常有效的。无监督学习对于在给定未标记的数据集(目标没有提前指定)上发现潜在关系是非常有用的。强化学习介于这两者之间——它针对每次预测步骤(或行动)会有某种形式的反馈,但是没有明确的标记或者错误信息。本文主要介绍有关监督学习和无监督学习的10种算法。

机器学习作为人工智能的一个子领域,在过去几年里无疑越来越受欢迎。大数据目前在科技行业是最热门的潮流,而机器学习在基于大量数据之上做出预测或建议的能力十分惊人。机器学习最常见的例子有Netflix的算法,它能基于你过去看过的电影为你推荐电影,还有亚马逊的算法,它能根据你已经购买的书籍向你推荐书。

那么,如果你想更多地了解机器学习,你要怎么开始?就我自己来说,我初学机器学习是在哥本哈根留学时选了一门人工智能课程。那门课的老师是丹麦技术大学的一位应用数学和计算机科学全职教授,他的研究领域是逻辑学和人工智能,主要侧重于使用逻辑为计算机类人行为(计划、推理、解决问题等)进行建模。课堂既会讨论理论和核心概念,也要自己动手解决问题。我们使用的教材是AI经典书目之一:Peter Norvig的《Artificial Intelligence — A Modern Approach(人工智能——一种现代方法)》。我们学习了这本书的几个主要主题,包括智能代理(agent)、通过搜索解决问题、社会化AI、AI的哲学/社会学/未来。在课程的结尾,我所在的小组使用简单的基于搜索的代理来解决虚拟环境中的交通问题。

我通过这门课程学到了很多知识,决定继续学习这个特殊的课题。在过去几周,我在旧金山参加了很多关于机器学习、神经网络、数据架构的科技讲座,特别是一个有很多业内知名学者参加的机器学习会议。最重要的是,我6月初的时候在Udacity选修了一门“机器学习入门”的在线课程,最近刚学习完该课程。我想在这篇文章中将我在课堂上学到的最常用的机器学习算法分享给大家。

监督学习

1. 决策树(Decision Trees)

决策树是一个决策支持工具,它使用树形图或决策模型以及序列可能性。包括各种偶然事件的后果、资源成本、功效。下图展示的是它的大概原理:

从商务决策的角度来看,大部分情况下,决策树是一个人为了评估做出正确决定的概率需要问的是/否问题的最小数值。它能让你以一个结构化和系统化的方式来处理这个问题,然后得出一个合乎逻辑的结论。

2. 朴素贝叶斯分类(Naive Bayesian classification)

朴素贝叶斯分类是一种十分简单的分类算法,方程如下图所示——P(A|B)是后验概率,P(B|A)是可能性,P(A)是类先验概率,而P(B)是预测先验概率。朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

它的现实使用例子有:

  • 将一封电子邮件标记(或者不标记)为垃圾邮件
  • 将一篇新的文章归类到科技、政治或者运动
  • 检查一段文本表达的是积极情绪还是消极情绪
  • 用于脸部识别软件

3.最小二乘法(Ordinary Least Squares Regression)

如果你懂统计学的话,你可能以前听说过线性回归。最小二乘法是一种计算线性回归的方法。你可以把线性回归当做在一系列的点中画一条合适的直线的任务。有很多种方法可以实现这个,“最小二乘法”是这样做的 ——你画一条线,然后为每个数据点测量点与线之间的垂直距离,并将这些全部相加,最终得到的拟合线将在这个相加的总距离上尽可能最小。

4.逻辑回归(Logistic Regression)

逻辑回归是一种强大的统计方法,它能建模出一个二项结果与一个(或多个)解释变量。它通过估算使用逻辑运算的概率,测量分类依赖变量和一个(或多个)独立的变量之间的关系,是累积的逻辑分布情况。

总的来说,逻辑回归可以用于以下几个真实应用场景:

  • 信用评分
  • 衡量营销活动的成功率
  • 预测某个产品的收入
  • 定某一天是否会发生地震?

5.支持向量机(Support Vector Machine)

SVM是二元分类算法。给定一组2种类型的N维的地方点,SVM产生一个(N - 1)维超平面到这些点分成2组。假设你有2种类型的点,且它们是线性可分的。 SVM将找到一条直线将这些点分成2种类型,并且这条直线会尽可能地远离所有的点。

在规模上,目前使用SVM(在适当修改的情况下)解决的最大的问题包括显示广告、人类剪接位点识别、基于图像的性别检测和大规模的图像分类等等。

6.组合方法(Ensemble methods)

组合方法是学习算法,它构建一系列分类,然后通过采取加权投票预测的方式来对新的数据点进行分类。原始的集成方法是贝叶斯平均法,但最近的算法包括对其纠错输出编码、套袋、加速等。

那么组合方法是如何运行的呢?为什么它们比其他的模型要优秀?因为:

  • 将偏差平均了:如果你将民主党派的民意调查和共和党的民意调查发在一起平均化,那么你将得到一个均衡的结果,且不偏向任何一方。
  • 减少了差异:一堆模型的总结意见没有一个模型的单一意见那么嘈杂。在金融领域,这就是所谓的多元化 — 有许多股票组合比一个单独的股票的不确定性更少,这也为什么你的模型在数据多的情况下会更好的原因。
  • 不可能过度拟合:如果你有没有过度拟合的独立模型,你通过一个简单的方式(平均、加权平均、逻辑回归)对每个独立模型的预测进行结合,这样的话不太可能会出现过度拟合的情况。

无监督学习

7.聚类算法(Clustering Algorithms)

聚类是一种聚集对象的任务,例如:相比其他不同的组在同一组(集群)的对象彼此更为相似。每个聚类算法都是不同的,比如以下几种:

  • 基于质心的算法
  • 基于连接的算法
  • 基于密度的算法
  • 概率
  • 维度减少
  • 神经网络/深度学习

8.主成分分析(Principal Component Analysis,PCA)

PCA是一个统计过程,通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。

PCA程序的应用包括压缩、简化数据、可视化等等。需要注意的事,对于选择是否使用主成分分析领域知识是非常重要的。当数据是嘈杂的时候(所有的组件的主成分分析有相当高的方差),它是不适合的。

9. 奇异值分解(Singular Value Decomposition)

在线性代数中,SVD是一个非常复杂的矩阵的因式分解。对于一个给定的m×n矩阵M,存在一个分解M = UΣV,其中U和V是单一矩阵,Σ是对角矩阵。

PCA是SVD的一种简单应用。在计算机视觉领域,第一个人脸识别算法运用PCA和SVD来将面部表示为一个线性组合的“特征脸(eigenface)”,并对其降维,然后通过简单的方法匹配合适的身份;虽然现代方法更复杂,但是许多算法仍然依靠类似的技术。

10.独立成分分析(Independent Component Analysis)

ICA是一种揭示构建随机变量、技术测量、信号等隐藏因素的统计技术。ICA定义了所观察到的多变量数据生成模型,这通常是给定为一个大型数据库的样本。在该模型中,数据变量被假定为一些未知潜变量的线性混合,同时混合系统也仍然未知。潜变量被假定是非高斯的、相互独立的,它们被称为是所观察到的数据的独立分量。

ICA与PCA是相关的,但它更强大。在这些经典的方法完全失败的时候,ICA能够找到源头的潜在因素。它的应用包括数字图像、文档数据库、经济指标和心理测试。

【结语】看完以上介绍,大家应该对机器学习的算法有一定的了解了。现在运用你理解的算法去创造机器学习应用,为世界各地的人们创造更好的体验吧。

编译来源:http://www.kdnuggets.com/2016/08/10-algorithms-machine-learning-engineers.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档