3.11 数据处理应该考虑哪些运营业务因素

说明:本文是《Python数据分析与数据化运营》中的“3.11 数据处理应该考虑哪些运营业务因素”。

-----------------------------下面是正文内容--------------------------

数据处理工作不仅依赖于数据工作者的数据经验,也需要考虑实际的运营业务因素。这种兼顾两种工作逻辑的工作方式会帮助数据工作少走弯路并降低数据项目失败的可能性,还有利于提高数据工作的效率和产出效果,真正让运营理解数据、应用数据并驱动业务。

数据处理时应该考虑的运营业务因素包括固定和突发运营周期、运营需求的有效性、交付时要贴合运营落地场景、专家经验、业务需求的变动因素等。

3.11.1 考虑固定和突发运营周期

运营业务的周期属性主要表现为两个方面:

  • 有计划的周期性:运营业务计划的制定都有明显的周期性规律,运营业务的执行也是如此。这种有计划的周期性规律一般包含不同层次的周期。例如:运营一般都会先做年度计划、季度计划,然后分解到月度计划,月度计划再细化到周度和日度计划。层层递进,步步追踪。
  • 临时或突发周期:除了有规划的运营周期以外,偶然事件的发生也会影响运营业务。例如:由于内部DBA的误操作,导致数据库部分数据被删除,直接影响了公司正常的销售和运营状态。这种情况发生的时间以及产生的影响周期通常都是不固定的。

运营业务的周期性特征对数据的影响在于:

  • 有计划的运营周期在数据的选取和分析过程中非常重要,尤其涉及到对比(环比、同比等),选对具有相同属性的对比周期是形成结论的基础。
  • 有计划的运营周期对于时间序列特征明显的建模影响很大,包括时间序列、时序关联、隐马尔可夫模型等,这些算法和模型都需要数据带有明显的前后序列状态的关联属性。使用这类算法时需要将运营周期的属性与算法和应用属性相匹配。
  • 不同周期下所产生的数据可能有差异,尤其对于高速发展的新型公司尤为如此,不同周期下的数据可能带有明显的线性、指数、二项式以及其他变化特征,甚至可能带有业务因素导致的异常数据点。
  • 运营可能产生突发的数据工作需求,例如针对异常事件的临时性分析,而这些需求很可能由于没有提前针对性的做数据布点、跟踪和采集,而导致数据不完整或根本没有有效数据进行分析。
  • 数据工作的整个过程都需要运营业务参与,而依赖于运营业务参与的时机以及对应的方式和切入点也很重要。例如,在业务正常工作非常繁重甚至无法脱身的情况下,如果需要业务过多的参与数据工作,必然会形成来自于业务端的重重阻力,此时需要更多的数据自动化和程序化的工作模式。

3.11.2 考虑运营需求的有效性

在数据工作项目开始真正前,通常会有多次沟通、反馈、验证和摸底的过程,这些动作的目的是根据业务的需求、数据的实际状态以及数据工作本身的限制来综合考虑运营需求是否有效。数据工作者并不是一定需要承接所有的运营数据需求,可能会对其中的某些需求做拒绝或延迟处理,主要原因如下:

  • 缺少数据:现有数据无法满足运营提出的数据分析需求,典型案例是在应对突发事件时的数据分析需求。
  • 需求不合理:经过验证后,发现运营提出的需求不合理,或无法通过数据得出结论。例如运营要分析客户对于新产品的预期,这种需求除了市场和客户调研外,其他方法基本无法实现,因为预期本身无法通过一定的数据衡量。
  • 条件限制:虽然运营需求合理,但现有服务器、算法、技术、经验等主客观条件无法实现运营需求。例如运营提出要从监控视频中得到整个人在线下店铺内的所有浏览、查看商品和购买商品的轨迹行为,由于缺少相应的技术和经验而无法实现。
  • 资源限制:目前数据工作已经满负荷,无法并行开展更多工作。
  • 低价值需求:运营可以自己实现的基本需求。很多时候运营人员会犯懒,基本的取数、查询、统计和基本分析等工作全部交给数据工作者来实现,对于这些简单且常用的工作内容,由于本身其实属于数据工作的范畴,数据工作者大多都会接收执行。这些工作当然有价值,但是要真正最大化发挥数据工作的价值,绝不能只着眼于这些内容,这些基本工作可以通过一定的可视化报表、自动邮件、数据工作文化的培养等方式逐步实现从数据工作中剥离,或逐步降低内容比例。这样才能有更多资源深入到潜在规律、预测性和探索性的知识发现中。

