云头条 产业智能官

作者:Ron Schmelzer是AI研究咨询公司Cognilytica的执行合伙人兼首席分析师。

在过去这几年,你可能注意到了供应商们以越来越快的步伐推出服务于AI生态系统的“平台”,即满足数据科学和机器学习的需求。“数据科学平台”和“机器学习平台”在竞相吸引数据科学家、机器学习项目经理以及管理AI项目/计划的其他人士的目光和钱袋。如果你是主要的技术供应商,但在AI领域却没有大有作为,可能会迅速沦为边缘化。但是这些平台究竟是什么?为什么上演争抢市场份额这一幕?

说白了,机器学习和数据科学项目与平常的应用软件或硬件开发项目毫无相似之处。过去,软硬件开发旨在专注于系统或应用软件的功能,而数据科学和机器学习项目实际上旨在管理数据,不断丰富从数据中学到的知识,并基于不断迭代来改进数据模型。从以数据为中心的角度来看,典型的开发流程和平台根本不管用。

由于数据科学家和机器学习项目经理依靠平台为企业开发、运行、操作和管理数据模型,大大小小的技术供应商专注于开发平台也就不足为奇。对于这些供应商而言,未来的机器学习平台就像过去和现在的操作系统、云环境或移动开发平台。如果你能主导数据科学/机器学习平台的市场份额,在未来几十年就会收获丰厚的回报。因而,角逐这个领域的每家公司都在竞相分得一杯羹。

然而,机器学习平台是什么样子的?它与数据科学平台有何相同或不同?机器学习平台的核心要求是什么?它们与更普通的数据科学平台有何不同?这些平台的用户是谁,他们真正想要什么?不妨深入研究一下。

数据科学平台是什么?

数据科学家的任务是从海量数据中整理有用的信息,并将业务和运营信息需求转化为数据和数学语言。数据科学家需要精通统计学、概率、数学和算法,它们有助于从大量信息中收集有用的信息。数据科学家创建数据假设、运行数据测试和分析,然后转换分析结果,以便企业中的其他人查看和理解。因此,纯粹的数据科学平台要满足以下需求:帮助制作数据模型、确定最适合假设的信息、测试假设、促进数据科学家团队之间的协作,以及信息不断变化时有助于管理和完善数据模型。

此外,数据科学家的工作重点并不是放在以代码为中心的集成开发环境(IDE),而是放在笔记本(notebook)。笔记本最初因面向学术界且以数学为中心的平台(比如Mathematica和Matlab)而普及开来,如今在Python、R和SAS等社区非常流行,用于记录数据研究,并让笔记本可以在不同的源数据上运行,以此简化结果的可重复性。最好的笔记本是共享的协作环境,数据科学家小组可以一起工作,并针对不断变化的数据集迭代模型。虽然笔记本并不提供开发代码的出色环境,但提供了协作处理、探究和可视化数据的出色环境。的确,最好的笔记本被数据科学家用来快速探究庞大数据集,假设对干净数据拥有足够的访问权。

然而,如果访问不了大量的干净数据,数据科学家就无法有效地开展工作。提取、清理和移动数据其实不是数据科学家的职责,而是数据工程师的职责。数据工程师的任务就是从众多系统获取结构化和非结构化格式的数据,这些数据通常不“干净”,存在缺少字段、数据类型不匹配以及其他与数据有关的问题。这样一来,数据工程师成了设计、构建和安排数据的工程师。优秀的数据科学平台还使数据科学家能够随着需求增长轻松享用计算能力。平台不是将数据集复制到本地计算机上来处理,而是让数据科学家轻松访问计算能力和数据集,尽量减少麻烦。数据科学平台也面临着提供这些数据工程功能的需求。正因为如此,一个实用的数据科学平台将具有数据科学功能的要素和必要的数据工程功能。

机器学习平台是什么?

前面介绍了数据科学平台,甚至都没有提到过AI或机器学习。当然,两者重叠之处在于使用数据科学技术和机器学习算法,将其运用于庞大数据集以开发机器学习模型。数据科学家每天使用的工具与面向机器学习的科学家和工程师使用的工具有很大的重叠。然而,这些工具并不相同,因为机器学习科学家和工程师的需求有别于更一般的数据科学家和工程师的需求。

负责管理机器学习项目的人员不仅需要关注笔记本和生态系统,与其他人进行协同管理,还需要访问众多针对机器学习的算法、库和基础架构,以便针对变化中的庞大数据集训练这些算法。理想的机器学习平台可帮助机器学习工程师、数据科学家和工程师发现哪些机器学习方法最有效,如何调整超参数,如何在本地或基于云的CPU、GPU及/或TPU集群上部署计算密集型机器学习训练,并提供用于管理和监测无监督训练模式和监督训练模式的生态系统。

