CRISPDM:人工智能产品规划流程

业内较为常见的人工智能规划流程是CRISP-DM,这个流程确定了一个数据挖掘项目的生命周期。

移动互联网的产品设计流程,通常要经历需求调研、需求分析、功能设计、视觉设计、编码测试几个阶段。围绕的重心是智能手机设备,对于产品的功能流程设计是否合理,用户交互是否顺畅,界面设计是否美观有着较高的要求。

如下图所示:

移动互联网产品规划流程

但是,在人工智能产品设计中,核心的重点不再是手机界面,而是对于业务的理解。

对数据的理解和对算法的理解,这就要求我们在进行产品规划的时候,将设计的重点从手机界面转变为以围绕业务目标的数据为核心。

目前,业内较为常见的设计流程是CRISP-DM(Cross-IndustryStandardProcessforDataMining,跨行业数据挖掘标准流程)。

CRISP-DM跨行业数据挖掘标准流程

在1996年的时候,SPSS,戴姆勒-克莱斯勒和NCR公司发起共同成立了一个兴趣小组,目的是为了建立数据挖掘方法和过程的标准。并在1999年正式提炼出了CRISP-DM流程。

这个流程确定了一个数据挖掘项目的生命周期,包括以下六个阶段:

这套流程没有特定工具的限制,不论是使用SPSS这类图形化的数据挖掘工具,还是python这类可用于数据挖掘的编程语言都可以。

也没有特定领域和行业的局限,是适用于所有行业的标准方法论,相对于其他的数据挖掘方法路,CRISP-DM具有灵活和适用范围光的优点。

需要特别注意的是:虽然这套数据挖掘流程的完整生命周期包含六个阶段,每一个阶段都依赖于上一个阶段的产出物,但是这六个阶段的顺序却并不是固定的。尤其是商业理解和数据理解,数据准备和建模阶段可能经常出现反复循环的过程。

是否可以继续进行下一个阶段取决于是否有达到最初的业务目标,如果业务目标没有达到,那么就要考虑是否是数据不够充分或算法需要调整,一切都以业务目标为导向。

那么,接下来,我们用一个电商案例来看一下:如何在实际工作中运用这套流程?

商业理解

海微购是一家从事跨境电商业务的创业公司,公司在前几年抓住了海淘的趋势,用户量和交易额都还不错。在新的财年,公司希望能在去年的基础上将GMV提高10%,并以此为目标制定新一年的工作计划。

1.确定业务目标

首先,需要先确定业务目标。

2.确定数据挖掘目标

第二步,需要将业务的问题转化为一个数据挖掘的问题。

根据业务目标,我们可以将其转化为以下几个数据挖掘问题:

在制定数据挖掘目标时,需要明确数据挖掘的问题是一个分类问题,聚类问题还是一个预测问题,以便于后续的建模阶段选择合适的算法。另外,还需要确定的是数据挖掘的范围,是针对所有用户大范围调整,还是先针对小规模的部分用户进行A/BTest,待验证成功之后再全面推行。

3.制定项目计划

在这个阶段需要明确各个环节的交付产物,并识别可能的项目风险,提前制定风险应对计划。

数据理解

1.收集数据

数据理解的第一步是收集数据。

海微购公司的产品经理通过排查发现:公司目前已经通过埋点收集到了用户在web端和APP端的行为数据,且平台售卖的商品有专门的人员负责打标签的工作,内部数据较为完善。但是,还缺乏用户对于平台上未售卖商品的偏好数据以及用户的人口属性数据。

针对这一点,海微购公司的产品经理决定组织一次用户有奖问卷调研活动。通过问卷调研的方式,抽样选取用户进行问卷填写,成功的收集了用户对于平台未售卖商品的偏好数据以及人口属性数据。

另一方面,通过网络爬虫数据,爬取了竞争对手平台的所有商品销售量,并根据销售单价推算出了总的销售额,完善了现有的数据体系。

2.数据标注

海微购公司所拥有的数据并不只有数据库中已经结构化了的数据,他还拥有很多非结构化的数据,例如:商品的图片数据,客户与客服的通话语音数据等等。

这些非结构化的数据并不是直接用于建模,而是需要先进行数据标注,将其转变为计算机可以识别的数据格式。

3.描述数据