对于符合以上特征的数据场景,数据工作者需要慎重考虑是否还要继续投入资源,对于需要拒绝的一定要及时提出,以免导致数据工作项目的失败以及数据工作价值度的降低。

3.11.3 考虑交付时要贴合运营落地场景

数据处理虽然只是中间过程,并没有到达数据分析、建模、部署及应用等后期阶段,但该阶段的很多工作都会直接影响后期交付和运营落地效果。典型因素包括:

维持原有指标

后期应用时需要原始业务指标(变量)以便于业务理解和应用。如果有类似的需求,那么在数据处理(比如降维)时就不能采用数据转换的方法,要根据实际情况通过多种方式选择维度或不进行降维。

更容易理解的算法模型

某些运营人员可能比较“认真”,会非常关注算法模型的实现过程,如果采用无法解释具体过程的算法(例如神经网络的实现过程)或难以理解的算法(例如SVM中的超平面),那么这类运营人员通常会怀疑数据工作的有效性和正确性。此时,选择更加容易理解的算法模型(例如决策树、线性回归等)则比算法准确度、时效性更重要。在数据处理过程中,要针对这些特定容易理解的模型做针对性的数据处理。

数据生产和应用环境

如果数据工作项目的结果不是分析、挖掘报告,需要通过程序化的方式执行,那么交付的一般都是代码或脚本。在数据处理程序发布上线时,应该尽量使用生产和应用中既有的模块、环境、库、语言、版本等,减少额外部署、开发和维护的工作量。

3.11.4 不要忽视业务专家经验

本书中多次提到了业务专家经验的重要作用。业务专家经验在数据处理工作中的重要作用体现在以下两个方面。

数据工作方向

数据工作方向指的是整个数据工作项目需要做什么、产出是什么、中间的过程应该向那个方向考虑等,这些内容侧重于“是什么”。这些内容直接产生于业务专家经验,主要影响的数据工作内容包括:

  • 数据项目工作目标和需求
  • 数据探索和摸底方向
  • 数据交付物的形式和规格

数据工作逻辑

数据工作逻辑指的是有关数据工作本身方面,业务能够为数据工作提供的价值参考和工作建议,这些内容侧重于“怎么做”。主要影响的数据工作环节包括:

  • 总体数据周期、规则、条件等的选取
  • 数据抽样规则,尤其涉及到分层、整群抽样
  • 多数据的整合、匹配和关联关系
  • 不同数据源和数据间的清洗、转换逻辑
  • 重复值、异常值和缺失值的处理逻辑
  • 数据离散化的方法选择和区间定义
  • 根据变量重要性进行数据变量的选取和降维
  • 数据算法和模型选择
  • 数据模型的调整、评估和优化

提示 如果只擅长于运营,这是一个纯业务属性价值点;如果只擅长于数据,这是一个纯数据属性价值点。只有同时具备业务+数据的双重属性,才能成就真正的“分析师”。成功的数据工作一定是数据+运营两条腿走路!

3.11.5 考虑业务需求的变动因素

业务需求的变动主要来源于业务环境的变动或业务需求本身的变动。前者是由于客观环境的变化导致业务需求不得不变动,后者则是产生于运营业务本身的主观环境。

在数据工作项目中,变化的需求会影响整个数据工作的所有环节,如果业务需求频繁变动,会给数据工作带有极大困扰甚至可能直接导致数据工作项目的失败。因此,数据处理一定要将业务需求的变动因素考虑其中,涉及到客观环境的变化无法预测,而业务主观思想上的变化在很多情况下可以提前做好准备:

充分、有效的沟通

沟通是建立持久、稳定关系的重要方法,在开始数据项目的工作之前,数据工作者千万不要嫌麻烦而略过这一步。多次、面对面的邀请相关的直接需求业务人员、业务领导、数据提供者(通常是对应业务口的数据管理员)进行正式会议的沟通是必要的。同时,为了避免会议沟通上口头表达和理解的误差,一定要每次会议之后都有完成的会议纪要并需要相应人员确认作为备案,并抄送多方领导来让各方都重视并慎重考虑沟通和落实内容。