很显然,需要一种协作式、交互式、可视化的系统以便使用数据科学平台开发和管理机器学习模型,但对于机器学习平台而言,这还不够。如上所述,要使机器学习系统切实有效,比较棘手的一方面在于超参数的设置和调整。机器学习模型的整个概念是,它需要从数据中学习各种参数。基本上,机器学习实际学习的是数据参数,并将新数据拟合到这个学习的模型。超参数是可以配置的数据值,它们在训练无法从数据中学习的机器学习模型之前加以设置。这些超参数表明各种因素,比如复杂性和学习速度等。不同的机器学习算法需要不同的超参数,而一些根本不需要任何超参数。机器学习平台有助于超参数的发现、设置和管理,此外还包括不是针对机器学习的数据科学平台所不能提供的算法选择和比较。

大数据、机器学习工程、模型管理和实施的不同需求

归根结底,机器学习项目经理只是想要可提高工作效率的工具。但是并非所有机器学习项目都一样。一些专注于会话系统,另一些专注于识别或预测分析,另一些专注于强化学习或自主系统。此外,可以以各种不同方式部署(或实施)这些模型。一些模型可能驻留在云或本地服务器中,另一些模型部署到边缘设备或离线批处理模式。数据科学家、工程师和机器学习开发人员之间在机器学习应用、部署和需求方面存在着这些差异,因此单一机器学习平台的概念不是特别可行。这将是“杂而不精”的情况。

因此,我们看到出现了四种不同的平台。一种专注于数据科学家和模型构建者的需求,另一种专注于大数据管理和数据工程,第三种专注于模型“脚手架”和构建与模型交互的系统,第四种专注于管理模型生命周期:“机器学习运维”(ML Ops)。赢家将专注于为这每个部分构建功能。

AI的四种环境

数据科学平台竞争的赢家将是简化机器学习模型创建、训练和迭代的供应商。它们将使公司可以从笨拙的非智能系统快捷轻松地迁移到利用机器学习功能解决以前机器无法解决的问题的系统。无法支持机器学习功能的数据科学平台将改而处理非机器学习数据科学任务。同样,天生支持数据工程功能的那些大数据平台也将成为赢家。同样,应用软件开发工具将需要将机器学习模型当作其生命周期的最重要参与者,就跟其他任何形式的技术资产一样。最后,机器学习运维这个领域刚刚出现,无疑会在未来几年成为大新闻。

供应商告诉你它拥有AI或机器学习平台时,正确的回答是“哪一种?”。如你所见,并非只有单一的机器学习平台,而是有满足不同需求的不同平台。确保你没有被一些供应商的营销噱头忽悠了。


延展阅读:

五分钟了解机器学习十大算法

Fahim ul Haq InfoQ

作者 | Fahim ul Haq

译者 | 刘志勇

策划 | 赵钰莹

本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法。

机器学习是该行业的一个创新且重要的领域。我们为机器学习程序选择的算法类型,取决于我们想要实现的目标。

现在,机器学习有很多算法。因此,如此多的算法,可能对于初学者来说,是相当不堪重负的。今天,我们将简要介绍 10 种最流行的机器学习算法,这样你就可以适应这个激动人心的机器学习世界了!

让我们言归正传!

1. 线性回归

