版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1350038
数据科学:如何从实际的生活中提取数据,然后利用计算机的运算能力和模型算法从这些数据中找出一些有价值的内容,为商业决策提供支持。
1、数据科学在工程上的挑战可以大致分为3类:特征提取、矩阵运算和分布式机器学习。
(1)一个建模项目的成功很大程度上依赖于建模前期的特征提取。它包含数据清洗、数据整合、变量归一化等。经过处理后,原本搅作一团的原始数据将被转换为能被模型使用的特征。这些工作需要大量的自动化程序来处理,特别是面向大数据时,因为这些大数据无法靠“人眼”来检查。在一个典型的建模项目中,这部分花费的时间远远大于选择和编写模型算法的时间。
(2)对于一个复杂的数学模型,计算机通常使用类似于梯度下降法的最优化算法来估计它的模型参数。这个过程需要大量的循环,才可以使参数到达收敛值的附近。因为即使面对的是很小的数据集,复杂的模型也需要很长时间才能得到正确的参数估计。而且模型在结构上越复杂,需要估计的参数也就越多。对大量的模型参数同时做更新,在数学上对应着矩阵运算。但传统的CPU架构并不擅长做这样的计算,这导致模型训练需要耗费大量的时间。为了提高模型的训练速度,需要将对应的矩阵运算(模型参数的估算过程)移植到GPU或者特制的计算芯片上,比如TPU
(3) 近年来,随着分布式系统的流行和普及,存储海量数据成为了业界的标配。为了能在海量数据上使用复杂模型,需要将原本在一台机器上运行的模型算法改写到多台机器上并行运行,这也是分布式机器学习的核心内容。
2、模型搭建的挑战
数据科学对模型搭建的要求也可以总结为3点:模型预测效果好、模型参数是稳定且“正确”的、模型结果容易解释。
(1)模型的预测效果好,这是数据科学成功的关键。而一个模型的预测效果取决于它的假设是否被满足。从数学上来看,任何一个模型除去假设部分,它的其他推导过程都是严谨的数学演算,是无懈可击的。因此模型假设是唯一的薄弱环节。当问题场景或数据满足模型假设时,模型的效果一定不会差,反之预测效果就无法保证了。但在实际生存中,针对一个具体的问题,几乎是不可能找到一个模型,它的假设被百分百满足。这时就需要避重就轻,通过特征提取等手段,尽量避免违反那些对结果影响很大的假设。这就是为什么说“所有模型都是错的,但是,其中有一些是有用的”。
(2)除了被用来对未知的数据做预测外,模型另一个重要的功能就是对已有的数据做分析,比如哪个变量对结果的影响最大或者某个变量对结果到底是正向影响还是负向影响等。这些分析结果在很大程度上依赖于模型参数的估计值,后者的准确与否直接决定分析结果的质量。从数学的角度来看,模型参数的估计值其实是一个随机变量,具体的值取决于训练模型时使用的数据。于是我们要求这些估计是“正确”的:围绕参数真实值上下波动(也就是它们的期望等于参数真实值)。我们还要求这些估计值是稳定的:波动的幅度不能太大(也就是它们的方差比较小)。这样就可以把参数估计值的“不可靠性”控制在可接受的范围内。
(3)数据科学家将模型搭建好了,并不是一个数据科学项目的终点。为了充分发挥数据的价值,需要将模型结果应用到实际的生产中,参与这个过程的不仅有懂模型的数据科学家,还有更多非技术的业务人员。而后者往往是使用模型的主力,比如根据反欺诈系统的结果,对可疑用户进行人工审核,又或者向用户解释为什么他的车险比别人贵。为了帮助他们更好地理解模型结果,需要将复杂深奥的模型翻译成直观的普通语言。这要求模型是能被解释的,而且是容易被解释的。