本节首先探讨人工智能、机器学习及深度学习的关系脉络,然后明确了数据挖掘与机器学习的概念边界,最后介绍引入目前广泛应用于数据科学领域的Python语言。
1.1.1 从人工智能、机器学习到深度学习
在2016年初,当谷歌DeepMind团队的AlphaGo打败了韩国围棋职业选手李世石时,媒体就用人工智能、机器学习和深度学习这三个术语来描述DeepMind是如何取得胜利的。这三个名词都是AlphaGo大胜李世石的原因中的一部分,但是它们并不相同。
理解三者之间关系的最简便方法就是将它们视觉化为一组同心圆,如下图所示:
人工智能、机器学习、深度学习
由上图可知,最大的部分人工智能,次层是后来兴旺的机器学习,最里层是促使当下人工智能大爆发的深度学习。
人工智能
人工智能是计算机科学的子领域,自从1956年几个计算机科学家在达特茅斯会议上聚集并开辟了人工智能(AI:Artificial Intelligence)这一领域,人工智能就进入了我们的想象,并在实验研究中进行着酝酿。人工智能的先驱者们的梦想是借由新兴计算机构建具有人类智力特征的复杂机器。这就是“通用人工智能(General AI)”的概念,即拥有人类的所有感觉、所有的理智,像人类一样思考的神奇机器。目前科研领域还没有达到能实现通用人工智能的水平,当今引领人工智能蓬勃发展的是“狭义人工智能(Narrow AI)”,指的是能够将特殊任务处理水平与人类一样好,或者更好的技术。譬如图像识别、语音识别、机器翻译等,其准确率已超过人类极限水平。
机器学习
机器学习(Machine Learning)是人工智能的分支,专门研究计算机怎样模拟或实现人类的学习行为,机器学习是运用算法来分析数据、从中学习、测定或预测现实世界的某些事务,赋予它如何执行任务的能力。数据是载体,智能是目标,而机器学习是从数据通往智能的技术途径。例如,基于历史数据,监督分类算法就被用来分类潜在客户或贷款意向。
通俗的说,机器学习就是从数据中挖掘出有价值的信息。数据本身是无意识的,为了自动呈现出有价值的信息。首先要给数据一个抽象的表示,接着基于表示进行建模,然后估计模型参数,也就是计算。此外,还需要设计有效的算法应对不同的任务。
根据不同的任务,应用的算法也不同:朴素贝叶斯、支持向量机、神经网络、关联规则、决策树、逻辑回归或多种方法的结合。这些都是数据科学的分支,当这些算法被用于自动化的时候,就像在自动飞行或无人驾驶汽车中,它被称为人工智能。
深度学习
深度学习(Deep Learning)是一种机器学习的方法,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。
1.1.2 数据挖掘与机器学习
数据挖掘和机器学习同属于数据科学领域,数据挖掘是指从大量数据中挖掘出未知且有价值的信息和知识的过程,其步骤包括数据收集、清洗、整合以及有效性检测、数据可视化等,最后利用机器学习算法来抽取有用知识的过程,前期处理数据的工作比较多。可以说,数据挖掘的范畴涵盖了机器学习,机器学习的工作核心更侧重于技术和各种精妙的算法。
1.1.3 数据科学家的定义
数据科学家是一些能综合运用编程和统计技术的专业人士,其致力于通过各种方式将数据发挥更大作用。数据科学家一般分为两类:
- 分析型
主要像统计学家那样,进行静态的数据分析,并能清洗数据。他们用不同办法处理较大的数据集,可视化,非常熟悉某个领域,能很好解读数据等等;分析型数据科学家能通过写代码来处理数据,但不像工程师那样专业。他们更擅长实验设计,预测、建模、统计推断和其他统计工作。结论会更直白,而不是像P值和置信区间那么学术化。提炼出简洁有力的结论,并传达给其他人,是数据科学家常常被低估而异常重要的职责之一。 - 搭建型
除了统计知识之外,搭建型数据科学家编程很强,关注于用在线生成数据搭建模型,并和其他系统连接,实现自动更新结果、或自动和用户互动,比如推荐系统(产品、认识的人、广告、电影、查询结果等)。
1.1.4Python语言
Python简介
机器学习是数据科学的一部分,学好这门课程一方面需要深厚的理论基础知识,另一方面也要掌握有效的机器学习程序开发工具。Python是一种面向对象、解释型、动态数据类型的高级程序语言,在机器学习领域具有其他高级语言无可比拟的优势,主要体现在:
- Python完全免费,众多开源的科学计算库都提供了Python的调用接口,用户可以在任何计算机上免费安装Python及其绝大多数扩展库;
- Python具有简洁的语法规则,使得学习程序更容易,它能让用户编写出更易读、易维护的代码;
- Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。
Python科学计算库
Python中有很多应用于科学计算、数据可视化、机器学习的扩展库,例如NumPy、SciPy、SymPy、Matplotlib、Boken、OpenCV、Scikit-Learn、Caffe等,涉及的领域包括数值计算、符号计算、二维图表、三维数据可视化、数据分析建模等。丰富的第三方扩展库会使初学者眼花缭乱,因无从下手而感觉软件体系庞杂。学习和掌握Python的有效途径是随着机器学习实践进程的推进,依据目标,分阶段、有针对的进行。机器学习与一般数据分析过程相同,主要包括数据组织、数据预处理、数据可视化、数据分析建模以及模型验证等阶段。所以,Python的学习内容也应遵循这个过程循序渐进地扩展和深入。
学习Python的第一步是了解Python基本语法、软件整体架构和运行环境等。
网友评论