线性回归(Linear Regression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量(x 值)和数值结果(y 值)。然后就可以用这条线来预测未来的值!

这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。

例如,简单线性回归,它有一个自变量(x 轴)和一个因变量(y 轴)

2. 逻辑回归

逻辑回归(Logistic regression)与线性回归类似,但它是用于输出为二进制的情况(即,当结果只能有两个可能的值)。对最终输出的预测是一个非线性的 S 型函数,称为 logistic function, g()。

这个逻辑函数将中间结果值映射到结果变量 Y,其值范围从 0 到 1。然后,这些值可以解释为 Y 出现的概率。S 型逻辑函数的性质使得逻辑回归更适合用于分类任务。

逻辑回归曲线图,显示了通过考试的概率与学习时间的关系。

3. 决策树

决策树(Decision Trees)可用于回归和分类任务。

在这一算法中,训练模型通过学习树表示(Tree representation)的决策规则来学习预测目标变量的值。树是由具有相应属性的节点组成的。

在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。

每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。

决定是否在餐厅等候的决策树示例。

4. 朴素贝叶斯

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理。它测量每个类的概率,每个类的条件概率给出 x 的值。这个算法用于分类问题,得到一个二进制“是 / 非”的结果。看看下面的方程式。

朴素贝叶斯分类器是一种流行的统计技术,可用于过滤垃圾邮件!

5. 支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间的边距最大。为此,我们将数据项绘制为 n 维空间中的点,其中,n 是输入特征的数量。在此基础上,支持向量机找到一个最优边界,称为超平面(Hyperplane),它通过类标签将可能的输出进行最佳分离。

超平面与最近的类点之间的距离称为边距。最优超平面具有最大的边界,可以对点进行分类,从而使最近的数据点与这两个类之间的距离最大化。

例如,H1 没有将这两个类分开。但 H2 有,不过只有很小的边距。而 H3 以最大的边距将它们分开了。

6. K- 最近邻算法(KNN)

K- 最近邻算法(K-Nearest Neighbors,KNN)非常简单。KNN 通过在整个训练集中搜索 K 个最相似的实例,即 K 个邻居,并为所有这些 K 个实例分配一个公共输出变量,来对对象进行分类。

K 的选择很关键:较小的值可能会得到大量的噪声和不准确的结果,而较大的值是不可行的。它最常用于分类,但也适用于回归问题。

用于评估实例之间相似性的距离可以是欧几里得距离(Euclidean distance)、曼哈顿距离(Manhattan distance)或明氏距离(Minkowski distance)。欧几里得距离是两点之间的普通直线距离。它实际上是点坐标之差平方和的平方根。

KNN 分类示例

7. K- 均值

K- 均值(K-means)是通过对数据集进行分类来聚类的。例如,这个算法可用于根据购买历史将用户分组。它在数据集中找到 K 个聚类。K- 均值用于无监督学习,因此,我们只需使用训练数据 X,以及我们想要识别的聚类数量 K。

该算法根据每个数据点的特征,将每个数据点迭代地分配给 K 个组中的一个组。它为每个 K- 聚类(称为质心)选择 K 个点。基于相似度,将新的数据点添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化为止。

8. 随机森林

随机森林(Random Forest)是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比个人的意见更准确。在随机森林中,我们使用决策树集成(参见决策树)。

为了对新对象进行分类,我们从每个决策树中进行投票,并结合结果,然后根据多数投票做出最终决定。

(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。

(b)在分类过程中,输入实例的决定是根据多数投票做出的。

9. 降维

由于我们今天能够捕获的数据量之大,机器学习问题变得更加复杂。这就意味着训练极其缓慢,而且很难找到一个好的解决方案。这一问题,通常被称为“维数灾难”(Curse of dimensionality)。

降维(Dimensionality reduction)试图在不丢失最重要信息的情况下,通过将特定的特征组合成更高层次的特征来解决这个问题。主成分分析(Principal Component Analysis,PCA)是最流行的降维技术。

主成分分析通过将数据集压缩到低维线或超平面 / 子空间来降低数据集的维数。这尽可能地保留了原始数据的显著特征。

可以通过将所有数据点近似到一条直线来实现降维的示例。

10. 人工神经网络(ANN)

人工神经网络(Artificial Neural Networks,ANN)可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。在输入层和输出层之间,我们可以插入多个隐藏层。人工神经网络使用了两个隐藏层。除此之外,还需要处理深度学习。

人工神经网络的工作原理与大脑的结构类似。一组神经元被赋予一个随机权重,以确定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以访问正确的答案。

如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。

每个圆形节点表示一个人工神经元,箭头表示从一个人工神经元的输出到另一个人工神经元的输入的连接。

接下来是什么?现在,你已经了解了最流行的机器学习算法的基础介绍。你已经准备好学习更为复杂的概念,甚至可以通过深入的动手实践来实现它们。如果你想了解如何实现这些算法,可以参考 Educative 出品的 Grokking Data Science 课程,该课程将这些激动人心的理论应用于清晰、真实的应用程序。

祝你学习愉快!

作者介绍:

Fahim ul Haq,曾在 Facebook、Microsoft 工作。Educative.io 联合创始人。Educative 旨在帮助学生使用交互式课程来学习编程知识。

原文链接:

https://towardsdatascience.com/the-top-10-ml-algorithms-for-data-science-in-5-minutes-4ffbed9c8672

python 直线过滤掉不在边缘上的点_不存在所谓的机器学习平台相关推荐

  1. python 直线过滤掉不在边缘上的点_家庭养花,自制4种“杀虫水”,不生虫不生病,长得花繁叶茂!...

    春天来了百花齐放,但伴随着低温的升高,各种害虫们也开始蠢蠢欲动.最近胖胖就受到了很多花友的留言,说家里出现了蚜虫.蚧壳虫等害虫. 家里的花出现虫害以后,我们一定要重视起来,尽快治疗,如果一直拖着,不只 ...

  2. python解释器环境中、用于表示上一次_文学人类学概说_尔雅文学人类学概说答案第四小节课后作业答案...

    [判断题]对零星分数的统计资料,经过统计分组整理后,仍然不能发现其特点和规律. [单选题]小明一家三口在食用自制的臭豆腐后,相继出现全身乏力.头晕.头痛,继而出现视力模糊.眼睑下垂.复视.吞咽困难等症 ...

  3. python训练模型、如何得到模型训练总时长_【绝对干货】机器学习模型训练全流程!...

    周末在家无聊闲逛github,发现一个很有趣的开源项目,作者用手绘图的方式讲解了机器学习模型构建的全流程,逻辑清晰.生动形象.同时,作者也对几张图进行了详细的讲解,学习之后,收获很多,于是将其翻译下来 ...

  4. python解释器环境中、用于表示上一次_大工20秋《数据挖掘》在线作业3 【标准答案】...

    可做奥鹏全部院校作业论文!答案请添加qq:599792222 或 微信:1095258436 大工20秋<数据挖掘>在线作业3 1.[单选题] 以下哪一种数据类型元素之间是无序的,相同元素 ...

  5. python解释器环境中、用于表示上一次_在Python解释器环境中,用于表示上一次运算结果的特殊变量为( )。 (3.4分)_学小易找答案...

    [单选题]( )是 Python官方的扩展库命令,使用的较为普遍. (3.4分) [单选题]Python语言属于( ). (3.4分) [单选题]Python解释器的提示符为( ). (3.4分) [ ...

  6. python做一个网页、让用户上传数据_一个简单的网站爬虫教程,让你了解爬虫的步骤,爬虫网页数据采集...

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业 ...

  7. Android源码编译:任意界面屏幕边缘上滑弹出快捷操作栏【一键加速、开关控制】

    <The Fucking Source Code> 注:以下均为android源码Framework层修改. 设计实现在任意界面从屏幕边缘上滑弹出快捷操作栏,包括亮度调节.正在后台运行的程 ...

  8. python直线水平_基于直线勘测水平图像矫正——python

    文本的水平矫正,在一定程度上跟普通的水平矫正不太一样,普通的水平矫正图像都会带有自己的边缘,根据边缘可以提取出一个框架,然后进行旋转即可.但是文本图像的背景是白色的,所以没有办法像发票,报纸那类有明显 ...

  9. python使用np.logspace函数在对数刻度上创建一个对数等距数组实战:在对数刻度上创建一个数组(指定数值个数以及是否包含末尾界值)、使用不同的基数(底数)在对数刻度上构建等距数组、可视化

    python使用np.logspace函数在对数刻度上创建一个对数等距数组实战:在对数刻度上创建一个数组(指定数值个数以及是否包含末尾界值).使用不同的基数(底数)在对数刻度上构建等距数组.可视化 目 ...

最新文章

  1. python3教程-终于清楚python3详细教程
  2. spoj450 Enormous Input Test
  3. IT 巡检内容、方法大全
  4. 鸿蒙系统开发大会怎么参加,鸿蒙2.0来了?华为将举行开发者大会,做自己的手机系统!...
  5. python中queue使用_在python2.6中使用Queue类
  6. android studio卡顿解决方案
  7. Spring Boot 2.0 整合 ES 5 文章内容搜索实战
  8. 楚留香ai识别人脸_【专利解密】商汤科技:AI加持人脸识别
  9. C++初学必练基础题【第四期】
  10. MS-SQLSERVER中的msdtc不可用解决方法
  11. xy坐标转换经纬度C语言,(转载)经纬度与西安80,北京54的坐标系转换(C# 实现)...
  12. java 时间英文格式_Java英文日期格式解析
  13. Windows 写入缓存
  14. WMI与CIM的区别
  15. 留存分析_游戏数据分析
  16. 在linux中at 调度出错,Linux 技巧: 用cron 和at 调度作业
  17. 【Unity】动作游戏开发实战详细分析-07-连续技与组合技功能设计
  18. 计算机考试试题的问题,与计算机等级考试试题有关的几个问题
  19. 微软专家教你,如何搞定树莓派 AI 服务开发
  20. Launchy--快速调出你的程序

热门文章

  1. matlab怎么载入视频,怎样将视频导入matlab啊
  2. cordova指定版本_Cordova/Ionic构建android Gradle错误:支持的最小Gradle版本是2.14.1。当前版本是2.13...
  3. Java 算法 FBI树
  4. oracle apex 发布应用,基于Oracle APEX的快速Web应用开发
  5. 中python执行shell_IPython,在探索中学习编程
  6. pandas dataframe随机采样
  7. 解决 jupyter-lab 安装插件后无法使用的问题(重新安装插件无法使用)
  8. 文件服务器无法上传资料,该文件未上传至服务器怎么回事
  9. hdfs存储与数据同步
  10. 状压[Jxoi2012]奇怪的道路