《Python数据科学实践指南》一第0章 发现、出发

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 最近一年里,知乎社区有不少朋友邀请我回答关于数据挖掘的问题,其中提问最多的是关于“如何改行做数据挖掘”。我想他们之所以邀请我回答这类问题,不是因为我做数据挖掘做得好,而是好奇我是如何改行做数据挖掘的?说来也巧,我本科是学电子的,研究生是学控制的,而我的职业理想是成为一个“先知”,但我并不知道如何才能实现这一职业理想。

本节书摘来自华章出版社《Python数据科学实践指南》一书中的第0章,第0.1节,纪路 著,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第0章

发现、出发

最近一年里,知乎社区有不少朋友邀请我回答关于数据挖掘的问题,其中提问最多的是关于“如何改行做数据挖掘”。我想他们之所以邀请我回答这类问题,不是因为我做数据挖掘做得好,而是好奇我是如何改行做数据挖掘的?说来也巧,我本科是学电子的,研究生是学控制的,而我的职业理想是成为一个“先知”,但我并不知道如何才能实现这一职业理想。自公元632年人类最后一位先知默罕默德去世之后,将近1400年没人做先知了,既没有人可以指导我,也没有可以效仿的对象。2011年到2013年发生了一系列事件,包括IBM的沃森在“危险边缘”节目中击败了人类选手、Google Brain某些成果的展示、美国统计学家Nate Silver对于总统大选的预测等,这些事件都有一个共同点,那就是让“数据科学”从学术研究蜕变为实际的应用。这也让我意识到也许我可以做得更好—通过“数据科学”建造一个“先知”,虽然直到现在我还没有实现这个目标,不过我愿意把这一路积累的经验拿出来与大家分享,希望这些东西能够帮助各位读者实现自己的目标,或者找到自己的目标。现在,就让我们出发吧!

0.1 何谓数据科学

在家用计算机普及之前,数学、逻辑学、哲学及自然科学研究的目的都是为了追求完美的理论证明,或者是提供某种确定性的规则,用以解释某种自然现象,或者为某些技术提供理论依据。那个时候人类产生数据的能力和收集数据的能力还很有限,或许公司的经营账目和计算导弹发射弹道的演算纸就属于数据最集中的地方了。在那个年代,这些数据分析和处理的工作大都是由人工完成的,最多也只会借助某些由机械或电子构成的计算装置罢了。在互联网兴起之后,人类将现实世界中的很多信息以数据的形式存储到网络空间中,比如生活中发生的一段故事,或者旅行中家人的照片,这些数据记录了人类的行为和社会的发展,甚至包括了自然环境的变化。当今,大量的、各种各样的数据快速产生,并存储在互联网中,而这些数据自然而然地构成了一个人造的环境,称为数据界(data nature)。通过对数据界中数据的研究,我们不仅可以了解数据本身的种类、状态、属性及变化形式和规律,还能从中洞悉人类的某些行为,了解人类的某些社会属性。并且这些研究方法还能扩展到其他依赖数据的学科中,比如气象科学、地震科学、金融学、基因科学,等等。在可以预见的未来,我相信,不仅在互联网行业中会有数据科学家的身影,在各行各业中,只要与计算机打交道,我们就不得不为已经产生和将要产生的数据做好充分的准备。所以,我认为在这个数字化的时代,不同的专业领域,都需要从大量的数据中寻找到一系列的理论和实践,这就是数据科学。

0.1.1 海量的数据与科学的方法

“如何才能成功?”无数成功学方面的书本和布道者都没法给出一个方程或流程图来向所有人解释这一过程。最多只能根据统计学(或者是臆想)列举出一些可能的必要条件,比如努力、机遇、贵人或仅仅只是运气好。我们能否对人类的行为做一个精确的建模?太难了,比如,不同的人对于成功的定义不同,有的人认为挣钱是成功,有的人认为出名是成功。再比如就算大家都认为成为企业家可以算作某种意义上的成功,但是企业的种类又各有不同,有的人是在电商领域成功的,有的人是在金融行业成功的,他们的成功经历也各不相同。
事实上,关于“成功”的变量我可以列举无数个,但即使穷尽了所有可能的变量,也还会遇到数据缺失的问题—一个人成功之前的数据又该如何准确地记录?这个世界有60亿人,如果每个人出生时就携带一个电子记录仪,那么就可以记录这个人生活中发生的所有事情。这有可能么?可能,不仅是可能的,而且我们现在就在做类似的事情,智能手机正源源不断地收集人类的数据并且存储到网络中,我们购物的数据、兴趣的数据、人口统计学的数据等都将用作描述我们每一个人的“数字化身”,这是存在于网络中的我们。并且随着智能硬件、物联网、工业4.0的推进,整个现实生活中的人类社会在网络中都会有一份“副本”。为了处理这些数据,并且从中找到对我们有价值的结果,需要更先进的技术与方法,其中将会涉及数据的收集、转换、存储、可视化、分析与解释等内容,这将会是一项非常有价值的课题。

