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

简介: 最近一年里,知乎社区有不少朋友邀请我回答关于数据挖掘的问题,其中提问最多的是关于“如何改行做数据挖掘”。我想他们之所以邀请我回答这类问题,不是因为我做数据挖掘做得好,而是好奇我是如何改行做数据挖掘的?说来也巧,我本科是学电子的,研究生是学控制的,而我的职业理想是成为一个“先知”,但我并不知道如何才能实现这一职业理想。

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

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
数据采集 数据可视化 大数据
Python在数据科学中的实际应用:从数据清洗到可视化的全流程解析
Python在数据科学中的实际应用:从数据清洗到可视化的全流程解析
38 1
|
1月前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析的实践指南
在当今数据驱动的世界中,Python已成为数据科学家和分析师的首选语言之一。本文旨在为初学者提供一个实用的指南,通过实际案例介绍如何使用Python进行数据分析。我们将从Python数据分析库的选择开始,逐步深入到数据清洗、处理、可视化,以及基础的数据分析技巧。本文不仅仅是一个技术指南,更是一个实践之旅,带你体验数据分析的魅力,并探索数据背后隐藏的故事。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Python 语言的瑰宝:数据科学中的无限潜能
在当今数字化时代,数据科学的应用已成为推动企业和学术界前进的重要力量。而Python语言,作为一门简洁、灵活且功能强大的编程语言,正日益成为数据科学领域的首选工具。本文将探讨Python语言在数据科学中的广泛应用,从数据分析到机器学习,再到人工智能。
|
8天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
19 1
|
14天前
|
数据采集 机器学习/深度学习 数据可视化
数据科学面试准备:解决Python数据分析常见问答和挑战
【4月更文挑战第12天】本文介绍了Python数据分析面试中常见的问题和挑战,涉及Pandas、NumPy、Matplotlib等库的基础知识,以及数据预处理、探索性分析、可视化、回归分析和分类分析的方法。例如,使用Pandas处理缺失值和异常值,利用Matplotlib和Seaborn进行数据可视化,通过Scikit-learn进行回归和分类模型的构建。
|
17天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
1月前
|
存储 数据挖掘 数据处理
探索数据科学中的Python神器——Pandas库的强大功能
在数据科学领域中,Python语言的Pandas库被广泛应用于数据处理和分析。本文将深入探讨Pandas库的核心功能及其在数据科学中的重要性,帮助读者更好地理解和利用这一强大工具。
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
Python在数据科学中的应用:从入门到精通
【2月更文挑战第12天】 本文旨在探讨Python语言在数据科学领域的广泛应用,从基础语法到高级数据分析和机器学习模型的实现。我们将通过实际案例,展示如何使用Python进行数据处理、分析与可视化,以及如何利用Python的强大库和框架(如Pandas、NumPy、Matplotlib、Scikit-learn等)解决复杂的数据科学问题。此外,文章还将介绍一些最佳实践和技巧,帮助读者更有效地使用Python进行数据科学项目。无论你是数据科学的新手还是希望提升现有技能的专业人士,本文都将为你提供宝贵的资源和启发。
28 3
|
1月前
|
数据采集 数据可视化 数据挖掘
Python在数据科学中的应用
【2月更文挑战第11天】随着数据科学的迅速发展,Python已成为该领域不可或缺的工具之一。本文将从Python在数据科学中的角色出发,探讨其在数据处理、分析及可视化方面的应用。我们将通过实际案例,展示Python如何帮助数据科学家高效地解决问题,从而揭示Python在数据科学中的重要性和其未来的发展潜力。与传统摘要不同,本文旨在通过具体实例,为读者提供一个直观且实用的视角,让读者能够深刻理解Python在数据科学中的应用价值。
20 2
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
探索Python在数据科学中的应用:从数据处理到深度学习
本文全面探讨了Python语言在数据科学领域的关键应用,突破了传统摘要的界限,采用故事化手法引入主题。我们从一个数据科学项目的起点出发,描述了一个数据科学家如何使用Python进行数据收集、清洗、分析、可视化,以及如何应用机器学习和深度学习模型来提取洞见和做出预测。文章不仅阐述了Python在各个环节的具体应用,还介绍了相关的库和工具,旨在为读者提供一个关于Python在数据科学中应用的全景视图。