加入收藏 | 设为首页 | 会员中心 | 我要投稿 好新闻门户网 (https://www.haoxinwen.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从零开始学大数据14 带你聊一聊标准化数据挖掘全流程

发布时间:2022-11-02 14:45:07 所属栏目:大数据 来源:互联网
导读: 在上一个模块,我对大数据架构中最主要的工具进行了介绍,从数据获取,到数据存储,再到数据传输,最后是数据的计算。不知道你是否还记得我们在第一讲中说到的大数据的特点:数量庞大、种类

在上一个模块,我对大数据架构中最主要的工具进行了介绍,从数据获取,到数据存储,再到数据传输,最后是数据的计算。不知道你是否还记得我们在第一讲中说到的大数据的特点:数量庞大、种类众多、生产速度快以及价值密度低。公司都是追逐利益的,我们的公司兴师动众,耗费大量资源构建这么一套大数据体系,一定是期望这些数据能够给公司带来更大的价值,提升公司的收益。如果说大数据开发是在搭建戏台,那么接下来的数据挖掘与数据分析就是要开始唱戏了。从这节课开始,我们就进入大数据挖掘与分析的模块,看看如何充分攫取数据中的价值。

什么是数据挖掘

数据挖掘这个词或许我们经常会见到,但是到底什么是数据挖掘?有人觉得数据挖掘就是各种算法,有人觉得数据挖掘就是各种数据的计算。数据挖掘确实是一个涉及面非常广的词语,在我看来,数据挖掘更偏向于一种过程,而不是一种名词或者一个结果,比如说我们要为新闻网站上的新闻标注分类以方便用户查阅,当然可以让编辑或者运营人员人工地进行标注,也可以借助数据挖掘去发现分类与新闻的内在联系,从而为新闻自动标注类别。

所以所谓的数据挖掘就是以数据作为研究的对象,从数据中寻找价值,获取知识的过程,至于说机器学习算法,或者数据的统计分析,这些都是手段。

具体到一个公司的业务中,除了上面说的为新闻标注类别,以下这些都可以借助数据挖掘过程来分析和解决:

既然数据挖掘是一种过程,那么我们接下来就来看一下在实际的数据挖掘流程中,都分成哪些步骤。

数据挖掘的流程

在我刚开始工作的时候,虽然说也是处于数据挖掘的一环,但实际上我对数据挖掘的整体工作并没有什么概念。只是领导告诉我,某个指标需要计算一下,某些数据需要统计一下,我们要训练一个什么模型,我们需要做到多少的准确率等等。

随着工作经验的增长,我渐渐熟悉了这些环节,同时明白了数据挖掘的步骤,开始能够独立处理一个问题。实际上,在数据挖掘领域早已有比较成型的方法论,其中所列出的步骤与我的实际工作不谋而合。在这里,我们就介绍一个被称为 CRISP-DM 的数据挖掘流程方案,并通过一个小例子来实际感受一下,数据挖掘的流程是如何开展的。

CRISP-DM(cross-industry standard process for data mining),翻译过来的意思是跨行业数据挖掘标准流程,正如下图所示,在这个数据挖掘标准流程中包含了六个主要步骤,不过这六个步骤在整体上循环往复,但并不是按照单纯的顺序执行,其中还包含了很多关系,接下来我们就分别来介绍一下。

大数据 架构_大数据架构标准_大数据舆情分析架构

图片1.png

1.理解业务

以我们在拉勾教育做数据挖掘为例。为了保持内容的独创性,以吸引更多的用户购买,总编希望作者写的东西能够与一些主流网站上的内容存在一些差异,如果说每写一篇稿子,就让运营挨家挨户地去对比,那一定是费时费力,并且对比的效果很差,因为运营也没办法把那么多内容都看一遍,于是总编向我们发起了一个需求:比对作者写的文章与主流网站的文章是否存在一定的独创性。

我们收到了需求,接下来就要摩拳擦掌准备开始工作了。但是不要心急,这里说的工作可不是立马上手分析数据、写代码。作为一个合格的数据挖掘工程师,第一步我们需要理解业务,把业务逻辑搞明白。

需求有了,但是这个需求貌似并不明确。首先怎么定义文章具有独创性,这并不是通过技术手段可以量化的指标,我们就需要与总编沟通,确定如果两篇文章的相似度低于 5% 就认为是有独创性的。

之后我们可以把这个问题定义为一种文本抄袭检测,但是这个文本抄袭检测与一般的文本抄袭检测是否又有一些区别呢?比如说我们需要检测的是独创性,那么我们对比的粒度是否需要比较细;某些重点的文本是否需要一定不相同;一些引用和概念性介绍是否需要刨除;对于同一个作者的内容该如何处理等等。这些业务独特的需求我们也需要了解清楚,才能方便我们后面的处理。

理解业务看起来很虚,但是却是非常重要的环节,不要觉得理解业务是浪费时间的事情,认识清楚我们要完成的业务目标,能够为我们后面的提升效率、优化效果带来非常大的帮助。反之,如果你还没搞清楚业务的细节就上手开发,很可能所做的结果与业务的需求存在偏差,这时候就浪费了更多的时间,严重的还会给公司带来很大损失。

2.理解数据

在我们搞清楚业务需求之后,下一步就是要理解我们的数据。针对业务需求,我们需要什么样的数据,而我们公司中又有什么数据?哪些数据是一定要有的,哪些数据可以提升效果,但不是必需的?又有哪些数据是可有可无的?这些问题你需要在这个环节搞清楚。

比如说我们上面的“独创性”需求,至少需要拿到的是拉勾作者写的文本和需要对比的网站上的文本,除此以外,是否可以获得诸如作者名称、发布日期、文章分类等数据,针对细节需求,是否有充足的术语库供我们使用呢?这些数据是否存在一些错误,或者缺失?这些也都是需要考虑的问题。

如果说数据是完美的,那么工作起来自然简单,然而数据挖掘所需要解决的不仅仅是一个算法问题,而是在当前的条件下,在不完善的,甚至有错误的数据条件下,如何更好地输出结果。因此,理解数据也同样重要。如果对于某些需求,现有的数据无法支撑,那么还需要返回到理解业务的步骤,重新讨论业务需求。

3.准备数据

弄明白了我们的业务需求,搞清楚了我们手头的数据,接下来我们就要开始准备数据了。

在这个环节,我们需要针对具体的情况,也就是拿我们业务和数据本身的问题去做针对性的准备,把原始的数据经过清洗加工,转变成我们在后面的建模环节所需要的状态。对于我们“独创性”的需求,文本数据自然是不能够直接进行运算的,我们可能需要对文本做一些分词、关键词提取、过滤停用词的工作。如果要使用词向量,还需要训练一个词向量表。对于非文本数据,也需要检查异常值或者缺失值,看是否需要进行丢弃或者补全的操作。

4.构建模型

如果说,我们前面的步骤都已经有条不紊地完成了,那么在构建模型这一步将非常顺畅。构建模型所解决的基本上都属于技术问题了。面对我们的问题,如何选取对应的技术方案、使用哪种算法来解决我们的问题、如何优化以提升效果是构建模型阶段需要解决的问题。

我们常见的问题通常可以转化成分类、聚类、回归和关联分析四种问题,进而选择对应的算法构建模型。比如说我们的文本抄袭检测:

很多时候,我们需要根据经验来选择使用何种方案,如果你还不能很好的判断大数据架构标准,那么就有必要多做一些试验来对比效果。

5.模型评估

模型训练好了,我们还需要对模型进行评估,来确认我们的模型是否确实符合我们的预期、能够满足我们的业务需求、解决我们的业务问题。

从数学原理方面,我们有诸如准确率、召回率、F1 Score 等指标来评判一个模型的效果。同时,在公司中,很多时候我们还需要与业务人员共同进行人工抽样来确认效果。比如说我们构建好了检测文本相似性的模型,只有一个准确率 90% 的概率往往还不能直接使用,我们的效果还需要得到业务方,也就是总编的确认。不仅如此,由于我们训练使用的数据跟线上的数据肯定存在一些区别,在模型上线之后,仍然需要定期花时间来评估线上的效果。如果发现问题,可能需要对问题进行分析,看是否是个例还是大面积的问题。

6.部署上线

如果总编检查完了结果,并对我们工作的效果非常满意,那么我们就可以对模型进行部署上线了。

在部署的时候,我们更多地需要考虑一些工程问题。因为有时候我们的模型效果虽然没问题,但是运算速度可能太慢,或者需要太多的资源,而我们的服务器可能无法支持,或者我们的数据量太大处理不过来,又或者我们需要把服务集成到 App 上面,让用户在无网络时也可以使用等等。

7.下一次迭代

我们的抄袭检测服务终于可以上线了,然而数据挖掘流程并没有结束。可能是为了快速上线,也可能是由于当前的某些条件不具备,我们的第一版服务还存在着很大的优化空间,同时来自线上的日志收集也为我们准备了很多问题案例。在经过了一段时间之后,我们可能需要重新回到构建模型阶段,或者理解数据阶段,甚至是理解业务阶段,对我们的项目进行优化和迭代。

所以说,数据挖掘流程是一个循环往复的流程,虽然说按步骤进行了划分,但是这些步骤并不是绝对分隔的,每个步骤之间都有着千丝万缕的关系。

大数据架构标准_大数据 架构_大数据舆情分析架构

(大数据14金句.png总结

这一讲,我们借助前人总结好的“数据挖掘标准流程”来介绍了数据挖掘的过程。数据挖掘是一个涉及面颇多的过程,在这个过程中,你既需要对公司业务“明察秋毫”,又要对数据挖掘技术手段了如指掌,最终能够借助数据挖掘从大数据中攫取价值以帮助公司业务提升。刚步入工作的同学,可能没办法顾及整个流程,往往都是从其中的一块,或者某些零碎的工作开始,但是不要心急,随着时间的增长,你的经验会越来越丰富。

那你在进行数据挖掘的过程中,哪些流程是你顾及的,哪些是你忽略掉的,欢迎在交流区和我分享。

下一讲,我们会介绍数据挖掘中常用的四种算法,让你明白什么时候该使用什么方法,到时见。

(编辑:好新闻门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!