当数据准备充分之后,需要对数据进行描述,以供后续阶段使用。主要包括对数据量的描述,数据值类型的描述以及编码方案的描述。

这些渠道类型在数据库中可以用文字来进行表示,也有可能用1234的数字来表示,在数据描述中需要特别注明这一类的数据及其对应的含义,以便后续阶段能正确的使用这些数据。

数据准备

如果产品经理在前期对于业务理解非常准确,数据理解也非常充分,那么将极大的减少数据准备阶段的工作量,提高工作的效率。

1.选择数据

在第一步选择数据阶段,需要做两件事情:第一是在所有的数据中选择哪些数据作为训练集,哪些数据作为测试集;第二是选择参与建模的特征字段有哪些。

2.清理数据

数据准备的第二步,是对数据进行清理,在实际的工作中,收集的数据不一定是100%准确无误的,常见的数据问题有:缺失值,错误值,离群值,编码不一致和无效数据。

例如:用户的年龄信息与是否购买某些商品有非常强的关系,但是用户的年龄信息对于用户本身来讲不是一个必填的信息。所以,商家不一定能获取到而造成缺失值。另外一种可能就是用户未填写真实的年龄,导致年龄出现负数或大于200的数这类错误值。

还有一些数据,例如用户的身高数据,如果绝大多数用户的身高在1.5米到1.9米之间,但是并不排除有一些用户的身高可能低于1.5米或高于1.9米。这类数据并不是错误数据,而是离群值,这类离群值量级较少,不是主要客户特征,但如果不加以排除直接参与到建模阶段,就有可能对建模造成一定的负面影响,比如:影响正常的平均值或极差。

编码不一致的问题也经常出现在数据中,例如:很多数据在低于1万的时候,显示的是具体的数值,而高于1万之后就不再显示具体的数值,而是显示成x.x万这样的格式,造成格式编码不一致的情况,在建模之前需要将所有数据处理为统一的单位和格式。

数据的正确性会直接影响后续建模阶段的模型效果,所以在数据准备阶段需要将这些问题数据进行处理,最简单的方法就是直接删除有问题的数据。但如果数据的量本来就比较少的话,也可以通过一些统计学的方法对数据进行修复或插补,例如:均值填补法处理缺失值,盖帽法处理离群值等等。

3.构建新数据

在数据挖掘中,有一些数据可以通过其他的数据转化而来,例如:如果获取到了用户的身份证信息,就可以根据身份证的生成规则知道用户的籍贯地址,生日以及性别。知道了用户的手机号,就可以通过手机号的归属地查到用户所在地;知道了用户的常用收货地址,结合房产数据,可以推测出用户大致的月收入。

除了对已有数据进行转化,还可以通过人工定义的方式将一些用户的事实行为通过规则转化为新的数据,例如:将月均平台消费超过1万的定义为高消费客户,将月活跃天数大于15天的定义为高活跃用户等等。

4.数据降维

数据降维的另一个目的是对数据进行可视化,我们生活在一个三维的世界中,但如果数据的维度大于三维,就无法进行可视化了。而通过降维将数据降为三维或二维的数据,并保持数据之间的关系,就可以通过肉眼来观察数据模型的效果了。

建立模型

到了这个阶段,之前的工作终于可以有所回报了,我们可以运用算法对前几个阶段准备的数据进行建模,看是否可以达到我们期望的结果。

建模的过程通常会执行多次,使用多个不同的算法和参数,因为在实际工作中,只是用一个算法且仅执行一次运算就能圆满的解决业务需求。这样的情况几乎是不存在的,正常的情况是我们可能需要在数据准备阶段与建立模型阶段之间反复多次,以确保业务目标达到最佳的效果。

1.选择建模算法

第一步,我们需要根据业务目标选择适合的算法,在前文我们提到过算法分为有监督学习和无监督学习两种。根据业务目标的不同,又可以分为:分类算法,聚类算法或预测算法。

算法的选择并不一定是越复杂的算法效果就越好,最终的效果取决于训练的数据以及设置的算法参数,所以我们可以在建模的时候,将适合的算法都尝试一次,根据结果来进行选择。

2.训练集评估

第二步,在选择好使用哪种算法之后,我们需要选择与训练集对应的测试集数据,并对算法的结果定义一个明确的评价标准。

3.构建模型

