写点什么

统计建模与机器学习的区别

  • 2016-07-19
  • 本文字数:1814 字

    阅读完需:约 6 分钟

Oliver Schabenberger 是商业分析与商业智能软件 SAS 的副总裁,Analytic Server 的研发主管,他还是美国统计协会 ASA 的会士。作为分布式计算、云计算和机器学习方面的专家,他经常会被问到统计学(尤其是统计建模)、机器学习和人工智能的区别。最近,Schabenberger发表文章,专门解答了这个问题。从目标、技术和算法上来说,统计建模、机器学习和人工智能三个领域确实有重叠的部分。但困惑不仅来自于这些重叠的部分,更多是来自人们阅读的那些非科学文章中时髦用语的大杂烩。

统计建模

统计建模的基本目标是回答这样一个问题:“哪一个概率模型能够生成我观察到的数据?”所以你可以这样做:

  • 从一个合理的模型库里选一个候选模型
  • 评估它的未知量(参数,又称作匹配模型与数据)
  • 比对符合的模型和替代模型

举例来说,如果你的数据代表了总数,比如这个数字代表了客人感到反胃的数量,或者细胞分裂的数量,那泊松分布或者负二项分布、零膨胀模型中的某个模型就可能是适用的。

一旦选中了某个模型,那预估模型就会被用作一个查询设备:检验假设、建立预估值,还能测量信任度。预估模型就成了人们解释数据的棱镜。人们从来不声称预估模型带来了数据,但会把它当做一个在随机的过程中合理的近似,然后再基于它去验证推论。

验证推论是统计建模中一个重要的方面。举例来说,如果要在三个可能的医疗设备中,决定哪个对病人最有益,你就会对这样的模型感兴趣:它能捕捉病人使用什么样的途径治疗是明显有效果的。总是这样,那些能很好地捕捉数据生成途径的模型,同时也是在观测数据范围内最好地做出预测的模型,或许它还能预测出新的观测结果。

经典的机器学习

经典的机器学习是数据驱动的,它专注于回归和分类的算法,并被模式识别推动着。构成它基础的随机途径总是次要的和不被直接重视的。当然,很多机器学习的技术可以通过随机的模型和进程架构起来,但数据并不是通过模型生成的。相反,机器学习主要是为了辨识出运行某个特定任务的算法或技术(或者是二者兼有):顾客最好由 k-Means 算法分组吗?或者由 DBSCAN、决策树、随机森林,还是 SVM?

简而言之,对统计学家来说,模型是第一位的;对机器学习专家来说,数据是第一位的。因为机器学习强调的是数据,不是模型,把数据分离成训练和测试组的验证技术是非常重要的。一个解决方案的优劣不在于 p 值,而在于证明这个解决方案在以前看不到的数据方面预测良好。把一个统计建模和一套数据匹配,或者为一套数据训练决策树,就需要评估未知量。决策树的最佳分支点,是由预估参数数据决定的,而预估参数是从属变量的条件分布决定的。

Oliver Schabenberger 的观点是,没有一种技术能够自称会学习。训练才是塑造某物的必经之路。学习,从另一方面来讲,就暗示着获得新的技能,而训练是学习的一部分。通过训练一个深度神经网络,也就是说,通过输入数据设定好它的砝码和偏向,它就学会了分类,这个神经网络就变成了一个分类器。

现代的机器学习

如果一个机器学习系统没有被指定完成一项 _ 任务 _,它就真的是个学习系统,然而它是被指定去 _ 学习 _ 完成某项任务的。Schabenberger 把这个称为现代的机器学习。就像经典机器学习的变体一样,现代机器学习是一种数据驱动的训练。跟经典机器学习不同的是,现代机器学习不依赖于强悍的算法技术。几乎所有这种形式的机器学习应用,都是以深度神经网络为基础的。

现在,这个领域通常被称作深度学习,一个机器学习的专门科目。深度学习被频繁应用于各种弱人工智能应用,在这些领域,机器会去做人类的工作。

数据的角色

现在,通过学习数据的角色,就可以分清统计建模、经典机器学习和现代机器学习了。

在统计建模中,数据指引人们到一个随机模型的可挑选范围里,它就相当于是抽象的利益问题的概率表达,比如假说、预测和前瞻。

在经典的机器学习中,数据会驱动着分析技术的挑选范围,使得它们最高效地完成手边任务。数据训练了算法。

在现代的机器学习中,数据驱动着基于神经网络的系统,而为了学习一项任务,这些神经网络系统自主决定数据的规律性。在这个训练神经网络学习数据的过程中,它就学会了这项任务。就像有的人说的那样:“是数据完成了编程。”

查看英文原文 The difference between Statistical Modeling and Machine Learning, as I see it


感谢杜小芳对本文的审校。

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

2016-07-19 19:005467

评论

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

数据结构和算法学习总结-复杂度分析

Nick

时间复杂度 数据结构与算法 复杂度

VS +QT 手动添加Q_OBJECT 报错问题解决

Creep

c++ qt

Elasticsearch document routing 数据路由

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

2021年,开发者的落日

王知无

大数据

区块链隐私保护、体系结构与智能合约研究

CECBC

区块链

用helm chart将chripstack部署到kubernetes之上

远鹏

Kubernetes IoT Helm ChirpStack LoraWan

第十周 模块分解 作业 「架构师训练营 3 期」

胡云飞

图解类加载器和双亲委派机制,一看就懂

Java鱼仔

Java 程序员 面试 类加载

前端工程师的一大神器——puppeteer

执鸢者

大前端 Node puppeteer

开发质量提升系列:标准模板(上)

罗小龙

方法论 28天写作

使用 Tye 辅助开发 k8s 应用竟如此简单(一)

newbe36524

Docker 微服务 k8s dotnet

聊聊我的原创维权二三事

架构精进之路

自我思考 七日更 28天写作

95 后张勇:Apache Pulsar Committer 军团新生代力量

Apache Pulsar

大数据 开源 pulsar Apache Pulsar 消息系统

webpack | 进阶用法1:多入口构建/资源内联/脚本分离等

梁龙先森

大前端 webpack 28天写作

我看好数据湖的未来,但不看好数据湖的现在

王知无

大数据 数据湖

Apache老母鸡又下蛋?一文俯瞰Apache Superset

王知无

大数据

航运业“搭台” 区块链“唱戏”

CECBC

航运

关于微信8.0的一些社交小心思

静陌

微信 张小龙 社交

架构师训练营 - 第五周作业

Mark

产品 0 期 - 第三周作业

Jxin

第十周课后练习

Binary

读2020年Javascript趋势报告展望ES2020

devpoint

大前端 ES2020 构建工具

Spring 动态代理时是如何解决循环依赖的?为什么要使用三级缓存?

程序员小航

spring 源码

《程序员修炼之道》- 解决问题,而不是去责备(6)

石云升

程序员 bug修复 28天写作

架构入门感悟总结

笑春风

2月日更挑战|达标抽奖季,更有暖春大满足礼包等你来

InfoQ写作社区官方

2月春节不断更 热门活动

欢度春节|话题王者 VS 互动先锋(第二季)

InfoQ写作社区官方

话题讨论 热门活动

批判性思维自修课(五)

石君

28天写作 批判性思维

区块链技术发展及应用:现状与挑战

CECBC

区块链

企业是如何解决HDFS单点问题的?

大数据老哥

大数据 hadoop

产品 0 期 - 第三周作业

vipyinzhiwei

统计建模与机器学习的区别_语言 & 开发_Oliver Schabenberger_InfoQ精选文章