分享

Spark 高级分析:第一章第1节 数据科学的挑战

feilong 2017-9-1 10:00:41 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 5326
本帖最后由 feilong 于 2017-9-1 17:58 编辑
问题导读

1.实验室中的分析和工厂的分析的区别是什么?
2.数据在分析前需要做哪些预处理?
3.数据科学是如何进行迭代的?





       一些残酷的事实常常在数据科学实践,宣传这些真理成为Cloudera的数据科学团队的一大作用。对于一个试图使复杂的分析在巨大数据上取得成功的系统,它需要了解这些事实,或者至少不与这些事实冲突。

       首先,进行成功分析的绝大多数工作都是在预处理数据中进行的。数据是凌乱的,清洗,加工,聚合,降噪,和许多其他的动词都是做任何有用的事情的先决条件。尤其是大型数据集,因为它们不适合由人直接检查,因此需要计算方法,甚至去发现需要哪些预处理步骤。即使在优化模型性能的时候,典型的数据管道需要花费更多的时间来进行特征工程和决策,而不是筛选和编写算法。

       例如,当构建一个模型试图检测网站上的欺诈性购买时,数据科学家必须从各种潜在的特性中选择:用户需要填写的任何字段、IP位置信息、登录时间、用户浏览站点时单击日志。在转化为适合机器学习算法的向量时每个特征面临自己的挑战。一个系统需要支持更灵活的转换,而不是把二维数组变成一个数学模型。

       第二,迭代是数据科学的一个基本部分。建模和分析通常需要对同一数据进行多次传递。这其中的一个方面在于机器学习算法和统计方法。流行的优化算法,如随机梯度下降和期望最大化涉及重复扫描他们的输入,以达到收敛。迭代在数据科学家自己的工作流中也很重要。当最初调查并试图熟悉数据时,通常查询的结果通知下一个应该运行的查询。当建立模型时,数据科学家不会试图在一次尝试中实现它。选择正确的特征,选择合适的算法,运行正确的显著性检验,并找到合适的超参数都需要试验。每次访问磁盘时需要从磁盘读取相同数据集的框架会增加延迟,从而减慢开发过程并限制尝试的数量。

      第三,当一个性能良好的模型被建立时,任务还没有结束。如果数据科学是将数据变为对非数据科学家有用的,通过模型存储为一个列表在数据科学家的计算机文本文件回归权重的挑战还没有真正完成这个目标。数据推荐引擎和实时欺诈检测系统的使用,最终导致数据应用。在这些模型中,模型成为生产服务的一部分,可能需要周期性地甚至实时地进行重建。

      在这些情况下,区分实验室中的分析和工厂的分析是有帮助的。在实验室数据中,科学家从事探索性分析。他们试图了解他们正在处理的数据的性质。他们设想、检验未成熟的理论。他们实验不同种类的特性和辅助源,他们可以用这些来增强它。他们使用了大量的算法,希望一两个能生效。在工厂中,在构建数据应用程序时,数据科学家从事业务分析。他们将模型包装成可以左右实际决策的服务。他们跟踪他们的模型随着时间的推移的性能变化,着迷于他们如何能做出小的调整而挤出精度的一个百分点。他们关心服务等级协议和正常运行时间。从历史上看,探索性分析通常发生在语言如R,当谈到建立的生产应用,数据管道全部用Java或C + +重写。

      当然,每个人都可以节省时间,如果在原模型的代码可以在实际使用的应用程序使用,但语言如R速度慢并且缺乏与大多数生产基础设施栈的整合,而java和C++缺乏探索性分析工具。他们缺乏REPL(阅读评价打印循环)数据交互环境,需要大量的代码来表达简单的变换。一个使建模容易但也适合于生产系统的框架是一个巨大的胜利。

已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条