OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

机器学习工程师必知的十大算法

  • 2017-04-16
  • 本文字数:3130 字

    阅读完需:约 10 分钟

毫无疑问,机器学习 / 人工智能的子领域在过去几年越来越受欢迎。目前大数据在科技行业已经炙手可热,而基于大量数据来进行预测或者得出建议的机器学习无疑是非常强大的。一些最常见的机器学习例子,比如 Netflix 的算法可以根据你以前看过的电影来进行电影推荐,而 Amazon 的算法则可以根据你以前买过的书来推荐书籍。

所以如果你想了解更多有关机器学习的内容,那么你该如何入门?对于我来说,我的入门课程是我在哥本哈根出国留学时参加的人工智能课。当时我的讲师是丹麦技术大学(Technical University of Denmark)的应用数学和计算机科学的全职教授,他的研究方向是逻辑与人工智能,侧重于使用逻辑学来对人性化的规划、推理和解决问题进行建模。这个课程包括对理论 / 核心概念的讨论和自己动手解决问题。我们使用的教材是 AI 经典之一:Peter Norvig 的 Artificial Intelligence—A Modern Approach(中文译本:《人工智能:一种现代的方法》),这本书主要讲了智能体、搜索解决问题、对抗搜索、概率论、多智能体系统、社会AI 和AI 的哲学/ 伦理/ 未来等等。在课程结束时,我们三个人的团队实现了一个简单的编程项目,也就是基于搜索的智能体解决虚拟环境中的运输任务问题。

在那门课程上我已经学到了很多知识,并决定继续学习相关的课题。在过去的几个星期里,我在旧金山参加了多次相关的技术讲座,涉及到深度学习、神经网络和数据结构,并且参加了一个有很多该领域的知名专家学者参加的机器学习会议。最重要的是,我在6 月初参加了Udacity 上的 Intro to Machine Learning(机器学习入门)在线课程,前几天才完成。在这篇文章中,我想分享一下我从课程中学到的一些最常用的机器学习算法。

机器学习算法可以分为三大类:监督学习、无监督学习和强化学习。监督学习可用于一个特定的数据集(训练集)具有某一属性(标签),但是其他数据没有标签或者需要预测标签的情况。无监督学习可用于给定的没有标签的数据集(数据不是预分配好的),目的就是要找出数据间的潜在关系。强化学习位于这两者之间,每次预测都有一定形式的反馈,但是没有精确的标签或者错误信息。因为这是一个介绍课程,我没有学习过强化学习的相关内容,但是我希望以下 10 个关于监督学习和无监督学习的算法足以让你感兴趣。

监督学习

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)

SVM 是二进制分类算法。给定 N 维坐标下两种类型的点,SVM 生成(N-1)维的超平面来将这些点分成两组。假设你在平面上有两种类型的可以线性分离的点,SVM 将找到一条直线,将这些点分成两种类型,并且这条直线尽可能远离所有这些点。

从规模上看,使用 SVM(经过适当的修改)解决的一些最大的问题包括显示广告、人类剪切位点识别(human splice site recognition)、基于图像的性别检测,大规模图像分类……

6. 集成方法(Ensemble methods)

集成方法是学习算法,它通过构建一组分类器,然后通过它们的预测结果进行加权投票来对新的数据点进行分类。原始的集成方法是贝叶斯平均,但是最近的算法包括纠错输出编码、Bagging 和 Boosting。

那么集成方法如何工作?并且为什么它们要优于单个模型?

  • 它们平均了单个模型的偏差:如果你将民主党的民意调查和共和党的民意调查在一起平均化,那么你将得到一个均衡的结果,不偏向任何一方。
  • 它们减少了方差:一组模型的总体意见比其中任何一个模型的单一意见更加统一。在金融领域,这就是所谓的多元化,有许多股票的组合比一个单独的股票的不确定性更少,这也为什么你的模型在数据多的情况下会更好的原因。
  • 它们不太可能过拟合:如果你有单个的模型没有过拟合,那么把这些模型的预测简单结合起来(平均、加权平均、逻辑回归),那么最后得到的模型也不会过拟合。

无监督学习

7. 聚类算法(Clustering Algorithms)

聚类是将一系列对象分组的任务,目标是使相同组(集群)中的对象之间比其他组的对象更相似。

每一种聚类算法都不相同,下面是一些例子:

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

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

PCA 是一个统计学过程,它通过使用正交变换将一组可能存在相关性的变量的观测值转换为一组线性不相关的变量的值,转换后的变量就是所谓的主分量。

PCA 的一些应用包括压缩、简化数据便于学习、可视化等。请注意,领域知识在选择是否继续使用 PCA 时非常重要。 数据嘈杂的情况(PCA 的所有成分具有很高的方差)并不适用。

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

