【学习笔记】数据分析流程

###本文是一篇学习笔记,整理至微信公众号【 一个数据人的自留地】

数据分析师能力要求

总体上差别不大,可以归纳总结如下几点:

数据分析工具,必须要掌握1-2种。通常来说,会要求你会Excel/Python/R/SPSS/SAS等,有编程基础的推荐大家掌握Python和R,没有编程基础的可以考虑熟练掌握Excel和SPSS,现在使用比较多的还是Excel和Python。
统计学知识,需要掌握,数据分析工作,不管是对于那些没有统计学背景的还是有统计学背景的,统计学这门知识,必须要掌握,需掌握均值、方差、标准差、概率、假设检验置信区间等基本概念。
数据挖掘知识,这个对于一些高级的数据分析项目,会要求建模的工作,会需要用到建模的知识,需要做预测。但并不是每个学数据分析的,都一定要掌握。当然掌握了,你的分析方法更多,思路会更开阔,在职场上也是一个加分项。
结果输出,数据结果的呈现,与业务部门的沟通,都需要对数据分析的结果进行输出,这里用的最多的工具Excel、PPT或者更高级的一些可视化工具,比如Tableau等。
业务/思维,做数据分析不光是要掌握那些工具类的知识,这些是远远不够的,比工具更重要的是你对你所属领域的业务理解程度,以及对商业数据的敏感度,以及你的数据分析的项目经验等。

数据分析的流程

6个环节:业务理解、数据理解、数据准备、建立模型、模型评估和结果应用

业务理解。理解业务背景,评估业务需求。数据分析的本质是服务于业务需求,如果没有业务理解、缺乏业务指导、会导致分析无法落地。
数据理解。需要掌握我们能够获取的数据源,并且正确的评估和保障原始数据源的质量。
数据准备。运营统计方法对数据进行探索,掌握数据内部的规律,并对数据进行转换,以备所需。
建立模型。综合考虑业务需求,选择正确的方法、工具、建立最合适的模型。
模型评估。对模型的精度、准确性以及效率和通用性进行评估。
结果应用。将模型应用于业务实践中,对模型应用效果及时跟踪和反馈,以便改进模型。
在这里插入图片描述

一、业务理解

什么是业务思维?
工具只是数据分析的手段,数据分析的核心是业务理解。
要想做好数据分析,就得花时间培养自己的业务思维,理解数据背后的业务背景,正确的评估业务的分析需求,才能做出既符合业务逻辑,又有价值的数据分析结果。
什么是业务思维?要懂业务思维,需要明白两个关键点:
一是要把业务需求作为数据分析的起点,二是始终要关注业务环境和逻辑。

如果你拥有业务思维,你就应该关注业务需求关注的点是什么
也就是说业务想要通过数据实现什么需求,再去对着数据来源、口径、清洗、分析做一系列工作。

总之一句话:拿到数据先分析结构和业务需求,明确目标,然后再进行分析,不要为了分析而分析

业务需求分析的流程

这里以阿里巴巴的业务需求分析的流程为例,通常流程是这样的:

  1. 业务需求的收集。数据分析的起点是业务需求的收集,业务需求来源通常是来自业务方或者是业务线对口的分析师。
  2. 评估业务需求的优先级。业务需求优先级评估主要是从建模技术实现的难度评估、产出物对业务支持的价值评估、产出物对分析团队的影响力提升评估等3个方面考虑。
  3. 项目组的成立及前期摸底。明确课题组的人员构成及前期任务。
  4. 向业务方提交正式的项目计划书

在这里插入图片描述

1、业务需求的收集

俗话说的好,好的开头是成功的一半,一个好的数据分析项目,一定是在最开始的业务需求提炼中就能够有效聚焦业务需求,并且把业务需求适合转化成数据分析课题。

所谓有效聚焦业务需求,就是说提炼、收集的业务需求应该是定义清楚的、符合业务场景的、并且能够反映当前业务的难点、瓶颈和前景,如果能够有效解决,将会对业务发展产生正面的推动和促进作用的。