0.1.2 数据科学并不是新概念

在过去的几年中,大数据、人工智能、数据挖掘等词汇被媒体炒得热火朝天,一方面我乐于见到我所从事的工作受到人们的关注,另一方面我也发现越来越多的人开始疑惑。就像本书开篇中所提到的那样,我每天都会收到来自不同工作领域的人(有时候是记者或化工专业的从业者,有时候是程序员或数学系的学生,有时是一些在实际工作中遇到困难的工程师)的提问,有的是希望能澄清一些概念,有的是问如何入门,有的是希望我针对他遇到的麻烦提一些建议。我很乐意帮助他们,顺便抱怨一下某些不负责任的媒体,是它们把大数据吹得天花乱坠,把各种神秘的力量都赋予数据科学,好像数据科学家就是新时代的先知一样,能够预测未来,改变人类的命运。而且媒体给公众传递的信息是这样的:大数据是上个月才出现的,Google在上周才提出了深度学习方法,一举解决了人工智能难题。我担心在这样冒进的社会氛围下,这些被扭曲的报道掩盖了事实的真相,那些对这个领域感兴趣的人会被吓跑,这颗科学史上的新星会陨落(在我收到过的提问里,甚至有人问:大数据的浪潮是不是过去了,现在学还来得及么?)。如果要追溯数据科学的起源,可以从1974年在美国和瑞典同时出版的《计算机方法的简明调查》一书中看到,作者彼得·诺尔对数据科学下过这样的定义“数据科学是处理数据的科学,一旦数据与其所代表的事物的关系被建立起来,就能为其他领域与科学提供借鉴”。
在“大数据”出现以前,统计学家觉得他们所做的就是数据科学,他们会通过分析一些数据来为公司或政府提供一些决策上的帮助。比如,大型上市公司的财报,或者每一次美国大选之前所做的民意调查就属于此类范畴。当然,不能认为互联网时代的数据科学是新瓶装旧酒,经历了这么多年的沉淀和积累,加上广泛的需求,数据科学发展出了一套与之相适应的理论和方法。我也希望能帮助更多的人了解数据科学,促进数据科学的发展。

0.1.3 数据科学是一个系统工程

