知道某种数据规律分析, 要做一个程序,用什么语言比较好?

华研数据:关于大数据 你应该知道的75个专业术语
来源:华研数据
作者:华研数据
该文扼要而全面地介绍了关于大数据的 75个核心术语,这不仅是大数据初学者很好的入门资料,对于高阶从业人员也可以起到查漏补缺的作用。
  近日,Ramesh Dontha 在 DataConomy 上连发两篇文章,扼要而全面地介绍了关于的 75个核心术语,这不仅是大数据初学者很好的入门资料,对于高阶从业人员也可以起到查漏补缺的作用。本文分为上篇(25个术语)和下篇(50个术语)。
  上篇(25 个术语)
  如果你刚接触大数据,你可能会觉得这个领域很难以理解,无从下手。不过,你可以从下面这份包含了 25 个大数据术语的清单入手,那么我们开始吧。
  算法(Algorithm):算法可以理解成一种数学公式或用于进行数据分析的统计学过程。那么,「算法」又是何以与大数据扯上关系的呢?要知道,尽管算法这个词是一个统称,但是在这个流行大数据分析的时代,算法也经常被提及且变得越发流行。
  分析(Analytics):让我们试想一个很可能发生的情况,你的公司给你发了封记录着你全年卡内资金转账情况的邮件,如果这个时候你拿着这张单子,开始认真研究你在食品、衣物、娱乐等方面消费情况的百分比会怎样?你正在进行分析工作,你在从你原始的数据(这些数据可以帮助你为来年自己的消费情况作出决定)中挖掘有用的信息。那么,如果你以类似的方法在推特和脸书上对整个城市人们发的帖子进行处理会如何呢?在这种情况下,我们就可以称之为大数据分析。所谓大数据分析,就是对大量数据进行推理并从中道出有用的信息。以下有三种不同类型的分析方法,现在我们来对它们分别进行梳理。
  描述性分析法(Descriptive Analytics):如果你只说出自己去年信用卡消费情况为:食品方面 25%、衣物方面 35%、娱乐方面 20%、剩下 20% 为杂项开支,那么这种分析方法被称为描述性分析法。当然,你也可以找出更多细节。
  预测性分析法(Predictive Analytics):如果你对过去 5 年信用卡消费的历史进行了分析,发现每年的消费情况基本上呈现一个连续变化的趋势,那么在这种情况下你就可以高概率预测出:来年的消费状态应该和以往是类似的。这不是说我们在预测未来,而是应该理解为,我们在「用概率预测」可能发生什么事情。在大数据的预测分析中,数据科学家可能会使用先进的技术,如机器学习,和先进的统计学处理方法(这部分后面我们会谈到)来预测天气情况、经济变化等等。
  规范性分析(Prescriptive Analytics):这里我们还是用信用卡转账的例子来理解。假如你想找出自己的哪类消费(如食品、娱乐、衣物等等)可以对整体消费产生巨大影响,那么基于预测性分析(Predictive Analytics)的规范性分析法通过引入「动态指标(action)」(如减少食品或衣物或娱乐)以及对由此产生的结果进行分析来规定一个可以降低你整体开销的最佳消费项。你可以将它延伸到大数据领域,并想象一个负责人是如何通过观察他面前多种动态指标的影响,进而作出所谓由「数据驱动」的决策的。
  批处理(Batch processing):尽管批量数据处理从大型机(mainframe)时代就已经存在了,但是在处理大量数据的大数据时代面前,批处理获得了更重要的意义。批量数据处理是一种处理大量数据(如在一段时间内收集到的一堆交易数据)的有效方法。分布式计算(Hadoop),后面会讨论,就是一种专门处理批量数据的方法。
  Cassandra:是一个很流行的开源数据管理系统,由 Apache Software Foundation 开发并运营。Apache 掌握了很多大数据处理技术,Cassandra 就是他们专门设计用于在分布式服务器之间处理大量数据的系统。
  (Cloud computing):虽然云计算这个词现在已经家喻户晓,这里大可不必赘述,但是为了全篇内容完整性的考虑,笔者还是在这里加入了云计算词条。本质上讲,软件或数据在远程服务器上进行处理,并且这些资源可以在网络上任何地方被访问,那么它就可被称为云计算。
  集群计算(Cluster computing):这是一个来描述使用多个服务器丰富资源的一个集群(cluster)的计算的形象化术语。更技术层面的理解是,在集群处理的语境下,我们可能会讨论节点(node)、集群管理层(cluster management layer)、负载平衡(load balancing)和并行处理(parallel processing)等等。
  暗数据(Dark data):这是一个生造词,在笔者看来,它是用来吓唬人,让高级管理听上去晦涩难懂的。基本而言,所谓暗数据指的是,那些公司积累和处理的实际上完全用不到的所有数据,从这个意义上来说我们称它们为「暗」的数据,它们有可能根本不会被分析。这些数据可以是社交网络中的信息,电话中心的记录,会议记录等等。很多估计认为所有公司的数据中有 60% 到 90% 不等可能是暗数据,但实际上没人知道。
  数据湖(Data lake):当笔者第一次听到这个词时,真的以为这是个愚人节笑话。但是它真的是一个术语。所以一个数据湖(data lake)即一个以大量原始格式保存了公司级别的数据知识库。这里我们介绍一下数据仓库(Data warehouse)。数据仓库是一个与这里提到的数据湖类似的概念,但不同的是,它保存的是经过清理和并且其它资源整合后的结构化数据。数据仓库经常被用于通用数据(但不一定如此)。一般认为,一个数据湖可以让人更方便地接触到那些你真正需要的数据,此外,你也可以更方便地处理、有效地使用它们。
  数据挖掘(Data mining):数据挖掘关乎如下过程,从一大群数据中以复杂的模式识别技巧找出有意义的模式,并且得到相关洞见。它与前文所述的「分析」息息相关,在数据挖掘中,你将会先对数据进行挖掘,然后对这些得到的结果进行分析。为了得到有意义的模式(pattern),数据挖掘人员会使用到统计学(一种经典的旧方法)、机器学习算法和。
  数据科学家:数据科学家是时下非常性感的一门行业。它指那些可以通过提取原始数据(这就是我们前面所谓的数据湖)进而理解、处理并得出洞见的这样一批人。部分数据科学家必备的技能可以说只有超人才有:分析能力、统计学、计算机科学、创造力、讲故事能力以及理解商业背景的能力。难怪这帮人工资很高。
  分布式文件系统(Distributed File System):大数据数量太大,不能存储在一个单独的系统中,分布式文件系统是一个能够把大量数据存储在多个存储设备上的文件系统,它能够减少存储大量数据的成本和复杂度。
  ETL:ETL 代表提取、转换和加载。它指的是这一个过程:「提取」原始数据,通过清洗/丰富的手段,把数据「转换」为「适合使用」的形式,并且将其「加载」到合适的库中供系统使用。即使 ETL 源自数据仓库,但是这个过程在获取数据的时候也在被使用,例如,在大数据系统中从外部源获得数据。
  Hadoop:当人们思考大数据的时候,他们会立即想到 Hadoop。Hadoop 是一个开源软件架构(logo 是一头可爱的大象),它由 Hadoop 分布式文件系统(HDFS)构成,它允许使用分布式硬件对大数据进行存储、抽象和分析。如果你真的想让某人对这个东西印象深刻,你可以跟他说 YARN(Yet Another Resource Scheduler),顾名思义,就是另一个资源调度器。我确实被提出这些名字的人深深震撼了。提出 Hadoop 的 Apache 基金会,还负责 Pig、Hive 以及 Spark(这都是一些软件的名字)。你没有被这些名字惊艳到吗?
  内存计算(In-memory computing):通常认为,任何不涉及到 I/O 访问的计算都会更快一些。内存计算就是这样的技术,它把所有的工作数据集都移动到集群的集体内存中,避免了在计算过程中向磁盘写入中间结果。Apache Spark 就是一个内存计算的系统,它相对 Mapreduce 这类 I/O 绑定的系统具有很大的优势。
  (IoT):最新的流行语就是物联网(IoT)。IoT 是嵌入式对象中(如传感器、可穿戴设备、车、冰箱等等)的计算设备通过英特网的互联,它们能够收发数据。物联网生成了海量的数据,带来了很多大数据分析的机遇。
  机器学习(Machine Learning):机器学习是基于喂入的数据去设计能够学习、调整和提升的系统的一种方法。使用设定的预测和统计算法,它们持续地逼近「正确的」行为和想法,随着更多的数据被输入到系统,它们能够进一步提升。
  MapReduce:MapReduce 可能有点难以理解,我试着解释一下吧。MapReduceMapReduce 是一个编程模型,最好的理解就是要注意到 Map 和 Reduce 是两个不同的过程。在 MapReduce 中,程序模型首先将大数据集分割成一些小块(这些小块拿技术术语来讲叫做「元组」,但是我描述的时候会尽量避免晦涩的技术术语),然后这些小块会被分发给不同位置上的不同计算机(也就是说之前描述过的集群),这在 Map 过程是必须的。然后模型会收集每个计算结果,并且将它们「reduce」成一个部分。MapReduce 的数据处理模型和 Hadoop 分布式文件系统是分不开的。
  非关系型数据库(NoSQL):这个词听起来几乎就是「SQL,结构化查询语言」的反义词,SQL 是传统的关系型数据管理系统(RDBMS)必需的,但是 NOSQL 实际上指的是「不止 SQL」。NoSQL 实际上指的是那些被设计来处理没有结构(或者没有「schema」,纲要)的大量数据的数据库管理系统。NoSQL 适合大数据系统,因为大规模的非结构化数据库需要 NoSQL 的这种灵活性和分布式优先的特点。
  R 语言:这还有人能给一个编程语言起一个更加糟糕的名字吗?R 语言就是这样的语言。不过,R 语言是一个在统计工作中工作得很好的语言。如果你不知道 R 语言,别说你是数据科学家。因为 R 语言是数据科学中最流行的编程语言之一。
  Spark(Apache Spark):Apache Spark 是一个快速的内存数据处理引擎,它能够有效地执行那些需要迭代访问数据库的流处理、机器学习以及 SQL 负载。Spark 通常会比我们前面讨论过的 MapReduce 快好多。
  流处理(Stream processing):流处理被设计来用于持续地进行流数据的处理。与流分析技术(指的是能够持续地计算数值和统计分析的能力)结合起来,流处理方法特别能够针对大规模数据的实时处理。
  结构化 vs 非结构化数据(Structured v Unstructured Data):这是大数据中的对比之一。结构化数据基本上是那些能够被放在关系型数据库中的任何数据,以这种方式组织的数据可以与其他数据通过表格来关联。非结构化数据是指任何不能够被放在关系型数据库中的数据,例如邮件信息、社交媒体上的状态,以及人类语音等等。二、下篇(50 个术语)
  这篇文章是上篇文章的延续,由于上篇反响热烈,我决定多介绍 50个相关术语。下面来对上篇文章涵盖的术语做个简短的回顾:算法,分析,描述性分析,预处理分析,预测分析,批处理,Cassandra(一个大规模分布式数据存储系统),云计算,集群计算,暗数据,数据湖,数据挖掘,数据科学家,分布式文件系统,ETL,Hadoop(一个开发和运行处理大规模数据的软件平台),内存计算,物联网,机器学习,Mapreduce(hadoop 的核心组件之一),NoSQL(非关系型的数据库),R,Spark(计算引擎),流处理,结构化 vs 非结构化数据。
  我们接下来继续了解另外 50 个大数据术语。
  Apache:软件基金会(ASF)提供了许多大数据的开源项目,目前有 350 多个。解释完这些项目需要耗费大量时间,所以我只挑选解释了一些流行术语。
  Apache Kafka:命名于捷克作家卡夫卡,用于构建实时数据管道和流媒体应用。它如此流行的原因在于能够以容错的方式存储、管理和处理数据流,据说还非常「快速」。鉴于社交网络环境大量涉及数据流的处理,卡夫卡目前非常受欢迎。
  Apache Mahout:Mahout 提供了一个用于机器学习和数据挖掘的预制算法库,也可用作创建更多算法的环境。换句话说,机器学习极客的最佳环境。
  Apache Oozie:在任何编程环境中,你都需要一些工作流系统通过预定义的方式和定义的依赖关系,安排和运行工作。Oozie 为 pig、MapReduce 以及 Hive 等语言编写的大数据工作所提供正是这个。
  Apache Drill, Apache Impala, Apache Spark SQL:这三个开源项目都提供快速和交互式的 SQL,如与 Apache Hadoop 数据的交互。如果你已经知道 SQL 并处理以大数据格式存储的数据(即 HBase 或 HDFS),这些功能将非常有用。抱歉,这里说的有点奇怪。
  Apache Hive:知道 SQL 吗?如果知道那你就很好上手 Hive 了。Hive 有助于使用 SQL 读取、写入和管理驻留在分布式存储中的大型数据集。
  Apache Pig:Pig 是在大型分布式数据集上创建、查询、执行例程的平台。所使用的脚本语言叫做 Pig Latin(我绝对不是瞎说,相信我)。据说 Pig 很容易理解和学习。但是我很怀疑有多少是可以学习的?
  Apache Sqoop:一个用于将数据从 Hadoop 转移到非 Hadoop 数据存储(如数据仓库和关系数据库)的工具。
  Apache Storm:一个免费开源的实时分布式计算系统。它使得使用 Hadoop 进行批处理的同时可以更容易地处理非结构化数据。
  人工智能(AI):为什么 AI 出现在这里?你可能会问,这不是一个单独的领域吗?所有这些技术发展趋势紧密相连,所以我们最好静下心来继续学习,对吧?AI 以软硬件结合的方式开发智能机器和软件,这种硬件和软件的结合能够感知环境并在需要时采取必要的行动,不断从这些行动中学习。是不是听起来很像机器学习?跟我一起「困惑」吧。
  行为分析(Behavioral Analytics):你有没有想过谷歌是如何为你需要的产品/服务提供广告的?行为分析侧重于理解消费者和应用程序所做的事情,以及如何与为什么它们以某种方式起作用。这涉及了解我们的上网模式,社交媒体互动行为,以及我们的网上购物活动(购物车等),连接这些无关的数据点,并试图预测结果。举一个例子,在我找到一家酒店并清空购物车后,我收到了度假村假期线路的电话。我还要说多点吗?
  Brontobytes:1 后面 27 个零,这是未来数字世界存储单位的大小。而我们在这里,来谈谈 Terabyte、Petabyte、Exabyte、Zetabyte、Yottabyte 和 Brontobyte。你一定要读这篇文章才能深入了解这些术语。
  商业智能(Business Intelligence):我将重用 Gartner 对 BI 的定义,因为它解释的很好。商业智能是一个总称,包括应用程序、基础设施、工具以及最佳实践,它可以访问和分析信息,从而改善和优化决策及绩效。
  生物测定学(Biometrics):这是一项 James Bondish 技术与分析技术相结合的通过人体的一种或多种物理特征来识别人的技术,如面部识别,虹膜识别,指纹识别等。
  点击流分析(Clickstream analytics):用于分析用户在网络上浏览时的在线点击数据。有没有想过即使在切换网站时,为什么某些谷歌广告还是阴魂不散?因为谷歌大佬知道你在点击什么。
  聚类分析(Cluster Analysis):是一个试图识别数据结构的探索性分析,也称为分割分析或分类分析。更具体地说,它试图确定案例的同质组(homogenous groups),即观察、参与者、受访者。如果分组以前未知,则使用聚类分析来识别案例组。因为它是探索性的,确实对依赖变量和独立变量进行了区分。SPSS 提供的不同的聚类分析方法可以处理二进制、标称、序数和规模(区间或比率)数据。
  比较分析(Comparative Analytics):因为大数据的关键就在于分析,所以本文中我将深入讲解分析的意义。顾名思义,比较分析是使用诸如模式分析、过滤和决策树分析等统计技术来比较多个进程、数据集或其他对象。我知道它涉及的技术越来越少,但是我仍无法完全避免使用术语。比较分析可用于领域,通过比较大量的医疗记录、文件、图像等,给出更有效和更准确的医疗诊断。
  关联分析(Connection Analytics):你一定看到了像图表一样的蜘蛛网将人与主题连接起来,从而确定特定主题的影响者。关联分析分析可以帮助发现人们、产品、网络之中的系统,甚至是数据与多个网络结合之间的相关连接和影响。
  数据分析师(Data Analyst):数据分析师是一个非常重要和受欢迎的工作,除了准备报告之外,它还负责收集、编辑和分析数据。我会写一篇更详细的关于数据分析师的文章。
  数据清洗(Data Cleansing):顾名思义,数据清洗涉及到检测并更正或者删除数据库中不准确的数据或记录,然后记住「脏数据」。借助于自动化或者人工工具和算法,数据分析师能够更正并进一步丰富数据,以提高数据质量。请记住,脏数据会导致错误的分析和糟糕的决策。
  数据即服务(DaaS):我们有软件即服务(SaaS), 平台即服务(PaaS),现在我们又有 DaaS,它的意思是:数据即服务。通过给用户提供按需访问的云端数据,DaaS 提供商能够帮助我们快速地得到高质量的数据。
  数据虚拟化(Data virtualization):这是一种数据管理方法,它允许某个应用在不知道技术细节(如数据存放在何处,以什么格式)的情况下能够抽取并操作数据。例如,社交网络利用这个方法来存储我们的照片。
  脏数据(Dirty Data):既然大数据这么吸引人,那么人们也开始给数据加上其他的形容词来形成新的术语,例如黑数据(dark data)、脏数据(dirty data)、小数据(small data),以及现在的智能数据(smart data)。脏数据就是不干净的数据,换言之,就是不准确的、重复的以及不一致的数据。显然,你不会想着和脏数据搅在一起。所以,尽快地修正它。
  模糊逻辑(Fuzzy logic):我们有多少次对一件事情是确定的,例如 100% 正确?很稀少!我们的大脑将数据聚合成部分的事实,这些事实进一步被抽象为某种能够决定我们决策的阈值。模糊逻辑是一种这样的计算方式,与像布尔代数等等中的「0」和「1」相反,它旨在通过渐渐消除部分事实来模仿人脑。
  游戏化(Gamification):在一个典型的游戏中,你会有一个类似于分数一样的元素与别人竞争,并且还有明确的游戏规则。大数据中的游戏化就是使用这些概念来收集、分析数据或者激发玩家。
  图数据库(Graph Databases):图数据使用节点和边这样的概念来代表人和业务以及他们之间的关系,以挖掘社交媒体中的数据。是否曾经惊叹过亚马逊在你买一件产品的时候告诉你的关于别人在买什么的信息?对,这就是图数据库。
  Hadoop 用户体验(Hadoop User Experience /Hue):Hue 是一个能够让使用 Apache Hadoop 变得更加容易的开源接口。它是一款基于 web 的应用;它有一款分布式文件系统的文件浏览器;它有用于 MapReduce 的任务设计;它有能够调度工作流的框架 Oozie;它有一个 shell、一个 Impala、一个 Hive UI 以及一组 Hadoop API。
  高性能分析应用(HANA):这是 SAP 公司为大数据传输和分析设计的一个软硬件内存平台。
  HBase: 一个分布式的面向列的数据库。它使用 HDFS 作为其底层存储,既支持利用 MapReduce 进行的批量计算,也支持利用事物交互的批量计算。
  负载均衡(Load balancing):为了实现最佳的结果和对系统的利用,将负载分发给多个计算机或者服务器。
  元数据(Metadata):元数据就是能够描述其他数据的数据。元数据总结了数据的基本信息,这使得查找和使用特定的数据实例变得更加容易。例如,作者、数据的创建日期、修改日期以及大小,这几项是基本的文档元数据。除了文档文件之外,元数据还被用于图像、视频、电子表格和网页。
  MongoDB:MongoDB 是一个面向文本数据模型的跨平台开源数据库,而不是传统的基于表格的关系数据库。这种数据库结构的主要设计目的是让结构化数据和非结构化数据在特定类型应用的整合更快、更容易。
  Mashup:幸运的是,这个术语和我们在日常生活中使用的「mashup」一词有着相近的含义,就是混搭的意思。实质上,mashup 是一个将不同的数据集合并到一个单独应用中的方法(例如:将房地产数据与地理位置数据、人口数据结合起来)。这确实能够让可视化变得很酷。
  多维数据库(Multi-Dimensional Databases):这是一个为了数据在线分析处理(OLAP)和数据仓库优化而来的数据库。如果你不知道数据仓库是什么,我可以解释一下,数据仓库不是别的什么东西,它只是对多个数据源的数据做了集中存储。
  多值数据库(MultiValue Databases):多值数据库是一种非关系型数据库,它能够直接理解三维数据,这对直接操作 HTML 和 XML 字符串是很好的。
  自然语言处理(Natural Language Processing):自然语言处理是被设计来让计算机更加准确地理解人类日常语言的软件算法,能够让人类更加自然、更加有效地和计算机交互。
  神经网络(Neural Network):根据这个描述
  (http://neuralnetworksanddeeplearning.com/),神经网络是一个受生物学启发的非常漂亮的编程范式,它能够让计算机从观察到的数据中学习。已经好久没有一个人会说一个编程范式很漂亮了。实际上,神经网络就是受现实生活中脑生物学启发的模型....... 与神经网络紧密关联的一个术语就是深度学习。深度学习是神经网络中一系列学习技术的集合。
  模式识别(Pattern Recognition):当算法需要在大规模数据集或者在不同的数据集上确定回归或者规律的时候,就出现了模式识别。它与机器学习和数据挖掘紧密相连,甚至被认为是后两者的代名词。这种可见性可以帮助研究者发现一些深刻的规律或者得到一些可能被认为很荒谬的结论。
  射频识别(Radio Frequency Identification/RFID):射频识别是一类使用非接触性无线射频电磁场来传输数据的传感器。随着物联网的发展,RFID 标签能够被嵌入到任何可能的「东西里面」,这能够生成很多需要被分析的数据。欢迎来到数据世界。
  软件即服务(SaaS):软件即服务让服务提供商把应用托管在互联网上。SaaS 提供商在云端提供服务。
  半结构化数据(Semi-structured data):半结构化数据指的是那些没有以传统的方法进行格式化的数据,例如那些与传统数据库相关的数据域或者常用的数据模型。半结构化数据也不是完全原始的数据或者完全非结构化的数据,它可能会包含一些数据表、标签或者其他的结构元素。半结构化数据的例子有图、表、XML 文档以及电子邮件。半结构化数据在万维网上十分流行,在面向对象数据库中经常能够被找到。
  情感分析(Sentiment Analysis):情感分析涉及到了对消费者在社交媒体、顾客代表电话访谈和调查中存在的多种类型的交互和文档中所表达的情感、情绪和意见的捕捉、追踪和分析。文本分析和自然语言处理是情感分析过程中的典型技术。情感分析的目标就是要辨别或评价针对一个公司、产品、服务、人或者时间所持有的态度或者情感。
  空间分析(Spatial analysis):空间分析指的是对空间数据作出分析,以识别或者理解分布在几何空间中的数据的模式和规律,这类数据有几何数据和拓扑数据。
  流处理(Stream processing):流处理被设计用来对「流数据」进行实时的「连续」查询和处理。为了对大量的流数据以很快的速度持续地进行实时的数值计算和统计分析,社交网络上的流数据对流处理的需求很明确。
  智能数据(Smart Data):是经过一些算法处理之后有用并且可操作的数据。
  Terabyte:这是一个相对大的数字数据单位,1TB 等于 1000GB。据估计,10TB 能够容纳美国国会图书馆的所有印刷品,而 1TB 则能够容纳整个百科全书 Encyclopedia Brittanica。
  可视化(Visualization):有了合理的可视化之后,原始数据就能够使用了。当然这里的可视化并不止简单的图表。而是能够包含数据的很多变量的同时还具有可读性和可理解性的复杂图表。
  Yottabytes:接近 1000 Zettabytes,或者 2500 万亿张 DVD。现在所有的数字存储大概是 1 Yottabyte,而且这个数字每 18 个月会翻一番。
  Zettabytes:接近 1000 Exabytes,或者 10 亿 Terabytes。
  (本文转载自作者微信公众号“华研数据”,作者授权金融界网站刊发,未经授权,不得转载,否则将追究法律责任。如果您有干货观点或文章,愿意为广大投资者提供最权威最专业的意见参考。无论您是权威专家、家还是智库机构,我们都欢迎您积极踊跃投稿,入驻金融界网站,邮箱地址:,咨询电话:010-7。期待您的加入!)
关键词阅读:
责任编辑:Robot&RF13015
机会早知道
已有&0&条评论
最近访问股
以下为您的最近访问股
<span class="mh-title"
style="color: #小时点击排行当前位置: &
一文读懂机器学习,大数据/自然语言处理/算法全有了……
发布时间:
来源:网络
作者:计算机的潜意识
在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。
在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?
我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一:
图1 机器学习界的执牛耳者与互联网界的大鳄的联姻
这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工智能实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类&#8211;深度学习。
下图是图二:
图2 语音助手产品
这幅图上描述的是什么?Windows Phone上的语音助手Cortana,名字来源于《光环》中士官长的助手。相比其他竞争对手,微软很迟才推出这个服务。Cortana背后的核心技术是什么,为什么它能够听懂人的语音?事实上,这个技术正是机器学习。机器学习是所有语音助手产品(包括Apple的siri与Google的Now)能够跟人交互的关键技术。
通过上面两图,我相信大家可以看出机器学习似乎是一个很重要的,有很多未知特性的技术。学习它似乎是一件有趣的任务。实际上,学习机器学习不仅可以帮助我们了解互联网界最新的趋势,同时也可以知道伴随我们的便利服务的实现技术。
机器学习是什么,为什么它能有这么大的魔力,这些问题正是本文要回答的。同时,本文叫做“从机器学习谈起”,因此会以漫谈的形式介绍跟机器学习相关的所有内容,包括学科(如数据挖掘、计算机视觉等),算法(神经网络,svm)等等。本文的主要目录如下:
1.一个故事说明什么是机器学习
2.机器学习的定义
3.机器学习的范围
4.机器学习的方法
5.机器学习的应用&#8211;大数据
6.机器学习的子类&#8211;深度学习
7.机器学习的父类&#8211;人工智能
8.机器学习的思考&#8211;计算机的潜意识
1.一个故事说明什么是机器学习
机器学习这个词是让人疑惑的,首先它是英文名称Machine Learning(简称ML)的直译,在计算界Machine一般指计算机。这个名字使用了拟人的手法,说明了这门技术是让机器“学习”的技术。但是计算机是死的,怎么可能像人类一样“学习”呢?
传统上如果我们想让计算机工作,我们给它一串指令,然后它遵照这个指令一步步执行下去。有因有果,非常明确。但这样的方式在机器学习中行不通。机器学习根本不接受你输入的指令,相反,它接受你输入的数据! 也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。你会颠覆对你以前所有程序中建立的因果无处不在的根本理念。
下面我通过一个故事来简单地阐明什么是机器学习。这个故事比较适合用在知乎上作为一个概念的阐明。在这里,这个故事没有展开,但相关内容与核心是存在的。如果你想简单的了解一下什么是机器学习,那么看完这个故事就足够了。如果你想了解机器学习的更多知识以及与它关联紧密的当代技术,那么请你继续往下看,后面有更多的丰富的内容。
这个例子来源于我真实的生活经验,我在思考这个问题的时候突然发现它的过程可以被扩充化为一个完整的机器学习的过程,因此我决定使用这个例子作为所有介绍的开始。这个故事称为“等人问题”。
我相信大家都有跟别人相约,然后等人的经历。现实中不是每个人都那么守时的,于是当你碰到一些爱迟到的人,你的时间不可避免的要浪费。我就碰到过这样的一个例子。
对我的一个朋友小Y而言,他就不是那么守时,最常见的表现是他经常迟到。当有一次我跟他约好3点钟在某个麦当劳见面时,在我出门的那一刻我突然想到一个问题:我现在出发合适么?我会不会又到了地点后,花上30分钟去等他?我决定采取一个策略解决这个问题。
要想解决这个问题,有好几种方法。第一种方法是采用知识:我搜寻能够解决这个问题的知识。但很遗憾,没有人会把如何等人这个问题作为知识传授,因此我不可能找到已有的知识能够解决这个问题。第二种方法是问他人:我去询问他人获得解决这个问题的能力。但是同样的,这个问题没有人能够解答,因为可能没人碰上跟我一样的情况。第三种方法是准则法:我问自己的内心,我有否设立过什么准则去面对这个问题?例如,无论别人如何,我都会守时到达。但我不是个死板的人,我没有设立过这样的规则。
事实上,我相信有种方法比以上三种都合适。我把过往跟小Y相约的经历在脑海中重现一下,看看跟他相约的次数中,迟到占了多大的比例。而我利用这来预测他这次迟到的可能性。如果这个值超出了我心里的某个界限,那我选择等一会再出发。假设我跟小Y约过5次,他迟到的次数是1次,那么他按时到的比例为80%,我心中的阈值为70%,我认为这次小Y应该不会迟到,因此我按时出门。如果小Y在5次迟到的次数中占了4次,也就是他按时到达的比例为20%,由于这个值低于我的阈值,因此我选择推迟出门的时间。这个方法从它的利用层面来看,又称为经验法。在经验法的思考过程中,我事实上利用了以往所有相约的数据。因此也可以称之为依据数据做的判断。
依据数据所做的判断跟机器学习的思想根本上是一致的。
刚才的思考过程我只考虑“频次”这种属性。在真实的机器学习中,这可能都不算是一个应用。一般的机器学习模型至少考虑两个量:一个是因变量,也就是我们希望预测的结果,在这个例子里就是小Y迟到与否的判断。另一个是自变量,也就是用来预测小Y是否迟到的量。假设我把时间作为自变量,譬如我发现小Y所有迟到的日子基本都是星期五,而在非星期五情况下他基本不迟到。于是我可以建立一个模型,来模拟小Y迟到与否跟日子是否是星期五的概率。见下图:
图3 决策树模型
这样的图就是一个最简单的机器学习模型,称之为决策树。
当我们考虑的自变量只有一个时,情况较为简单。如果把我们的自变量再增加一个。例如小Y迟到的部分情况时是在他开车过来的时候(你可以理解为他开车水平较臭,或者路较堵)。于是我可以关联考虑这些信息。建立一个更复杂的模型,这个模型包含两个自变量与一个因变量。
再更复杂一点,小Y的迟到跟天气也有一定的原因,例如下雨的时候,这时候我需要考虑三个自变量。
如果我希望能够预测小Y迟到的具体时间,我可以把他每次迟到的时间跟雨量的大小以及前面考虑的自变量统一建立一个模型。于是我的模型可以预测值,例如他大概会迟到几分钟。这样可以帮助我更好的规划我出门的时间。在这样的情况下,决策树就无法很好地支撑了,因为决策树只能预测离散值。我们可以用节2所介绍的线型回归方法建立这个模型。
如果我把这些建立模型的过程交给电脑。比如把所有的自变量和因变量输入,然后让计算机帮我生成一个模型,同时让计算机根据我当前的情况,给出我是否需要迟出门,需要迟几分钟的建议。那么计算机执行这些辅助决策的过程就是机器学习的过程。
机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。
通过上面的分析,可以看出机器学习与人类思考的经验过程是类似的,不过它能考虑更多的情况,执行更加复杂的计算。事实上,机器学习的一个主要目的就是把人类思考归纳经验的过程转化为计算机通过对数据的处理计算得出模型的过程。经过计算机得出的模型能够以近似于人的方式解决很多灵活复杂的问题。
下面,我会开始对机器学习的正式介绍,包括定义、范围,方法、应用等等,都有所包含。
2.机器学习的定义
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。
让我们具体看一个例子。
图4 房价的例子
拿国民话题的房子来说。现在我手里有一栋房子需要售卖,我应该给它标上多大的价格?房子的面积是100平方米,价格是100万,120万,还是140万?
很显然,我希望获得房价与面积的某种规律。那么我该如何获得这个规律?用报纸上的房价平均数据么?还是参考别人面积相似的?无论哪种,似乎都并不是太靠谱。
我现在希望获得一个合理的,并且能够最大程度的反映面积与房价关系的规律。于是我调查了周边与我房型类似的一些房子,获得一组数据。这组数据中包含了大大小小房子的面积与价格,如果我能从这组数据中找出面积与价格的规律,那么我就可以得出房子的价格。
对规律的寻找很简单,拟合出一条直线,让它“穿过”所有的点,并且与各个点的距离尽可能的小。
通过这条直线,我获得了一个能够最佳反映房价与面积规律的规律。这条直线同时也是一个下式所表明的函数:
房价 = 面积 * a + b
上述中的a、b都是直线的参数。获得这些参数以后,我就可以计算出房子的价格。
假设a = 0.75,b = 50,则房价 = 100 * 0.75 + 50 = 125万。这个结果与我前面所列的100万,120万,140万都不一样。由于这条直线综合考虑了大部分的情况,因此从“统计”意义上来说,这是一个最合理的预测。
在求解过程中透露出了两个信息:
1.房价模型是根据拟合的函数类型决定的。如果是直线,那么拟合出的就是直线方程。如果是其他类型的线,例如抛物线,那么拟合出的就是抛物线方程。机器学习有众多算法,一些强力算法可以拟合出复杂的非线性模型,用来反映一些不是直线所能表达的情况。
2.如果我的数据越多,我的模型就越能够考虑到越多的情况,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。
通过我拟合直线的过程,我们可以对机器学习过程做一个完整的回顾。首先,我们需要在计算机中存储历史的数据。接着,我们将这些 数据通过机器学习算法进行处理,这个过程在机器学习中叫做“训练”,处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为“模型”。对新数据 的预测过程在机器学习中叫做“预测”。“训练”与“预测”是机器学习的两个过程,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导 “预测”。
让我们把机器学习的过程与人类对历史经验归纳的过程做个比对。
图5 机器学习与人类思考的类比
人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。
机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。
这也可以联想到人类为什么要学习历史,历史实际上是人类过往经验的总结。有句话说得很好,“历史往往不一样,但历史总是惊人的相似”。通过学习历史,我们从历史中归纳出人生与国家的规律,从而指导我们的下一步工作,这是具有莫大价值的。当代一些人忽视了历史的本来价值,而是把其作为一种宣扬功绩的手段,这其实是对历史真实价值的一种误用。
3.机器学习的范围
上文虽然说明了机器学习是什么,但是并没有给出机器学习的范围。
其实,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,自然语言处理等领域有着很深的联系。
从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。
在这节对机器学习这些相关领域的介绍有助于我们理清机器学习的应用场景与研究范围,更好的理解后面的算法与应用层次。
下图是机器学习所牵扯的一些相关范围的学科与研究领域。
图6 机器学习与相关学科
模式识别=机器学习。两者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面,同时在过去的10年间,它们都有了长足的发展”。
数据挖掘=机器学习+数据库。这几年数据挖掘的概念实在是太耳熟能详。几乎等同于炒作。但凡说数据挖掘都会吹嘘数据挖掘如何如何,例如从数据中挖出金子,以及将废弃的数据转化为价值等等。但是,我尽管可能会挖出金子,但我也可能挖的是“石头”啊。这个说法的意思是,数据挖掘仅仅是一种思考方式,告诉我们应该尝试从数据中挖掘出知识,但不是每个数据都能挖掘出金子的,所以不要神话它。一个系统绝对不会因为上了一个数据挖掘模块就变得无所不能(这是IBM最喜欢吹嘘的),恰恰相反,一个拥有数据挖掘思维的人员才是关键,而且他还必须对数据有深刻的认识,这样才可能从数据中导出模式指引业务的改善。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。
统计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。因为机器学习中的大多数方法来自统计学,甚至可以认为,统计学的发展促进机器学习的繁荣昌盛。例如著名的支持向量机算法,就是源自统计学科。但是在某种程度上两者是有分别的,这个分别在于:统计学习者重点关注的是统计模型的发展与优化,偏数学,而机器学习者更关注的是能够解决问题,偏实践,因此机器学习研究者会重点研究学习算法在计算机上执行的效率与准确性的提升。
计算机视觉
计算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。
语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。
自然语言处理
自然语言处理=文本处理+机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。
可以看出机器学习在众多领域的外延和应用。机器学习技术的发展促使了很多智能领域的进步,改善着我们的生活。
4.机器学习的方法
通过上节的介绍我们知晓了机器学习的大致范围,那么机器学习里面究竟有多少经典的算法呢?在这个部分我会简要介绍一下机器学习中的经典代表方法。这部分介绍的重点是这些方法内涵的思想,数学与实践细节不会在这讨论。
1、回归算法
在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。
线性回归就是我们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。
计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。从严格意义上来说,由于后文中的神经网络和推荐算法中都有线性回归的因子,因此梯度下降法在后面的算法实现中也有应用。
逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广告等等。
实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,则这封邮件就是垃圾邮件,或者肿瘤是否是恶性的等等。从直观上来说,逻辑回归是画出了一条分类线,见下图。
图7 逻辑回归的直观解释
假设我们有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色可以被称作数据的“标签”。同时每个数据包括两个“特征”:患者的年龄与肿瘤的大小。我们将这两个特征与标签映射到这个二维空间上,形成了我上图的数据。
当我有一个绿色的点时,我该判断这个肿瘤是恶性的还是良性的呢?根据红蓝点我们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出现在分类线的左侧,因此我们判断它的标签应该是红色,也就是说属于恶性肿瘤。
逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。
2、神经网络
神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。
神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。BP算法的发明人之一是前面介绍的机器学习大牛Geoffrey Hinton(图1中的中间者)。
具体说来,神经网络的学习机理是什么?简单来说,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。
图8 Hubel-Wiesel试验与大脑视觉机理
比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每个折线再继续被分解为两条直线,每条直线再被分解为黑白两个面。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。
让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是&#8221;神经网络&#8221;。
图9 神经网络的逻辑架构
在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫做LeNet,是一个基于多个隐层构建的神经网络。通过LeNet可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。
图10 LeNet的效果展示
右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都已经是线的细节了。LeNet的发明人就是前文介绍过的机器学习的大牛Yann LeCun(图1右者)。
进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。
3、SVM(支持向量机)
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。
支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。
例如下图所示:
图11 支持向量机图例
我们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,但是通过“核”可以将二维空间映射到三维空间,然后使用一个线性平面就可以达成类似效果。也就是说,二维平面划分出的非线性分类界线可以等价于三维平面的线性分类界线。于是,我们可以通过在三维空间中进行简单的线性划分就可以达到在二维平面中的非线性划分效果。
图12 三维空间的切割
支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证明,即将数据从低维映射到高维不会带来最后计算复杂性的提升。于是,通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。
4、聚类算法
前面的算法中的一个显著特征就是我的训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的代表就是聚类算法。
让我们还是拿一个二维的数据来说,某一个数据包含两个特征。我希望通过聚类算法,给他们中不同的种类打上标签,我该怎么做呢?简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。
聚类算法中最典型的代表就是K-Means算法。
5、降维算法
降维算法也是一种无监督学习算法,其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。通过降维算法我们就可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。于是我们将数据从高维降低到低维,不仅利于表示,同时在计算上也能带来加速。
刚才说的降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(因为信息冗余了)。如果肉眼不可视,或者没有冗余的特征,降维算法也能工作,不过这样会带来一些信息的损失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然有很多的好处。
降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成分分析算法)。
6、推荐算法
推荐算法是目前业界非常火的一种算法,在电商界,如亚马逊,天猫,京东等得到了广泛的运用。推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。推荐算法有两个主要的类别:
一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品,这样推荐的好处是关联程度较大,但是由于每个物品都需要贴标签,因此工作量较大。
另一类是基于用户相似度的推荐,则是将与目标用户兴趣相同的其他用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,经过算法分析,发现另一个与小A近似的用户小D购买了物品E,于是将物品E推荐给小A。
两类推荐都有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。
除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。
下面做一个总结,按照训练的数据有无标签,可以将上面算法分为监督学习算法和无监督学习算法,但推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。
监督学习算法:线性回归,逻辑回归,神经网络,SVM
无监督学习算法:聚类算法,降维算法
特殊算法:推荐算法
除了这些算法以外,有一些算法的名字在机器学习领域中也经常出现。但他们本身并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你可以理解他们为以上算法的子算法,用于大幅度提高训练过程。其中的代表有:梯度下降法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在线型回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。
5.机器学习的应用&#8211;大数据
说完机器学习的方法,下面要谈一谈机器学习的应用了。无疑,在2010年以前,机器学习的应用在某些特定领域发挥了巨大的作用,如车牌识别,网络攻击防范,手写字符识别等等。但是,从2010年以后,随着大数据概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎可以认为大数据是机器学习应用的最佳场景。
譬如,但凡你能找到的介绍大数据魔力的文章,都会说大数据如何准确准确预测到了某些事。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发。
图13 Google成功预测H1N1
百度预测2014年世界杯,从淘汰赛到决赛全部预测正确。
图14 百度世界杯成功预测了所有比赛结果
这些实在太神奇了,那么究竟是什么原因导致大数据具有这些魔力的呢?简单来说,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。
大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越 可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。 大数据与机器学习两者是互相促进,相依相存的关系。
机器学习与大数据紧密联系。但是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算,内存数据库,多维分析等等多种技术。单从分析方法来看,大数据也包含以下四种分析方法:
1.大数据,小分析:即领域的OLAP分析思路,也就是多维分析思想。
2.大数据,大分析:这个代表的就是数据挖掘与机器学习分析法。
3.流式分析:这个主要指的是事件驱动架构。
4.查询分析:经典代表是NoSQL数据库。
也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具有很大的魔力,在某种场合下是大数据价值最好的说明。但这并不代表机器学习是大数据下的唯一的分析方法。
机器学习与大数据的结合产生了巨大的价值。基于机器学习技术的发展,数据能够“预测”。对人类而言,积累的经验越丰富,阅历也广泛,对未来的判断越准确。例如常说的“经验丰富”的人比“初出茅庐”的小伙子更有工作上的优势,就在于经验丰富的人获得的规律比他人更准确。而在机器学习领域,根据著名的一个实验,有效的证实了机器学习界一个理论:即机器学习模型的数据越多,机器学习的预测的效率就越好。见下图:
图15 机器学习准确率与数据的关系
通过这张图可以看出,各种不同算法在输入的数据量达到一定级数后,都有相近的高准确度。于是诞生了机器学习界的名言:成功的机器学习应用不是拥有最好的算法,而是拥有最多的数据!
在大数据的时代,有好多优势促使机器学习能够应用更广泛。例如随着物联网和移动设备的发展,我们拥有的数据越来越多,种类也包括图片、文本、视频等非结构化数据,这使得机器学习模型可以获得越来越多的数据。同时大数据技术中的分布式计算Map-Reduce使得机器学习的速度越来越快,可以更方便的使用。种种优势使得在大数据时代,机器学习的优势可以得到最佳的发挥。
6.机器学习的子类&#8211;深度学习
近来,机器学习的发展产生了一个新的方向,即“深度学习”。
虽然深度学习这四字听起来颇为高大上,但其理念却非常简单,就是传统的神经网络发展到了多隐藏层的情况。
在上文介绍过,自从90年代以后,神经网络已经消寂了一段时间。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。由于神经网络在隐藏层扩大到两个以上,其训
本站所有文章全部来源于互联网,版权归属于原作者。本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(),我们收到后立即调整或删除。
  3月25日,智信资产管理研究院在北京举办第34期智信资管咖啡交流会。本次活动以“智能投研开启高效精准投资之匙”为主题,邀请众多国内金融、互联网、科技行业嘉宾参加。天弘基金智能投资部总经理助理刘硕凌受邀出席,并发表《人工智能技术在投资中的应用》的演讲。刘硕凌表示,人工智能能够有效帮助基金经理提升投研效率和能力,将会是未来公募基金发展的重要方向。  近年来,随着人工智能技术的不断发展,各行业对人工...