所谓适合转化成数据分析课题,是指在商业实践中,有的分析需求是伪命题,比如明显不符合逻辑的业务假设,而有的分析需求则不具备分析条件,比如数据积累不足或者说脏数据太多等。

在业务需求的收集阶段,需要注意以下几个点:

明确该环节的责任人。各业务线或业务板块的接口数据分析师就是该环节的责任人,他要对业务中潜在的数据分析挖掘需求的收集、提炼和整理工作负责。
明确数据分析需求的来源。需求的来源通常有两个,一个是业务方或者管理层提出的分析需求,另外一个是由数据分析师基于自己的观察和判断提出的分析需求。业务方提出的需求,后期的分析讨论和落地应用实践中也常常容易得到大力支持和配合,应用落地相对简单。数据分析师提出的潜在需求,相对业务方提出的分析需求常常更容易转化成数据分析课题,更有复合性,既兼顾业务,也兼顾了分析技术。
要求业务方提交正式的需求申请书。分析需求的提出,不管是业务方提出的,还是数据分析师自己提出的,都需要业务方正式的提交一份需求申请书,通过邮件的方式提交给数据分析部门,同时抄送给各方的业务主管。只有经够业务主观同意的业务分析需求,才可以保证随后的业务分析展开和落地应用环节能得到业务方的有效支持和参与。

2、评估业务需求的优先级

分析需求评估是业务分析中的核心环节,很大程度上决定了分析课题的最终商业成果和商业价值。通常是,由数据分析部门牵头成立一个需求评估小组,以负责需求评估的具体实施。需求评估小组负责对数据分析部门所接受的所有业务分析需求进行评估并做决定,同时监督立项的各分析课题的有效展开(或分析过程监控),在面对分析困境时要能给出明确具体的解决方法。

在业务需求评估阶段,需要注意以下几个点:

具体评估的方向,注意是从建模或者分析技术的实现难度进行把控、不同分析思路以及方法的罗列、潜在课题产出物对业务应用部门的商业支持价值、潜在课题产出物对数据分析部门的影响力提升等,以此来评估业务需求的合理性和优先顺序,并初步过滤一些不合理的需求,诸如伪命题、数据积累不足等。而对于合理的需求分析,除了排出优先级顺序之外,还要按照投入产出比、资源等情况而定。
在需求评估会上,提交需求的业务方或者接口分析师要负责准备比较详细的背景介绍材料,以回答评估小组的提问。如果有必要,分析师可以考虑在开会之前和业务方详细沟通并达成共识。开会的过程中,记录并在会后回复重要的但在会上无法回答的关键数据、关键背景、关键业务逻辑。

3、项目组的成立及前期摸底

此步骤重点在于成立具体的分析课题组,明确课题组的人员构成及前期任务。

具体的注意点包含如下:
具体课题组人员的构成。课题组的组长通常是经验丰富的数据分析师担任,每个课题组至少包含一名来自业务方的业务代表。这是因为一方面可以保证数据分析挖掘过程自始至终有业务方参与,并且能够得到业务方的理解和支持。另外一方面也可以在分析挖掘过程中,随时听取业务方的意见和建议,随时得到业务方的有效支持和响应。
前期摸底,主要是与业务方沟通、讨论的过程中,抽取粗略的背景数据,以便透彻理解业务背景和需求逻辑,为准备定制课题计划书提供重要的理论和数据参考依据。

4、向业务方提交正式项目计划书

最终,我们需要给业务方提交一份正式的课题(项目)计划书,具体需要注意的地方包含以下几点:

经过前期的摸底,将需求提交给评估小组,获得认可后,就要通过邮件给业务需求方提交正式的项目加户数。计划书包括具体课题组的人员组成、时间节点、人员分工、产出物预估等。
对于比较复杂的课题,有一定技术难度的课题,其项目计划书通常是需要事先提交给评估小组的负责专家进行认可的,之后才能正式提交给业务方。之所以增加这个环节,主要是确保产出的风险,降低不确定性。

