数据科学家倾向于用探索数据的方式来看待周围的世界。把大量散乱的数据变成结构化的可供分析的数据,还要找出丰富的数据源,整合其他可能不完整的数 据源,并清理成结果数据集。新的竞争环境中,挑战不断地变化,新数据不断地流入,数据科学家需要帮助决策者穿梭于各种分析,从临时数据分析到持续的数据交 互分析。当他们有所发现,便交流他们的发现,建议新的业务方向。他们很有创造力的展示视觉化的信息,也让找到的模式清晰而有说服力。把蕴含在数据中的规律 建议给Boss,从而影响产品,流程和决策。
作者 | 彭鸿涛 张宗耀 聂磊 来源 | 大数据DT 一、数据科学家的工作模式与组织结构 数据科学家需要与业务专家一起工作才能发挥最大价值。实际工作中两种角色如何配合,取决于是采用业务驱动的模式还是数据驱动的模式。 数据驱动还是业务驱动 业务驱动的特点是业务人员主导数据分析需求的提出、结果的应用,在业务中应用数据洞察;而数据驱动的特点是更看重主动应用数据分析手段,从数据洞察发起业务、改善业务,当然在业务执行时也需要广泛应用数据洞察。在较新的业务领域采用数据驱动比较适合,已有复杂业务则采用业务驱动较好。 然而从自身能力的发展、数据驱动逐渐成为主要的工作模式的情况来看,数据科学家需要思考如何将数据驱动的模式做得更好,并且愿意承担更多责任。所以,除了算法、用法等基本技能,还需要考虑如何改善业务。 下图所示的职责占比只是示意,其实最核心的是由哪种角色来主导,在工作中也未见得业务专家不能主导数据驱动的模式。从业务结果的角度来看,所谓业务驱动和数据驱动只是到达一个既定目标时不同的工作方式而已。在实际的业务中也不会分工非常明确,即不会限定业务人员只能做什么或数据科学家只能做什么,只有相互无缝协作才是最佳的工作模式。 ▲业务专家与数据科学家的两种配合方式 数据科学家团队的组织结构 数据科学家团队的组织结构关系到数据应用的效率、管理的效率、个人的发展等诸多方面,企业在设置这个组织结构时需要认真考虑。每个企业的实际情况不同,可以采用不同的方法。数据科学家的组织结构一般分两种,即分散式结构和集中式结构。 分散式结构是数据科学家属于确定的业务部门,这样的组织结构的好处是其可以紧密地与业务人员合作,将业务问题转换为高效的数据分析任务。 但是其也有不足,一方面数据分析的知识积累是在个人身上,而不是在团队,另外一方面就是因为角色的限制使得业务部门内的数据科学家没有上升空间。业务部门内的数据科学家若要在职业道路上继续前进,要么离开,要么担任其他角色。一旦发生数据科学家的人事变化,这对团队稳定、知识积累等都是不利的。 集中式的数据科学家组织结构就是跨业务条线而成立独立的专门做数据分析的结构。这样的组织结构的好处就是团队相对稳定,给成员提供了不断成长的空间,也避免了知识积累的流失。 但是其也有不足,由于数据科学家脱离业务部门而独立存在,导致团队成员对业务的理解不够深入,模型的产出可能效率低下。业务部门也可能只将其看作支持部门,而不会在实际业务中有太多引入。 企业在构架数据科学家组织架构时,也可采用混合的结构。即使是集中式的组织结构,其汇报的层级也可能不同。没有所谓明确的业界标准的说法,因地制宜的做法才是最实际的。 二、数据科学家的工作方法要点 数据科学家的核心任务之一是通过数据分析手段将数据洞察应用在实际业务中,并能产生有效的结果。数据科学家在实际工作中需要注意以下要点,以确保上述目标的达成。 开始工作以前确保具备成功要件 在开始一件工作前,最好先明确一下业务场景、数据可获得性、数据质量等重要信息。在很多情况下,会出现因数据不支持无法进行细致分析、模型结果很好但是落地应用时没有对应的资源支持、数据分析只是探索没有对应的使用场景等问题。这些因素会严重影响数据分析的价值。 笔者作为顾问给多个客户实施数据分析项目时,就遇到过上述的问题。从客户的角度来讲,其关心的是业务问题的解决,并不会过多细致地考虑实施过程的细节。只有努力地尝试去做,才能发现有些问题会严重阻碍数据分析的进行,这也会影响数据分析的最终效果。 同时输出两种价值 假设要通过数据分析手段改善某业务问题,如构建预测模型筛选高价值、高响应率的客户,即使是在目标非常明确的情况下,数据科学家也要在做的过程中保证两种输出结果。 (1)重要发现 数据分析过程中势必要进行数据提取、数据处理、数据探查等一系列基础工作。在这些基础工作的过程中,往往会隐藏着有巨大业务价值的信息。比如,笔者的团队在给某金融机构构建高端客户的相关模型时发现一些信息,如“大部分客户只持有一类理财产品且在半年内没有交易活动”,这些信息对于后期的营销策略制定至关重要。 所以,数据科学家在实际工作中需保持“业务敏感性”,对于数据背后的业务故事保持好奇心,同时将一些重要的数据发现协同模型结果一并输出,这可以大大提高分析主题的价值。 (2)模型结果 给定分析主题,目标模型结果就可以基本确定,如寻找高价值客户就是模型输出一个名单,风险预警就是给出风险评分以及原因。这是模型输出的最基本形式。 在实际的模型实施应用中,业务人员会经常以挑剔的眼光来看待模型,并且基于模型结果总是有不同的疑惑需要数据科学家来解答。典型的疑惑如“聚类分析模型确实将客户分了几个类别,但是我还是不知道该如何营销这些客户”“社交网络分析模型给出了潜在的高价值客户名单,但这些信息不足以让营销人员开展营销”。 出现这种情况时,一种简单的做法就是和业务人员深入讨论,梳理出他们的关注点,然后将对应的指标从数据库中提取出来,作为模型输入的补充一并交给业务人员。 从本质上来讲,出现业务人员疑惑的原因是“业务人员期待模型输出决策而不是名单”以及团队缺乏将模型输出转换为营销决策的能力。数据科学家也需要具备将模型结果转换为业务决策的能力。 充满想象力地开展工作 算法能做到什么是数学范畴的知识,数据科学家的核心工作就是将业务需求转换为一系列的数据分析实践过程。若将各个算法看作一个个组件,那么用一个算法来解决问题还是用多个算法的组合来解决问题,需要数据科学家的想象力和不断尝试。 笔者的团队曾给某客户构建模型时,其需求是“根据客户持有产品的现状推荐产品,达到交叉销售的目的”。这是一个非常不具体的需求,能做的范围很大,能用的算法工具也很多。 最后我们采用的是构建“客户聚类与产品聚类的交叉分布以及迁移矩阵,并据此来展开不同目的营销”,若向上销售则可推荐同类产品,交叉销售则可推荐不同类的产品。这种做法之前没有实施过,但是结果证明其非常有效,仅在一次营销应用中就带来数十亿的营业额。 按照敏捷的方式来构建模型 数据挖掘过程也可以看作一个项目过程,从项目管理的角度当然可以按照敏捷的方式来进行。数据科学家需要积极主动地汇报分析思路、预期结果、进度等重要信息。时刻与业务人员以及管理人员保持沟通,对需求变化保持开放,将对模型的实际应用会有巨大的帮助。 一般情况下,让一个对数据和业务都不了解的人来构建模型,往往需要数月的时间;但让一个熟悉数据、业务、算法工具的人来建模,则可能只需几天就可以完成。不论哪种程度的人员来建模,都可以按照敏捷的方式来管理建模过程。 笔者与建模方法论CRISP-DM的提出者之一Julian Clinton一起工作过4年时间,在长期的项目实践中我们一直坚持该方法论所倡导的核心要点:紧贴业务、不断探索、以结果为导向、模型在应用后仍需不断调优等。事实证明,这些原则非常有效。CRISP-DM方法论的实施与实施过程中按照敏捷的方式来管理是相辅相成、相得益彰的。 以业务的成果来衡量自己的工作 模型的效果到底如何?数据科学家不应该基于测试集上优异的模型性能指标而洋洋自得,这没有任何意义,顶多代表建模的技巧高超。 模型最终带来的收益是由模型输出、匹配模型输出的业务决策、业务决策实施过程中的资源配置、应用场景的价值大小等综合因素共同决定的。缺少任何一环都会使得模型的价值直线下降。 数据科学家需要积极主动地推进这些环节的相关工作,积极收集模型部署后的监测数据,在“建模—业务决策匹配—业务决策实施—效果监控—模型或决策改进—再部署—再监测”的闭环中积极发挥作用。最终得出的业务结果数据,才是数据科学家真正成就感的源泉。
2020年成为数据科学家需要具备哪些技能?
数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。数据库系统的核心是数据库管理系统。数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
数据分析师的基本素养--论如何成为一名数据科学家 Part 1这里有一些我收集的关于数据处理方面的材料,希望能够对你有所帮助(请注意:我是一名本科生,下面提到的资料仅为个人整理所得,在任何方面都不可视为专家意见)。了解矩阵因式分解学习计算机线性代数相关的课程(这类课程有时也叫做线性代数应用、矩阵计算、数值分析或者矩阵分析等,它既可以属于计算机科学,也可以属于应用数学课程)。矩阵分解算法是许多数据挖掘应用的基础,而在标准的"机器学习"课程中使用的矩阵分解算法通常不具有代表性。面对TB规模的数据时,Matlab等传统工具无法有效地执行数据处理工作,你不可能在大数据上只执行一条eig()语句就可以得出预期的结果。分布式矩阵计算包,例如Apache Mahout[1] 中包含的那些,试图填补这方面的空白,但是,你仍需要理解数值算法/LAPACK/BLAS [2][3][4][5]的工作机制,以便正确使用它们,针对特殊情况进行调整,构建自己的数据处理工具,并将其扩展到商业机器集群中TB级别规模的数据之上[6]。数学课程通常基于本科代数与微积分的基础,因此你应该具有良好的先决条件。
数据库系统的核心是数据库管理系统。数据库系统一般由数据库、数据库管理系(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
数学功底:微积分是严格要掌握的。不一定要掌握多元微积分,但一元微积分是必须要熟练掌握并使用的。另外线性代数一定要精通,特别是矩阵的运算、向量空间、秩等概念。当前机器学习框架中很多计算都需要用到矩阵的乘法、转置或是求逆。虽然很多框架都直接提供了这样的工具,但我们至少要了解内部的原型原理,比如如何高效判断一个矩阵是否存在逆矩阵并如何计算等。数理统计:概率论和各种统计学方法要做到基本掌握,比如贝叶斯概率如何计算?概率分布是怎么回事?虽不要求精通,但对相关背景和术语一定要了解。交互式数据分析框架:这里并不是指SQL或数据库查询,而是像Apache Hive或Apache Kylin这样的分析交互框架。开源社区中有很多这样类似的框架,可以使用传统的数据分析方式对大数据进行数据分析或数据挖掘。笔者有过使用经验的是Hive和Kylin。不过Hive特别是Hive1是基于MapReduce的,性能并非特别出色,而Kylin采用数据立方体的概念结合星型模型,可以做到很低延时的分析速度,况且Kylin是第一个研发团队主力是中国人的Apache孵化项目,因此日益受到广泛的关注。机器学习框架:机器学习当前真是火爆宇宙了,人人都提机器学习和AI,但笔者一直认为机器学习恰似几年前的云计算一样,目前虽然火爆,但没有实际的落地项目,可能还需要几年的时间才能逐渐成熟。不过在现在就开始储备机器学习的知识总是没有坏处的。说到机器学习的框架,大家耳熟能详的有很多种, 信手拈来的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow领衔。笔者当前建议大家选取其中的一个框架进行学习,但以我对这些框架的了解,这些框架大多很方便地封装了各种机器学习算法提供给用户使用,但对于底层算法的了解其实并没有太多可学习之处。因此笔者还是建议可以从机器学习算法的原理来进行学习。
数据库系统的核心是数据库管理系统,它是帮助用户创建,维护和使用数据库的软件系统。数据库的核心是数据,它是存储在计算机存储设备上的,结构化的相关数据集合。
数据库系统的核心是数据模型
数据库系统的核心是数据管理系统,即DBMS。数据库系统简介:数据库系统(Database System),是由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。特点:1、数据的结构化,数据的共享性好,数据的独立性好,数据存储粒度小,数据管理系统,为用户提供了友好的接口。2、数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。3、数据库系统的核心是数据库管理系统。4、数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。数据库系统的核心是数据库管理系统。数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
数据库系统的核心是数据库管理系统。用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。DBMS优点1、控制数据冗余。数据库管理应尽可能地消除了冗余,但是并没有完全消除,而是控制大量数据库固有的冗余。例如,为了表现数据间的关系,数据项的重复一般是必要的,有时为了提高性能也会重复一些数据项。2、保证数据一致性。通过消除或控制冗余,可降低不一致性产生的危险。如果数据项在数据库中只存储了一次,则任何对该值的更新均只需进行一次,而且新的值立即就被所有用户获得。如果数据项不只存储了一次,而且系统意识到这点,系统将可以确保该项的所有拷贝都保持一致。不幸的是,许多DBMS都不能自动确保这种类型的一致性。3、提高数据共享。数据库应该被有权限的用户共享。DBMS的引入使更多的用户可以更方便的共享更多的数据。新的应用程序可以依赖于数据库中已经存在的数据,并且只增加没有存储的数据,而不用重新定义所有的数据需求。
数据库系统的核心是数据库管理系统,它是帮助用户创建,维护和使用数据库的软件系统。数据库的核心是数据,它是存储在计算机存储设备上的,结构化的相关数据集合。
1、数据库的配置、维护2、服务器的配置与维护 3、应用软件的运行与维护 4、功能的扩展数据库运维服务是指:针对用户数据库开展的软件安装、配置优化、备份策略选择及实施、数据恢复、数据迁移、故障排除、预防性巡检等一系列服务。
数据库系统 database systems 由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成:①数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。②数据库管理系统(DBMS)。它是一组能完成描述、管理、维护数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。③数据库管理员(DBA)。④用户和应用程序。对数据库系统的基本要求是:①能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。②冗余数据少,数据共享程度高。③系统的用户接口简单,用户容易掌握,使用方便。④能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。⑤有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。⑥具有可修改性和可扩充性。⑦能够充分描述数据间的内在联系。 数据库管理系统 数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MS SQL Server2000就是一种关系型数据库管理系统。 关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。 关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。 如图1所示,DBMS的特点和功能可以分为三个子系统:设计工具子系统、运行子系统和DBMS引擎。 设计子系统有一个方便数据库及其应用创建的工具集。它典型地包含产生表、窗体、查询和报表的工具。DBMS产品还提供编程语言和对编程语言的接口。 运行子系统处理用设计子系统开发的应用组件。它所包含的运行处理器用来处理窗体和数据库的数据交互,以及回答查询和打印报表等。 DBMS引擎从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。DBMS引擎还涉及事务管理、锁、备份和恢复。数据的结构化,数据的共享性好,数据的独立性好,数据存储粒度小,数据管理系统,为用户提供了友好的接口。 数据库系统的核心和基础,是数据模型,现有的数据库系统均是基于某种数据模型的。 数据库系统的核心是数据库管理系统。 数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。数据库系统的核心是数据模型,因为数据模型是数据库系统的核心和基础。这玩意貌似很多呀