新年伊始,人类和人工智能的对垒就已经迎来了高潮,首先是谷歌DeepMind的Master在线上围棋比赛中连胜60场,再次证明了机器在围棋这项运动上已经超越了人类。几天之后,《最强大脑》第四季首期就又迎来了一次重磅的人机大战,由植入百度大脑的小度机器人迎战世界记忆大师王峰。本次比赛的主题是跨年领的人脸识别,人类选手识别对了两张照片,小度则答对了全部三张照片,甚至包括一张双胞胎照片,从而战胜了人类大师...
邀请好友送豪礼!185元红包等你拿!基金商城1折起购  人工智能正处于一个历史性的发展阶段。Uber本周一宣布收购一家位于纽约的人工智能初创公司GEometricIntelligence,以保证其在无人驾驶技术中不掉队。这也体现了科技公司在人工智能方面的争夺继续升温。一年亏损20亿美元?不在乎!  GeometricIntelligence的15名研发人员将加入Uber位于旧金山的人工智能实验室团...
作者|杨冬越郭景瞻1背景前段时间京东公开了面向第二个十二年的战略规划,表示京东将全面走向技术化,大力发展人工智能和机器人自动化技术,将过去传统方式构筑的优势全面升级。京东Y事业部顺势成立,该事业部将以服务泛零售为核心,着重智能供应能力的打造,核心使命是利用人工智能技术来驱动零售革新。1.1
京东的供应链京东一直致力于通过互联网电商建立需求侧与供给侧的精准、高效匹配,供应链管理是零售联调中的核心能...
未来是近在眼前,还是遥不可及?很多媒体文章都认为人类已邻近真正AI(人工智能),我们相信在未来,生活中到处都是机器人、无人机和自动驾驶车辆,人类并不需要花太多时间控制这些机器。但是现实中AI真的会像我们想象的那样发展迅速吗?像ElonMusk和Ste未来是近在眼前,还是遥不可及?很多媒体文章都认为人类已邻近真正AI(人工智能),我们相信在未来,生活中到处都是机器人、无人机和自动驾驶车辆,人类并不需...
本文来自微信公众号:曲高和众(m15875),虎嗅获授权发表。文/孟庆祥很显然,人工智能成了信息服务行业的焦点,几乎所有的业内公司都集结兵力准备在人工智能领域大干一场。人工智能不是新鲜玩意,从1955年提出已经好几十年了。大家之所以现在才重兵集结这个区域,是因为貌似看到了这个大东西即将产生根本性的技术突破走向实用化的曙光。说一个可能被大家忽略的常识,就是这个世界的需求非常多,比如提高寿命,比如可以...
如果你用Siri或GoogleNow只是为了测试苹果或谷歌的人工智能水平,那就太无聊了,在WP平台上享誉已久的Cortana,在即将发布的Windows10平台上,不仅在你无聊的时候供消遣,还比自家Office更进一步,除了能用Uber打车,还能拿优惠券和打网络电话了。根据微软官方博客的消息,今天在Build2015上,微软宣布目前已经整合Windows10Cortana的合作伙伴,包括Viber...
    7月2日,微软(亚洲)互联网工程院宣布,第二代智能聊天机器人&微软小冰&正式上线,用户可以登录微软小冰官网进行&领养&操作。  那么,微软小冰是个什么样的产品呢?首先,微软小冰是一款智能聊天机器人。除了智能聊天之外,还兼具提醒、天气、星座、交通指南、餐饮点评等实用功能。其次,微软小冰集成了微软在大数据、自然语义分析、机器学习和深度神经网络方面...
从陆谷孙翻译智慧看人工智能的“正道”:很可惜,这两种进路都无法忠实地落实关于“飞跃与抵达”的翻译经验谈。对于“符号进路”的机器翻译路径而言,需要编程员预先对大量双语语料对应关系及各个词汇自身的语义框架进行建模。[摘要]凡事都是&说易行难&。现有机器翻译的主流思路,分为&符号进路&与&统计进路&两种。很可惜,这两种进路都无法忠实...
我们对于验证码都不陌生,reCAPTCHA就是一种Google的验证码,用来区分人和机器。reCAPTCHA就是以两个混杂的单词的形式出现,然后要求你辨认出这两个词才可以访问相应的页面。Google在开始扫描全世界的书籍后的第3年发布了这个reCAPTCHA,他们利用尖端的 OCR(光学字符识别)技术来完成这一壮举,然而这并不完美。因为在这自动转录过程中会有许多小错误,但是如果要通过人工手段来全部...}

我要回帖

更多关于 数据规律分析 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信