更完整、更原始的数据集

在数据集的选择和处理时,涵盖更多时间、维度、来源等方面的数据,并放宽甚至去掉业务给出的数据过滤条件,这样可以减少重复取数工作并尽量降低对后续所有处理流程的二次调整影响;对于涉及到数据归约的,尽量优先选择直接选取而非转换的形式,这样可以最大限度的满足业务对原始数据维度和指标的需求。

可理解性强、规则清晰的算法和模型

在保证一定的模型准确度的情况下,优先选择可理解性强、规则清晰的算法和模型,以降低业务无法理解而导致的反工或无法落地。

模块化工作方法

在大多数程序式数据工作中,我们会发现很多工作内容的基本功能模块是可以复用的,这意味着假如我们第一次需要开发10个模块;第二次可能只需要额外开发5个,其中5个模块复用第一次开发的即可;第三次可能只需要额外开发3个,以此类推随着项目的增加可复用的功能模块会越来越多。虽然根据不同的场景、数据,同一个模块也会有不同的实现方法、参数等,但这仅仅是对原有模块进行优化和升级,越到后期就越会形成更加通用、完善且具有高复用能力的功能模块。这些功能模块不仅可以用来提高数据项目的工作效率,还能有效应对业务需求的个性化、灵活性的需求变动。

提示 模块化工作方法是笔者倡导的一种有效的工作方式,在Python中,笔者会更多的使用面向函数的编程方法来实现。

建立数据工作流程和机制

无规矩不成方圆。所有的数据工作应该有对应的流程和机制才能保障其正常运行。对于数据工作流程而言,要建立起从数据需求提出到数据落地的完整流程,其中需要包含对于需求变动的时间、频率、方式、范围、影响的规范以及审批和授权制度(一定要经相应人员和领导同意)。这样制度才有可能落地。当然,只有制度还不够,更关键的还要看执行!

3.10 离散化,对运营数据做逻辑分层

说明:本文是《Python数据分析与数据化运营》中的“3.10 离散化,对运营数据做逻辑分层”。

-----------------------------下面是正文内容--------------------------

所谓离散化,就是把无限空间中有限的个体映射到有限的空间中。数据离散化操作大多是针对连续数据进行的,处理之后的数据值域分布将从连续属性变为离散属性,这种属性一般包含2个或2个以上的值域。离散化处理的必要性: 继续阅读3.10 离散化,对运营数据做逻辑分层

3.9 标准化,让运营数据落入相同的范围

说明:本文是《Python数据分析与数据化运营》中的“3.9 标准化,让运营数据落入相同的范围”。

-----------------------------下面是正文内容--------------------------

数据标准化是一个常用的数据预处理操作,目的是将不同规模和量纲的数据经过处理,缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。除了用作模型计算,标准化后的数据还具有了直接计算并生成复合指标的意义,是加权指标的必要步骤。 继续阅读3.9 标准化,让运营数据落入相同的范围

3.8 有关相关性分析的混沌

说明:本文是《Python数据分析与数据化运营》中的“3.8 有关相关性分析的混沌”。

-----------------------------下面是正文内容--------------------------

相关性分析是指对多个具备相关关系的变量进行分析,从而衡量变量间的相关程度或密切程度。相关性可以应用到所有数据的分析过程中,任何事物之间都是存在一定的联系。相关性用R(相关系数)表示,R的取值范围是[-1,1]。 继续阅读3.8 有关相关性分析的混沌

3.7 解决运营数据的共线性问题

说明:本文是《Python数据分析与数据化运营》中的“3.7 解决运营数据的共线性问题”。

-----------------------------下面是正文内容--------------------------

所谓共线性(也称为多重共线性)问题指的是输入的自变量之间存在较高的线性相关度。共线性问题会导致回归模型的稳定性和准确性大大降低,另外,过多无关的维度参与计算也会浪费计算资源和时间。 继续阅读3.7 解决运营数据的共线性问题

3.6 数据化运营要抽样还是全量数据

说明:本文是《Python数据分析与数据化运营》中的“3.6 数据化运营要抽样还是全量数据”。

-----------------------------下面是正文内容--------------------------

抽样是从整体样本中通过一定的方法选择一部分样本,抽样是数据处理的基本步骤之一,也是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。 继续阅读3.6 数据化运营要抽样还是全量数据