本文介绍的全部内容,来自于我参与学习的Udacity商业数据分析纳米学位,感兴趣的朋友可以试试,课程质量很高,受益匪浅!
一. 分析框架
我们在使用数据分析解决商业问题时,使用了一种被称为“跨行业数据挖掘标准流程(CRISP-DM)”的问题解决框架,这套分析框架最初是为数据挖掘问题服务的,但它对各种各样的商业问题也有很好的效果。
“一种数据挖掘过程模型,描述了数据挖掘专家用来解决问题的常用方法……是业内数据挖掘工程师使用的主要方法” —— 维基百科
CRISP-DM通过以下步骤来系统地解决问题:
- 业务理解 Business Issue Understanding
- 数据理解 Data Understanding
- 数据准备 Data Preparation
- 分析/建模 Analysis/Modeling
- 模型评估 Validation
- 模型发布/可视化 Presentation/Visualization
下面我们将沿着这个步骤深入理解CRISP-DM分析框架。
1.1 业务理解
解决问题的第一步,一定是对业务问题本身的理解。业务理解要求我们从业务角度了解项目目标和要求,然后转化为数据挖掘问题的定义,最后拟定达成业务目标的初步方案。能够触发我们进行思考的,一定是一些问题,这里不妨先提出一些问题来帮助我们理解业务:
- 需要做出哪些决策?(What DECISION needs to be made)
- 需要获得哪些信息,才能做出这些决策?(What INFORMATION is needed to inform that DECISION)
- 什么类型的分析能够获取这些决策所需的信息?(What type of ANALYSIS will provide the INFORMATION to inform that DECISION)
我们来看个例子,一家公共事业公司需要多少电力资源来供给明天24小时电力使用?
首先,需要做出的决策是如何供应所需的电力。那么就需要预测是否有足够的电力供应,还是说需要从市场上购买电力。所以这里的关键信息就是要知道明天每个小时需要多少电力。这个信息是未知的,因此需要预测。所以我们需要一个预测性的分析来帮助我们获得做决策时所需的数据。
1.2 数据理解
解决问题的第二步,是要知道我们所需的数据是什么,现在可用的数据是什么,这个非常重要。
“数据理解阶段从数据收集活动开始,然后借由一些活动来熟悉数据、检测数据质量问题、对数据进行初步理解,或探索数据中比较有趣的数据子集,进而形成对潜在信息的假设。” —— 维基百科
数据理解的步骤包括:
- 需要什么数据?
- 有什么数据可用?
- 数据的重要特征是什么?
对数据的深刻理解,对于确保正确的分析非常重要。
1.3 数据准备
理解业务问题并理解数据,有助于为分析准备数据。数据很少能够被直接使用,所以需要进行一些准备。
“数据准备阶段涵盖了从原始粗糙数据中构建最终数据集(将作为建模工具的分析对象)的全部工作。数据准备工作有可能被实施多次,而且其实施顺序并不是预先规定好的。这一阶段的任务主要包括:制表、记录、数据变量的选择和转换,以及为适应建模工具而进行的数据清理等等。” —— 维基百科
数据准备一般包括以下一个或多个操作:
- 收集:收集数据时,你可能需要从组织内的多个来源收集数据。
- 清理:你使用的数据集可能有一些问题需要在分析之前解决。这可能包括数据不正确或丢失。
- 格式化:你可能需要通过更改日期字段的显示方式,重命名字段,甚至旋转数据来格式化数据,类似于使用数据透视表。
- 混合:你可能希望将数据与其他数据集进行混合或组合,以增加其他变量,类似于在 Excel 中使用 VLOOKUP 函数。
- 数据抽样:最后,你可能需要对数据集进行取样,并使用更易于管理的记录数。
1.4 分析与建模
数据准备好后,下一步是进行分析和建模。我们会在后面详细介绍如何通过方法图来选择最符合当前场景的分析和建模方法。在这一阶段,最好直观地画出你的分析流程。概述你分析中的步骤,找出每一步需要的东西,用以获得最终所需数据。
“在这一阶段,你要选择和应用各种各样的建模方法,并将模型的参数校准为最佳值。通常情况下,同一种数据挖掘问题类型有多种适用的方法。一些建模方法对数据形式有具体的要求。因此,往往需要返回数据准备阶段。” —— 维基百科
重要步骤:
- 确定用什么方法来解决问题
- 确定有助于解决问题的重要因素或变量
- 构建解决问题的模型
- 运行模型并移至模型评估阶段
1.5 模型评估
有很多统计值可以用来确定我们解决方案的质量。如果评估下来效果不佳,我们可能要返回到分析建模那个步骤去,增加一些新数据指标,或者使用一种新的方法。要构建一个有信心的预测模型,需要经历一个反复迭代的过程。不要想着把所有的数据扔进一个模型,然后就能得到一个好结果。最好的模型,一定是通过有条理的分析创建的。某些情况下,可能还要回退好几步,甚至重启整个问题解决过程,修改一些假设和决策。
“在项目的这一阶段,你已经有一个或多个,从数据分析角度看,具有较高质量的模型。在进行模型的最终部署之前,务必要更全面地评估模型,并检查构建模型所执行的步骤,确保其能正确实现业务目标。一个关键目标是确定是否存在一些尚未充分考虑的重要业务问题。在此阶段结束时,应对数据挖掘结果的使用做出决定。” —— 维基百科
重要步骤:
- 观察模型上的关键结果
- 确保结果在业务问题的情境中有意义
- 确定是否继续下面的步骤还是返回上一阶段
- 必要时重复多次
1.6 模型发布和可视化
经过彻底的分析,将结果有效传达给决策者很重要。走到这一步就意味着我们的成果要对外展示了。我们要根据受众和分析本身来确定展示的形式。注意,不是光展示就够了。最好的方式是讲述有关满足决策者需求的数据故事。特别是对于更复杂的问题,要带着观众走一遍用来分析的问题解决流程。阐明你在此过程中做出的决策和假设。对复杂的数据而言,数据可视化有助于识别数据的趋势。另外,给出引用的数据源也是非常重要的。最后,你可以通过衡量分析是否支持了需要做出的决定,来判断其是否成功。
“创建好模型并不意味着项目结束。即使模型的目的是提高对数据的理解,所获得的理解仍然需要以一种对客户有用的方式被组织和呈现。根据需求的不同,部署阶段可以简单到只是生成一份报告,也可以非常复杂,像实现可重复的数据存储(例如分段分配 segment allocation)或者数据挖掘过程。在许多情况下,往往是客户而非数据分析师执行部署步骤。即使由分析师部署了模型,客户也必须了解需要执行的操作,以便实际利用已构建的模型。” —— 维基百科
注意事项:
- 根据分析,确定呈现见解的最佳方式
- 根据观众,确定呈现见解的最佳方式
- 确保共享的信息不要过量
- 使用结果向观众讲述故事
- 对于更复杂的分析,你可能需要向观众演示分析问题解决过程
- 始终注明使用的数据源出处
- 确保你的分析支持需要做出的决策
二. 选择分析方法
问题解决框架有助于系统地解决商业问题,但是它无法帮助我们了解具体该使用哪种方法。方法图有助于我们决定应当使用哪种方法来解决一个商业问题,可将其与问题解决框架共同使用。要确定具体的分析方法,我们要用另一个工具:方法图(Methodology Map)。
从方法图的顶部开始,先确认该问题是否需要预测一个结果。如果是预测问题,就用左边的方法;如果是非预测问题,则使用右边的数据分析方法。
2.1 非预测性商业问题
非预测性分析可划分成四种类型:地理空间(Geospatial)、细分(Segmentation)、聚合(Aggregation)以及描述性(Descriptive)。
2.1.1 地理空间分析(Geospatial Analysis)
这种类型的分析使用基于地理位置的数据来推导结论。例子有:通过地理区域识别客户,计算店铺之间的距离以及根据客户位置创建交易区域。
2.1.2 细分分析(Segmentation Analysis)
细分是将数据分组的过程。分组可以是简单的,比如购买不同东西的客户,也可以是复杂的,比如根据客户的人口特征统计来识别相似的店铺。
2.1.3 聚合分析(Aggregation Analysis)
此方法用于计算跨组或跨维度的数据,在数据分析中很常用。举例来说,你可能想要某个销售员的月度销售汇总,将其每个月的销售额相加即可。然后,你可能需要跨维度进行汇总,比如各销售领域的月度销售汇总。聚合通常用于报告,以达到划分和区别信息的作用,有助于管理层制定决策和观察表现。
2.1.4 描述性分析(Descriptive Analysis)
描述性统计可提供一个数据样本的简单概括。比如说计算一所学校申请者的平均 GPA,或者计算一个职业棒球员的击球平均水平。在我们的电力供应案例中,我们可以使用描述性统计来计算每小时、每天或某一天的平均温度。一些常用的描述性统计包括平均值、中位数、众数、标准方差和四分位差。
2.2 预测性商业问题
对于预测性问题,第一步是调查现有的数据是否足以解决问题。如果现有数据足以解决问题,我们将其归类为“数据丰富”;如果现有数据不足以解决问题,我们将其归类为“数据不足”。又一个简单的方法可以判断:你有想要预测的数据吗?如果有,可以选择数据丰富路径;如果没有,则需要选择数据不足的路径。
2.2.1 数据不足
如果没有足够的可用数据来解决问题,就需要设置一个实验来帮助我们得到想要的数据。给出特定商业情景的实验通常指的是 A/B 测试。
2.2.2 数据丰富
假设我们有足够的数据进行分析,下一步就是确定我们要预测的结果是数值型结果还是非数值型结果。
回归模型(Regression Models)。数值型结果是那些用数字表示的结果。预测供电量或者每小时温度都属于数值型结果。预测数值型数据的模型被称为回归模型。
分类模型(Classification Models)。非数值型结果是那些我们要预测案例或客户所属类型的结果,比如客户是按时付款、延期付款还是拖欠贷款。另一个例子是:某电子设备是否会在 1000 个小时内出故障。预测非数值型数据的模型被称为分类模型。
例子1:三轮车制造商的生产部门。在第一个例子中,假设制造商想要利用历史生产数据来预测,在未来六个月内,他们需要生产多少三轮车来满足市场需求。因为制造商想要预测的结果是一个数字,目标变量是数值型。因此,他们需要用数值型或回归模型来解决这个问题。
例子2:Hot & Fresh Pizza 的市场部门。第二个例子中,Hot & Fresh Pizza 想用他们现有店铺的销售数据和这些店铺相应的周边人口统计数据来预测他们位于某地的新店能卖多少披萨。因为 Hot & Fresh Pizza 想要预测的是披萨的数量,目标变量是数值型。因此,他们需要用数值型或回归模型来解决这个问题。
例子3:银行的风险管理部门。第三个例子中,银行想要用他们客户的历史数据来预测一个新客户会拖欠贷款、总是按时还贷还是有时按时还贷。因为银行想要的结论是预测新客户的类型,所以他们需要用非数值型或分类模型来解决这个问题。
2.2.2.1 数值型模型
数值型变量(Numeric Variables)的种类:三种最常见的数值型变量是连续型、基于时间型以及计数型。
连续型(Continuous):连续型变量能包含一个范围内的所有数值。打个比方,你的身高能测量到多个小数位的精度,我们不会以每英寸的间隔成长。
基于时间型(Time-Based):基于时间的数值型变量是预测在某一段时间内会发生什么的一种变量,常常与“预报”有关。
计数型(Count):计数型变量是离散的正整数。它们被称为计数数字是因为被用来分析能够计数的变量。
2.2.2.2 非数值型模型
非数值型变量(Non-Numeric Variables):非数值型变量常常被称为分类(categorical)变量,因为变量的值用离散数字来表现可能的数值和类别。比如电子设备是否会在 1000 个小时内出故障;或者一个客户将会按时付款、拖延付款还是拖欠付款;或者某店铺被划分为大、中、小三种类型之一。
分类模型:二元和非二元(Binary and Non-Binary):当给分类变量建模时,可能的结果数量是一个重要参数。如果只有两种可能的分类结果,比如是和否,或者对和错,那么这个变量就被称为二元变量。
如果有多于两种的分类结果,比如小、中、大或者按时付款、拖延付款、拖欠付款,那么该变量就被称为是非二元变量。这节课的重要内容是要能够决定是否使用分类模型以及是否应该使用二元模型或非二元模型。