在线性代数中,SVD 是复杂矩阵的因式分解。对于给定的 m * n 矩阵 M,存在分解使得 M=UΣV,其中 U 和 V 是酉矩阵,Σ是对角矩阵。

实际上,PCA 是 SVD 的一个简单应用。在计算机视觉中,第一个人脸识别算法使用 PCA 和 SVD 来将面部表示为“特征面”的线性组合,进行降维,然后通过简单的方法将面部匹配到身份,虽然现代方法更复杂,但很多方面仍然依赖于类似的技术。

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

ICA 是一种统计技术,主要用于揭示随机变量、测量值或信号集中的隐藏因素。ICA 对观测到的多变量数据定义了一个生成模型,这通常是作为样本的一个大的数据库。在模型中,假设数据变量由一些未知的潜在变量线性混合,混合方式也是未知的。潜在变量被假定为非高斯分布并且相互独立,它们被称为观测数据的独立分量。

ICA 与 PCA 有关,但是当这些经典方法完全失效时,它是一种更强大的技术,能够找出源的潜在因素。 其应用包括数字图像、文档数据库、经济指标和心理测量。

现在运用你对这些算法的理解去创造机器学习应用,为世界各地的人们带来更好的体验吧。

查看英文原文: The 10 Algorithms Machine Learning Engineers Need to Know


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2017-04-16 17:0524450

评论

发布
暂无评论
发现更多内容

云原生+国产化,腾讯云数据库不做选择题

腾讯云数据库

tdsql 国产数据库

开源数据库TDSQL PG版再升级:分区表性能提升超10倍

腾讯云数据库

tdsql 国产数据库

Tomcat系统架构分析-Service

编程江湖

tomcat

4种高速安全混合云解决方案,助力您的云迁移之旅!

亚马逊云科技 (Amazon Web Services)

计算

🍃【Spring专题】「技术原理」为大家介绍一下Spring中的Ant路径匹配工具组件AntPathMatcher

洛神灬殇

spring 1月月更 SpringFramework AntPathMatcher

隐喻回顾会

Bruce Talk

敏捷 Agile 回顾会 Coach/Facilitate

使用CRM系统改善客户关系的方法

低代码小观

企业管理 CRM ERP CRM系统 企业管理工具

选择“难而正确”的道路,国内VPN距离突破瓶颈还有多远?

科技热闻

理清逻辑,确保云原生时代应用开发的全生命周期安全

华为云开发者联盟

网络安全 安全 应用开发 安全防守

知识中台,驱动产业智能化升级

百度大脑

人工智能

通过 Amazon CloudWatch 配合 Amazon ElastiCache for Redis 遵循监控最佳实践

亚马逊云科技 (Amazon Web Services)

计算

企业聊天APP-有什么作用,可以带来哪些便利?WorkPlus即时通讯

WorkPlus

前端开发之VUE基础面试题分享

@零度

Vue 前端开发

针对jQuery的优化方法有哪些

编程江湖

jquery

Mybatis如何执行批量操作

编程江湖

mybatis

趋势:2022 年 AI 五大预测

WorkPlus

Linux之du命令

入门小站

Linux

TDengine在蓝深远望电机物联网监测预警与预测性维护平台中的应用

TDengine

数据库 大数据 tdengine 物联网

增效降本开源节流,2022年技术趋势前瞻(异步编程/容器技术)

刘悦的技术博客

容器 性能 异步IO 异步削峰 成本优化

全面容器化之后,来电科技如何实现微服务治理?

阿里巴巴云原生

阿里云 微服务 云原生 实践

青藤成功举办“ATT&CK应用发展论坛”,并发布《ATT&CK框架实践指南》

青藤云安全

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

在线正则表达式可视化测试工具

入门小站

工具

高成长、高潜力,火线安全入选2021中国新锐技术先锋企业20强!

火线安全

腾讯云TDSQL在PostgreSQL领域的‘‘再次突破’’

腾讯云数据库

tdsql 国产数据库

实现分区表性能提升超10倍,解密TDSQL PG版开源升级特性

腾讯云数据库

tdsql 国产数据库

建议收藏 | SpringBoot 元数据配置原来可以这么玩!

码农架构

spring springboot SpringBoot 2 java 编程 1月月更

【Redis集群原理专题】分析一下相关的Redis服务分片技术和Hash Tag

洛神灬殇

redis redis cluster redis架构 1月月更

拍乐云首发音视频「分组讨论」开放能力,开启线上群聊互动新玩法

拍乐云Pano

音视频 RTC 视频会议 泛娱乐 分组讨论

使用Amazon CDK部署基于Amazon Fargate的高可用、易扩展的Airflow集群

亚马逊云科技 (Amazon Web Services)

计算

大数据开发之Hadoop高频面试题

@零度

大数据 hadoop

机器学习工程师必知的十大算法_语言 & 开发_James Le_InfoQ精选文章