写点什么

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

  • 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:005677

评论

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

自己动手写 Docker 系列文章总览

Go Docker 4月月更

移动办公安全告急?融云 x 海泰方圆,给即时通讯加把「安全锁」

融云 RongCloud

Apache负载均衡与Tomcat集群配置学习(Windows环境)

爱好编程进阶

Java 程序员 后端开发

docker的网络管理

爱好编程进阶

程序员 后端开发

GitHub已置顶!Alibaba最终版Java面试小抄+架构师系统进阶指南

Java架构追梦

Java 后端开发 程序员面试

Activiti6

爱好编程进阶

Java 程序员 后端开发

Dockerfile 搭建tomcat基础镜像与项目镜像

爱好编程进阶

Java 程序员 后端开发

不要再焦虑了,进大厂真的没你想象的那么困难

Java架构追梦

阿里架构师花两个月时间整理出来的Java独家面试题(Java岗)

Java架构追梦

Java 程序员 后端开发

从领导喊你回去改 Bug 来说如何取消 Dio 网络请求?

岛上码农

flutter ios开发 安卓开发 4月月更 跨平台开发

Nacos在企业生产中如何使用集群环境?

牧小农

nacos SpringCloud Alibaba

公司8java开发接私活被抓了,我说他最近咋这么飘

Java架构追梦

程序员 JAVA开发 java面试 后端开发

成为Java顶尖程序员之前,先过了下面问题才行

Java架构追梦

Java 后端开发 数据结构与算法

对已有系统如何开展TDD

Bruce Talk

敏捷 敏捷开发 TDD Agile

9000字通俗易懂的讲解下Java注解,你还看不明白?

爱好编程进阶

Java 程序员 后端开发

@Autowire和@Resource注解使用的正确姿势

爱好编程进阶

Java 程序员 后端开发

Day232&233

爱好编程进阶

Java 程序员 后端开发

Centos7安装JDK和Tomcat详细步骤

爱好编程进阶

Java 程序员 后端开发

Drools规则引擎实践直白总结

爱好编程进阶

Java 程序员 后端开发

四面字节跳动Java研发岗,最终拿下Offer,只有努力,方能成功,老八股了

Java架构追梦

Java MySQL 程序员 后端开发

ElasticSearch中DSL高级检索(Query)

爱好编程进阶

Java 程序员 后端开发

五分钟搞懂分布式流控算法

俞凡

架构 算法

千万级学生管理系统的考试试卷存储方案

凯博无线

面试了200多个程序员,多数上来就要20K,说实话6K我都不想给

Java架构追梦

Java 后端开发 程序员面试

9 个 Java 性能调优技巧,YYDS!

爱好编程进阶

Java 程序员 后端开发

Day163

爱好编程进阶

Java 程序员 后端开发

Elasticsearch Query DSL之Compound queries(复合查询)

爱好编程进阶

Java 程序员 后端开发

dubbo 长连接

爱好编程进阶

Java 程序员 后端开发

Elasticsearch中的Term查询和全文查询

爱好编程进阶

Java 程序员 后端开发

elasticsearch各种问题总结

爱好编程进阶

Java 程序员 后端开发

头一次见这么牛的的SpringBoot从入门到实战文档

Java架构追梦

spring java面试 后端开发

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