1.0 了解数据科学项目
什么是数据科学?业界对此定义多有不同,在此引用“维基百科”网站的“数据科学”词条部分内容:
“维基百科”中内容丰富,推荐读者参考。
“数据科学是一门利用数据学习知识的科学,其目标是通过从数据中提取有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库等。”
根据这个定义,“数据科学项目”就应该是“生产数据产品”的工程实践,本书内容就是这个工程实践的一部分。
工程,常被认为“工人”按照“操作手册”执行既定操作。的确有的工程如此,那么数据科学的工程是否也有一份“操作手册”呢?本书作者总结的数据科学项目基本过程如图1-0-1所示。
在解释图1-0-1之前,先要建立如下认识——这些认识都来自实践中的经验教训:
图1-0-1 本书作者总结的数据科学项目过程
●对于任何一个实践中的项目,不要寄希望于“操作手册”,更不要迷信著名专家的“名人名言”。
●不存在“一招鲜吃遍天”,普遍真理是“具体问题具体分析”。
貌似上述认识否定了数据科学项目中的规律。非也!
数据科学项目在实践上没有固定的“操作手册”,但还是要遵循一定章法。这就类似于个人成长发展,每个人的秉性、才智不同,成才道路各有特色,但所有人都遵循着灵长目—人科—人属—智人种生物的普遍生长发育规律。
对于图1-0-1,不同的研究者会有不同的见解,本书作者也仅是根据个人经验给予简述。
1.理解商业问题
这是数据科学项目的开始,参与者必须对相应的业务有所了解,并将业务中用描述性语言表述的问题转为“数据问题”——能够通过某些数据回答的问题。
理解商业问题不同于理解项目需求,前者更强调对项目本质问题的把握。
2.数据收集
“数据收集”与“理解商业问题”两者是互动关系。研究收集数据的方法,也是对商业问题的再度理解。例如,一个能够对学生学习过程进行评价和指导的系统所需要收集的数据包括但不限于学生写在作业本上的数据、学校服务器上的学籍数据、公安系统中学生的家庭和社区相关数据等。随着对此问题的深入研究,需要收集的数据还可能根据需求而变化。
运用技术从数据来源获得的数据通常称为“原始数据”。本章在后续各节中将介绍几种常见的数据收集方法。此外,因为数据源和技术的不同,所得到的原始数据格式、质量也会有很大差异,还可能存在重复、矛盾等。因此,必须处理这些数据。与此相关的技术构成了本书的主体内容。
3.特征工程
特征工程是一个比较广泛的概念,它的起点是得到原始数据之后,终点是进行机器学习或数据分析之前。在这个过程中对数据集所做的操作统称为“特征工程”——这是本书的界定,业界对“特征工程”有多种定义或说明。具体来讲,本书所界定的特征工程包括“数据清理”“特征变换”“特征选择”和“特征抽取”,是后续各章节内容。
4.数据生产
如果说第2、3步得到的是数据“原料”,本步就是用原料进行“生产”的过程,也就是前面关于“数据科学”的定义中提及的“从数据中提取有价值的部分来生产数据产品”的过程,可以比喻为“生产车间”。图1-0-1中的“数据分析”和“机器学习”只不过是目前常用的两条“生产线”。
机器学习是人工智能的基础和重要组成部分。本书所阐述的大多数技术是为机器学习算法而准备的。
5.评估
不论是机器学习,还是数据分析,其结果都要进行评估。根据评估结果,确定是否采用机器学习所获得的模型或数据分析的报告。
在机器学习中,有专门评估模型的算法。
6.部署和应用
作为商业项目,最终都要把产品部署到商业系统中,比如可能作为某个网站系统的一部分。这样才能让研究出来的算法(模型)处理新的数据,并满足商业需求。
在实际项目中,图1-0-1中的各环节不是截然分开、彼此互不相关的,也不是机械地按照单一方向进行的。
●本书阐述的“数据准备和特征工程”,不只是在“数据收集”和“特征工程”环节实施,还可能贯穿整个项目过程。
●各环节之间不仅前后衔接,而且还可能循环往复。例如,在进行“数据收集”时有可能要再次“理解商业问题”,才能确定所收集的数据内容,甚至决定项目是否具有可行性;经“评估”后发现模型不能解决实际问题,有可能要回到“数据收集”才能提升模型效果。
因此,在了解基本流程之后,再回到前面所述的认识,将两者结合,才是数据科学项目的实施原则。