第三步,是真正建模的过程,在这个阶段根据算法的不同,可能需要对算法的参数进行调整,例如:KNN模型中调整K的值,或者深度神经网络算法调整隐藏层的数量等。

在每次调整算法参数并实际生成模型之后,我们需要根据在上一步定义的评价标准,记录模型的结果数据。这些结果数据将用来与其他的算法,以及同一个算法不同参数间的比较,确定最佳算法和参数。

这听起来是一件非常琐碎且耗时的事情,事实也确实如此,但是感谢技术的发展,大多数调参的过程都可以通过计算机自动完成,不需要人来值守。而且,通过集成算法的运用,我们可以同时使用不同的算法来对数据进行建模,我们在后面还会详细的讲到。

模型评估

至此,我们的项目已经完成了绝大多数的工作,在开始最后的部署阶段之前,最重要的事情是彻底的评估模型,根据在商业理解阶段定义的业务目标来评估我们努力的成果。

1.评估结果

最终的算法模型结果有可能达成了我们最初的业务目标,当然也有可能没达成。

达成了当然是一件好事,但如果没达成也不一定是一件坏事,就像爱迪生发明灯泡试验了一千种材料,失败了一千次也并不认为自己是失败了。他说:“我只是证明了这一千种材料不适合做灯丝而已。”

数据挖掘没有达成业务目标的结果,也不一定意味着建模的失败,有多种可能性导致不成功的结果。

2.审核过程

就像每个项目结束之后都需要进行复盘一样,在一次数据挖掘项目迭代之后,也需要对过程的成功之处和不足之处进行总结——回顾每个阶段的任务与关键的决定,看看每个阶段所做的事情对于最终的结果是否有所贡献?有没有什么方法是可以简化或者改善某一阶段任务完成情况?有没有什么不足之处,是可以在下一次迭代时进行改进的?有没有什么导致失败的问题是可以在下一次提前预测到并且避免的?

3.确定后续步骤

无论成功或失败,到现在都已经生成了最终的结果,那么就应该考虑一下:接下来该做些什么了?

一般会有两个选择:

当然,我们还可以选择其他方式来达成业务目标,毕竟一切的技术都是为了业务目标服务的,人工智能也并不是万能的,根据业务专家设置的规则或从产品运营角度也能提高业绩。

结果部署

建模的作用是从数据中找到知识,获得的知识需要以便于用户使用的方式重新组织和展现,这就是结果部署阶段的工作。根据业务目标的不同,结果部署简单的可能只需要提交一份数据挖掘报告即可,也有可能复杂到需要将模型集成到企业的核心运营系统当中。

1.制定部署计划

根据业务要求和运算性能的的不同,部署的模型可分为:离线模型,近线模型和在线模型三种。

近线模型适用于轻量级算法,一般在内存和Redis(一种支持Key-Value等多种数据结构的存储系统,适用于高速消息队列)中进行,运算的速度以秒为单位。而在线模型则通常根据业务规则来设置,在内存中运行,运行的速度以毫秒计。

另外,部署还需要考虑不同编程语言对于算法模型的调取兼容性,在这个阶段算法工程师需要与原有业务的开发工程师进行联调协作,确保业务系统能够正确的调用算法模型结果。

2.模型监督和维护

当发现模型结果在出现短期异常值时,排查异常的原因,例如:运营活动或者节假日等因素,当发现模型长期表现不佳时,则要考虑是否是用户和产品的数据构成已经发生了变化。如果是因为数据构成已经发生变化,则需要重新通过CRISP-DM流程构建新的模型。

3.生成最终报告

不论是在项目过程中一起并肩作战的同事,还是对项目关心的领导,都需要了解项目的最终成果。一个项目的成功,总离不开每个人的努力,常怀一颗感恩的心才能让一个团队走得更远。

本文由@黄瀚星原创发布于人人都是产品经理。未经许可,禁止转载