现代工业界喜欢谈生态和闭环,其实数据科学也要贯穿数据的整个生命周期。下面将数据的生命周期简单地划分为如下几个阶段。
数据采集
数据清洗
数据处理
数据查询与可视化
数据采集传统的手段主要来自于经营数据和网络爬虫采集的数据。现在还包含一些“数据化”的过程,2013年一篇题为“The Rise of Big Data”(大数据的崛起)的文章中提到了“数据化”的概念,即数据化是一种流程,可以将生活中的方方面面转化为数据。各种手机上的传感器,智能穿戴等设备采集数据的过程都属于数据化。
数据清洗主要负责处理数据中的噪声或缺失数据。由于填写表单时的疏忽,或者是爬虫程序的故障,再或者是传感器失灵等原因,总是会产生一些我们意料之外的数据,这些数据可能不符合某些格式的要求,或者会缺失部分数据,需要通过数据清洗来剔除或修正这些数据。如果数据量巨大,这就需要我们有处理海量数据的能力。
数据处理可以使用统计学的方法或机器学习的方法从数据中发现我们想要的价值,通常所说的数据挖掘就是在这一步中进行的。之所以这里没有使用“数据挖掘”这个词,是因为有些时候,在某些项目中仅仅使用简单的统计方法就可以得出很有价值的结论,并没有使用数据挖掘的专门技法。而且,与普通人的直觉相反,数据挖掘结果的价值往往是通过与业务的紧密结合才能体现出来的,胡乱套用算法往往得不出任何有价值的东西。比如,通过历史房产中介的销售数据(包括房屋的价格、面积、层数、每层住户数等信息)来为新的楼盘定价、预测目标客户群体就是两个不同任务,前者通常只需要简单统计(实际上我们过去一直就在这么做)即可,而后者可能就要使用分类预测算法了。
数据查询与数据可视化这两项是为了将处理过后的数据呈现给需要的人。有的时候是需要索引巨量的数据,比如搜索引擎。有的时候是规律性的结果需要以图表的形式呈现,比如一些信息图(尽管目前大多数信息图都是人工统计的数据),或者在处理之前对大数据集进行探索。
上面列举的几个阶段,每一个都面临着巨大的挑战,虽然工业界有一些解决方案,但离成熟还远得很。并且在面对不同的公司、不同的开发人员、不同的业务需求时,要将这几个阶段有机地整合起来更是难上加难。在其中起到核心作用的人就称为“数据科学家”。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据处理
从基础到进阶:探索Python在数据科学中的应用
【10月更文挑战第18天】从基础到进阶:探索Python在数据科学中的应用
41 1
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
Python 数据分析:从零开始构建你的数据科学项目
【10月更文挑战第9天】Python 数据分析:从零开始构建你的数据科学项目
56 2
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
探索Python的奥秘:数据科学中的利器
本文将深入探讨Python编程语言在数据科学领域的强大应用。通过简洁易懂的语言,我们将解析Python的核心概念、流行库以及在实际项目中的应用,帮助您理解为何Python成为数据科学家的首选工具。
59 0
|
14天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
15天前
|
机器学习/深度学习 数据可视化 数据处理
Python数据科学:从基础到实战
Python数据科学:从基础到实战
25 1
|
25天前
|
机器学习/深度学习 数据可视化 数据处理
Python在数据科学中的应用###
本文探讨了Python语言在数据科学领域的广泛应用及其重要性。通过分析Python的简洁语法、强大的库支持和跨平台特性,阐述了为何Python成为数据科学家的首选工具。文章还介绍了Python在数据处理、分析和可视化方面的具体应用实例,展示了其在提升工作效率和推动科学研究方面的巨大潜力。最后,讨论了未来Python在数据科学领域的发展趋势和挑战。 ###
|
28天前
|
机器学习/深度学习 分布式计算 数据可视化
Python在数据科学中的应用与挑战
本文探讨了Python编程语言在数据科学领域的广泛应用及其面临的主要挑战。Python因其简洁的语法、强大的库支持和活跃的社区,已成为数据科学家的首选工具。然而,随着数据量的激增和复杂性的增加,Python也面临着性能瓶颈、内存管理等问题。本文将通过具体案例分析,展示Python在数据处理、分析和可视化方面的优势,同时讨论如何克服其在大规模数据处理中的局限性,为读者提供实用的解决方案和优化建议。
|
27天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
28 1
|
1月前
|
JSON 数据可视化 API
玩转数据科学:Python实战分析天气预报变动趋势
【10月更文挑战第1天】随着气候变化对日常生活的影响日益显著,理解和预测天气模式变得越来越重要。本文将引导您如何使用Python来抓取和分析天气预报数据,从而揭示天气变化的趋势。我们将介绍从获取公开气象API的数据到清洗、处理以及可视化整个过程的技术方法。
197 2
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
探索Python在数据科学中的应用
这篇文章深入探讨了Python编程语言在数据科学领域的强大应用。从数据处理、分析到可视化,再到机器学习和深度学习,Python因其丰富的库和框架而成为数据科学家的首选工具。文章不仅介绍了Python的基本语法和数据结构,还详细讨论了如何使用Pandas进行数据清洗和预处理,以及NumPy和SciPy在数值计算中的重要性。此外,文章还涵盖了使用Matplotlib和Seaborn进行数据可视化的技巧,以及Scikit-learn和TensorFlow在构建预测模型中的应用。通过综合运用这些工具,数据科学家能够更有效地分析大量复杂的数据集,从而洞察趋势、模式和关联性,支持决策制定和策略优化。
52 2
下一篇
无影云桌面