数据的价值,始终是要建立在具体的业务场景之上,尤其是依赖于那些带有强烈不确定性的业务场景,不确定性越高,数据需求越强,创造的价值潜力就越大。

二、数据理解

数据理解是从原始数据集开始熟悉和了解数据,并初步探索数据知识,或者挖掘有深层含义的数据子集来形成对隐藏信息的假设。
数据理解可以理解为数据的可行性研究,即通过先期的基本数据认识来确定当前数据条件是否可以满足数据挖掘所需条件并初步判断如何实现的问题。

数据理解阶段,需要确定源数据标准如数据来源、范围、状态或者时间性特征,数据集基本特征如数据类型、最大值、最小值、均值、标准差、偏度、唯一性、有效记录数及数据分布规律等。接下来,给大家展示七种方法来帮助大家理解数据。

  • 简单地查看前几行数据
  • 审查数据的行数和列数
  • 审查字段的数据类型
  • 查看分类字段的分布情况
  • 通过描述统计分析数据
  • 理解各字段的相关性
  • 审查各字段的分布状况
  • 观察数据的有效手段:Matplotlib包提供的可视化图表来展示数据

关于数据理解的常规过程,在上一篇博客中有涉及:案例学习|Python实现某医院药品销售分析

以Python的pandas操作为例,一般在导入数据集后可以进行下列操作:
df.head(n) #显示数据集前n行,大致了解数据项目情况
df.info() #检查数据基本情况(缺失值、数据类型、行列情况等)
df.shape #行列信息
df.dtypes #数据类型 df[“object”].dtypes可以单独查看某列的数据类型
df.groupby(by=[‘object’]) #查看分类字段的分布情况
df.describe() #描述统计分析,展示八方面的信息:数据记录数、平均值、标准方差、最小值、下四分位数、中位数、上四分位数、最大值
df.corr(method=‘pearson’) #理解各字段的相关性

各字段的相关性是指数据的两个字段是否互相影响,以及这种影响是什么方式的等。通用的计算两个字段的相关性的方法是皮尔逊相关系数,皮尔逊相关系数是度量两个变量间相关程度的方法。它是一个介于1和-1之间的值,其中,1表示变量完全正相关,0表示无关,-1表示完全负相关。在数据挖掘建模过程中,当数据的关联性比较高时,有些算法(如线性回归、逻辑回归等)的性能会降低。所以在开始训练算法前,查看一下字段的关联性是一个很好的方法。当数据字段的相关性比较高时,应该考虑对特征进行降维处理。

df.skew() #审查各字段的分布情况,计算所有数据属性的高斯分布偏离情况

通过分析数据的高斯分布情况来确认数据的偏离情况高斯分布又叫正态分布,是在数据、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响。高斯分布的曲线呈钟形,两头低,中间高,左右对称。在高斯分布图中,y轴两点之间的面积是发生的概率。很多算法都会假定数据遵循高斯分布,先计算数据的高斯偏离状况,再根据偏离状况准备数据。

在审查数据的时候,还需要记住以下几个小技巧。
**审查数据:**通常描述性分析给出的数据对数据的理解是不充分的,应该多观察和思考数据的特点,找到数据的内在联系和对解决问题有什么益处。
**问为什么:**审查数据后多问几个“为什么”,如你是如何看到和为什么看到这些数据的特殊性的,这些数据和问题如何关联到一起的,以及这些数据和我们的问题有什么关系等。
**写下想法:**写下自己通过观察得到的想法,将观察到的数据各维度的关联关系和我们的想法都记录下来。例如,数据代表什么,将采用什么样的技术继续挖掘数据等。写下的这些想法将会给新的尝试带来极大的参考价值。

发布了50 篇原创文章 · 获赞 14 · 访问量 7949

猜你喜欢

转载自blog.csdn.net/yeyuanxiaoxin/article/details/104682041