数据挖掘

简介: 简单介绍数据挖掘的概念以及常见的流程

什么是数据挖掘

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

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

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

  • 借助历史天气数据预测未来天气变化;
  • 在异常交易行为中发现羊毛党;
  • 为自媒体内容评判好坏;
  • 预测一个商品在未来的流行趋势;

等等

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

数据挖掘的流程

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

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

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

1.理解业务

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

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

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

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

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

2.理解数据

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

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

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

3.准备数据

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

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

4.构建模型

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

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

可以转化成分类问题,把相似和不相似看作是二分类,把文本数据转化成数值数据,使用分类算法构建分类模型;

可以把它转化为一个聚类问题,把文本进行聚类分析,根据聚类的距离来判定是否抄袭;

可以把多种方法组合起来使用。

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

5.模型评估

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

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

6.部署上线

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

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

相关文章
|
机器学习/深度学习 数据采集 算法
数据挖掘-到底在解决什么问题(一)
数据挖掘-到底在解决什么问题(一)
153 0
数据挖掘-到底在解决什么问题(一)
|
数据挖掘 Go 数据库
数据分析与数据挖掘研究之一 (下)
数据分析与数据挖掘研究之一
数据分析与数据挖掘研究之一 (下)
|
数据挖掘 数据库 Perl
数据分析与数据挖掘研究之一 (上)
之前做过一些数据分析与数据挖掘相关的工作,最近抽空将之前做的内容简单整理一下,方便查看,主要使用R语言和PERL脚本语言,使用TCGA和ICGC数据库中的临床数据,做类似的分析可以参考一下,如果想查看详细内容与数据可以通过本人的Gitee及Github仓库下载,链接于篇尾附上。
数据分析与数据挖掘研究之一 (上)
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】数据挖掘总结 ( 数据挖掘相关概念 ) ★★(二)
【数据挖掘】数据挖掘总结 ( 数据挖掘相关概念 ) ★★(二)
148 0
【数据挖掘】数据挖掘总结 ( 数据挖掘相关概念 ) ★★(二)
|
存储 机器学习/深度学习 SQL
【数据挖掘】数据挖掘总结 ( 数据挖掘相关概念 ) ★★(一)
【数据挖掘】数据挖掘总结 ( 数据挖掘相关概念 ) ★★(一)
185 0
|
机器学习/深度学习 算法 数据可视化
数据挖掘(二)
7.预测模型 预测模型检验并识别现有数据中的模式,以预测未来的结果。构建预测模型包括应用统计技术来获取和显示公开数据中所包含的信息。 图2.6预测模型 决策树 决策树是最通用的建模技术之一。该模型可以单独用于预测,也可以用作开发其他预测模型建模技术。
|
数据采集 存储 机器学习/深度学习
数据挖掘(一)
1.简介 大数据时代正在唤醒企业通过利用客户数据获得竞争优势的机会。数据的广泛使用性和高度复杂性让仅使用传统决策技术来盈利变成不可能。这些传统方法主要使用电子表格,数据库查询和其它商业智能工具。另外,人们对从大数据中提取的有用信息和知识方法越来越感兴趣,这使得决策风格从基于经验直觉逐渐转变成数据驱动。
|
数据挖掘
《数据挖掘:实用案例分析》——第1章 初识数据挖掘 1.1 什么是数据挖掘
本节书摘来自华章计算机《数据挖掘:实用案例分析》一书中的第1章,第1.1节,作者 张良均 陈俊德 刘名军 陈荣,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1708 0
|
算法 搜索推荐 物联网
《移动数据挖掘》—— 导读
大约在十年前,本书作者所在的研究团队,也就是目前的微软亚洲研究院社会计算组,对挖掘人群移动数据中隐藏的知识产生了兴趣。这个团队在2007年开展了GeoLife项目,通过用户主动分享的移动数据来研究用户的出行模式,为旅游规划等应用提供支持。
1784 0
|
人工智能 算法 数据挖掘