Python函数式编程(第2版)
上QQ阅读APP看书,第一时间看更新

1.4 EDA

本书后续章节的函数式编程示例大多来自EDA领域,该领域包含很多处理复杂数据集的算法和技术,函数式编程往往能很好地连接起问题领域和解决方案。

虽然每个人有自己的行事风格,但处理EDA领域的问题通常可以划分成下面几个阶段。

准备数据:主要是抽取和变换源应用中的数据。例如解析原始数据格式,对数据执行某种程度的清洗(比如移除不可用数据和异常数据等),这是函数式编程擅长的领域。

数据探测:对数据进行初始画像,通常使用一些基本的统计函数来完成,这也是函数式编程擅长的领域。用专业术语讲,该阶段我们关注数据的单变量和双变量统计特征,实际上就是数据的描述性统计特征值,包括平均值、中位数、众数等。数据探测还可能涉及数据可视化,但本书不探讨这个主题,因为它不怎么采用函数式编程。如果你感兴趣,可以尝试一些工具包,例如SciPy。访问如下网址,可获取有关SciPy工作原理和使用方法的更多信息。

https://www.packtpub.com/big-data-and-business-intelligence/learning-scipy-numerical-and-scientific-computing

https://www.packtpub.com/big-data-and-business-intelligence/learning-python-data-visualization

数据建模与机器学习:主要解决如何从已有模型中提取新数据,但本书不涉及,因为从数学角度看有些模型十分复杂,讨论这些问题无助于理解函数式编程。

评估与比较:当存在多个可用模型时,就需要针对当前数据评估哪个模型更适合。此过程主要涉及计算模型常用的一些描述型统计特征值,函数式设计技术能有所帮助。

EDA的目标是创建模型为应用决策提供依据。很多情况下,一个模型可能就是一个简单的函数。使用函数式编程方式,便于将已有模型应用于新数据,生成业务人员可以理解的结果。