THE END
1.数据挖掘概念(AnalysisServices与以下关系图的突出显示相同,数据挖掘过程的第一步就是明确定义业务问题,并考虑解答该问题的方法。 该步骤包括分析业务需求,定义问题的范围,定义计算模型所使用的度量,以及定义数据挖掘项目的特定目标。这些任务转换为下列问题: 您在查找什么?您要尝试找到什么类型的关系? https://technet.microsoft.com/zh-cn/library/ms174949(en-us,sql.105).aspx
2.什么是数据挖掘的原理?从理论到实践全面解析数据挖掘7. 概念层次结构生成对类别变量进行概念层次结构生成也是数据预处理的一部分,这有助于提高数据挖掘的成功率。在数据挖掘特征选择过程中,哪些算法或技术被证明最有效?在数据挖掘特征选择过程中,多种算法和技术被证明是有效的。以下是一些主要的特征选择方法及其应用:1. 单变量特征选择使用基于统计量的方法来选择最优https://baijiahao.baidu.com/s?id=1810229673671783183&wfr=spider&for=pc
3.python数据挖掘算法的过程详解python这篇文章主要介绍了python 数据挖掘算法,首先给大家介绍了数据挖掘的过程,基于sklearn主要的算法模型讲解,给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下+ 目录 1、首先简述数据挖掘的过程 第一步:数据选择 可以通过业务原始数据、公开的数据集、也可通过爬虫的方式获取。 第二https://www.jb51.net/article/238548.htm
4.数据分析的过程主要包含这7个方面数据分析的过程是循序渐进的过程,主要包括如下7个方面。 一个完整的数据分析的过程,应该包括数据采集、数据存储、数据提取、数据挖掘、数据分析、数据展现、数据应用七个方面。今天我们就来从这几个角度着手,简要介绍一下数据分析的过程。 1. 数据采集 数据采集的意义在于真正了解数据的原始面貌,包括数据产生的时间、条https://www.jiushuyun.com/hywz/2061.html
5.《数据挖掘技术》试读:第三章数据挖掘过程数据挖掘过程 第1章将数据挖掘的良性循环描述为一个业务流程,其中把数据挖掘划分为4个阶段: (1) 识别问题 (2) 将数据转换为信息 (3) 采取行动 (4) 度量结果 本章的重点转向把数据挖掘作为技术过程,把识别业务问题转变为将业务问题转化为数据挖掘问题。同时,第二个阶段——把数据转换为信息,将扩展到几个主题https://book.douban.com/reading/27167261/
6.过程挖掘:数据科学实战MOOC中国首先,课程会大致介绍利用事件数据支持决策和企业过程(再)设计的相关方法和技术;进而重点研究数据挖掘与企业过程建模之间的桥梁——过程挖掘。作为入门级课程,我们还安排了各种实践任务。 课程主要研究三类过程挖掘: 1、第一类过程挖掘是(过程)发现。发现技术通过事件日志制作过程模型,而不利用任何先验信息。例如:通过事件https://www.mooc.cn/course/1271.html
7.数据挖掘的具体工作内容数据挖掘的过程通常包括以下步骤: 1. 数据收集:收集需要分析的数据,可以是结构化数据(如数据库)或非结构化数据(如文本、图像等)。 2. 数据预处理:清洗和转换数据,包括处理缺失值、异常值和重复值,进行特征选择和特征变换等。 3. 模型选择:选择适合问题的数据挖掘模型,如聚类、分类、关联规则挖掘等。 https://www.jianli.com/article/oabjqw.html
8.数据挖掘的流程和方法技巧总结这篇是自己总结的一套比较完整的数据挖掘的流程和常用的技巧,基本上对于任何数据挖掘任务和写作型或结果提交型的数据竞赛都适用(持huan续man更新)。部分内容参考别人写的文章或讨论的结果,部分是自己打比赛做项目时遇到的、用上的方法,同时附上了sklearn中相应工具的文档,便于查找。对于各部分方法,主要以笔记的形式作https://zhuanlan.zhihu.com/p/33429338/voters
9.商战数据挖掘:你需要了解的数据科学与分析思维数据科学的一条重要原则是,数据挖掘的流程可以分解为几个通俗易懂的环节。有些环节涉及信息技术的应用,如数据中模式的自动发现和评估,而有些则主要依赖数据分析师的创意、常识和商业知识。理解数据挖掘的整个过程,有助于组织数据挖掘项目,使它们更接近系统性的分析,而不是凭借运气和个人智慧的冒险行为。 https://www.ituring.com.cn/book/tupubarticle/28952
10.数据仓库与数据挖掘技术—数据挖掘分类及过程模型数据挖掘:首先根据对问题的定义明确挖掘的任务或目的,如分类、聚类、关联规则发现或序列模式发现等。然后选择算法 结果解释与评估:对发现的模式进行可视化,或者把结果转换为用户容易理解的其他表示形式 Fayyad过程模型从某种意义上来说是面向理论,偏向技术的模型,而不是面向工程、面向应用的模型。虽然有模型的评估,但侧重https://www.jianshu.com/p/da25173289b9
11.数据挖掘有哪些工作流程?数据挖掘工作流程: 一、收集数据 收集数据一般是补充外部数据,包括采用爬虫和接口,获取,补充目前数据不足部分。Pythonscrapy,requests是很好的工具。 二、准备数据 主要包括数据清洗,预处理,错值纠正,缺失值填补。连续值离散化,去掉异常值,以及数据归一化的过程。同时需要根据准备采用的挖掘工具准备恰当的数据格式。 https://www.cda.cn/view/17711.html
12.数据挖掘的六个步骤有哪些帆软数字化转型知识库数据挖掘的六个步骤分别是:问题定义、数据收集与准备、数据清洗、数据转换与特征选择、模型建立与评估、结果解释与部署。其中问题定义是数据挖掘过程的首要步骤,直接影响整个项目的成功与否。问题定义涉及明确业务目标、研究目标和所需的数据类型。只有在问题定义清晰的情况下,后续的每一步骤才能有的放矢,确保数据挖掘的结https://www.fanruan.com/blog/article/594251/
13.终于有人把数据挖掘讲明白了图1 数据挖掘过程 2数据挖掘的内容 2.1 关联规则挖掘 从大规模数据中挖掘对象之间的隐含关系称为关联分析(Associate Analysis)或者关联规则挖掘(Associate Rule Mining),它可以揭示数据中隐藏的关联模式,帮助人们进行市场运作、决策支持等。 考察一些涉及许多物品的事务。事务1中出现了物品甲,事务2中出现了物品乙,事务3https://www.51cto.com/article/698009.html
14.保姆式GEO数据挖掘演示写在前面 模拟1000行代码不如实操训练,重现文章中的数据才是学习GEO数据挖掘的最好途径,基于以上精神,我们就来重现一下高分文章的数据挖掘过程。 至于为什么选择这篇文章,是因为我还是个GEO数据挖掘的小白https://m.wang1314.com/doc/webapp/topic/20967139.html
15.网络营销全部59.数据挖掘分析方法中,聚类分析的主要目的是()。 A.找出数据之间的属性联系,形成关联规则B.把一组个体按照相似性归成若干类别,形成新的类标识C.把数据的关联性与时间联系起来,预测关联事件发生的时间D.根据示例数据库中的数据建立判别规则,据此对其他数据进行分类20.在企业【注释】:第十章第二节 第283页 聚类https://www.wjx.cn/xz/261160017.aspx
16.网络空间安全(0839)一级学科硕士研究生培养方案主要研究内容包括:互联网基础设施安全、网络入侵检测与防护、风险分析与态势感知、网络安全防护与主动防御、网络系统恢复、恶意代码检测与取证、恶意代码逆向分析、应急响应与攻击取证、网络对抗、网络监听、网络安全协议、网络漏洞分析与挖掘、系统软件安全等。 http://xxxy.hainnu.edu.cn/html/2018/pyfa_0716/1174.html
17.基于MapReduce的增量数据挖掘研究AET摘要: 频繁项集挖掘是数据挖掘过程中的重要部分,传统数据挖掘算法中常用Apriori算法和FP增长算法来挖掘频繁项集。在实际应用中,传统算法往往不能用于频繁更新的数据库,采用IMBT数据结构能从不断更新的数据库中挖掘频繁项集,但是这将导致存储空间不足和运行效率低下的问题。基于MapReduce的增量数据挖掘能够有效解决这些http://www.chinaaet.com/article/218164
18.工程造价论文大全15篇1港航工程造价控制主要内容 港航工程造价控制的内容非常丰富,只有全面了解需要进行造价控制的所有方面,才能有针对性地制定有效的控制措施,才能为港航工程造价控制效果的优化提供保障。具体来讲,港航工程施工造价的主要控制内容涵盖以下几点:①工程变更造价。港航是水运发展的基础与前提,在具体的施工过程中受到勘察数据不准确https://www.unjs.com/lunwen/f/20240817175958_8311257.html