【云驻共创】数据挖掘介绍
1、前言
随着数据体量的快速增加,人们希望有一种方法可以帮助处理这些纷繁复杂的数据,从中发现有价值的信息或知识为决策服务,数据挖掘在此背景下应运而生。本文主要包括数据挖掘介绍、数据挖掘与分析区别、数据挖掘算法、及数据挖掘基本流程,方便大家了解数据挖掘基本内容。
2、简介
数据挖掘(英语:Data mining),又译为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Association rule learning)的信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
3、数据挖掘与数据分析区别
数据挖掘就是从海量数据中找到隐藏的规则,数据分析一般要分析的目标比较明确。
数据挖掘和数据分析的主要区别
- “数据分析”的重点是观察数据,而“数据挖掘”的重点是从数据中发现“知识规则”KDD(Knowledge Discover in Database)。
- “数据分析”得出的结论是人的智力活动结果,而“数据挖掘”得出的结论是机器从学习集(或训练集、样本集)发现的知识规则。
- “数据分析”得出结论的运用是人的智力活动,而“数据挖掘”发现的知识规则,可以直接应用到预测。
- “数据分析”不能建立数学模型,需要人工建模,而“数据挖掘”直接完成了数学建模。如传统的控制论建模的本质就是描述输入变量与输出变量之间的函数关系,“数据挖掘”可以通过机器学习自动建立输入与输出的函数关系,根据KDD得出的“规则”,给定一组输入参数,就可以得出一组输出量。
4、数据挖掘对象
数据的类型可以是结构化的、半结构化的,甚至是异构型的。发现知识的方法可以是数学的、非数学的,也可以是归纳的。最终被发现了的知识可以用于信息管理、查询优化、决策支持及数据自身的维护等。
数据挖掘的对象可以是任何类型的数据源。可以是关系数据库,此类包含结构化数据的数据源;也可以是数据仓库、文本、多媒体数据、空间数据、时序数据、Web数据,此类包含半结构化数据甚至异构性数据的数据源。
发现知识的方法可以是数字的、非数字的,也可以是归纳的。最终被发现的知识可以用于信息管理、查询优化、决策支持及数据自身的维护等。
5、数据挖掘常用算法
5.1、分类
分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从而增加商铺的销售量。
分类的方法:决策树——是最流行的分类方法
特点:
- 它的每次划分都是基于最显著的特征的;
- 所分析的数据样本被称作树根,算法从所有特征中选出一个最重要的,用这个特征把样本分割成若干子集;
- 重复这个过程,直到所有的分支下面的实例都是“纯”的,即子集中各个实例都属于同一个类别,这样的分支即可确定为一个叶子节点。在所有子集变成“纯”的之后,树就停止生长了。
决策树的剪枝:
- 如果决策树建的过深,容易导致过度拟合问题(即所有的分类结果数量基本一样,没有代表性);
- 剪枝通常采用自上而下的方式。每次找出训练数据中对预测精度贡献最小的那个分支,剪掉它;
- 简言之,先让决策树疯狂生长,然后再慢慢往回收缩。整体上往回收缩多少,要根据在测试集上的表现来反复尝试;
5.2、回归分析
回归分析反映了数据库中数据的属性值的特性,通过函数表达数据映射的关系来发现属性值之间的依赖关系。它可以应用到对数据序列的预测及相关关系的研究中去。在市场营销中,回归分析可以被应用到各个方面。如通过对本季度销售的回归分析,对下一季度的销售趋势作出预测并做出针对性的营销改变。
分类的方法:逻辑回归——是一种常用的分类方法,非常成熟,应用非常广泛
特点:
- 回归不只可以用于分类,也能用于发现变量间的因果关系;
- 最主要的回归模型有多元线性回归和逻辑回归;
- 有些时候逻辑回归不被当作典型的数据挖掘算法;
逻辑回归的步骤:
- 先训练,目的是找到分类效果最佳的回归系数;
- 然后使用训练得到的一组回归系数,对输入的数据进行计算,判定它们所属的类别;
- 逻辑回归模型的检验;
决策树与逻辑回归的比较:
- 决策树由于采用分割的方法,所以能够深入数据细部,但同时失去了对全局的把握。一个分支一旦形成,它和别的分支或节点的关系就被切断,以后的挖掘只能在局部中行;
- 逻辑回归始终着眼于整数数据的拟合,所以对全局模式把握较好;
- 决策树比较容易上手,需要的数据预处理较少;
- 逻辑回归模型不能处理缺失值,而且对异常值敏感。因此回归之前应该处理缺失值,并尽量删除异常值;
5.3、聚类
聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。
5.4、关联规则
关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM 机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。
聚类和关联规则被称为无监督学习:
- 无标识;
- 聚类:针对客户特征进行客户群划分。由此,我们可以对不同客户群采取差异化的促销方式;
- 关联规则:分析发现购买面包的顾客中有很大比例的人同时购买牛奶,由此我们可以将牛奶与面包放在同一个地方。
5.5、神经网络方法
神经网络作为一种先进的人工智能技术,因其自身自行处理、分布存储和高度容错等特性非常适合处理非线性的以及那些以模糊、不完整、不严密的知识或数据为特征的处理问题,它的这一特点十分适合解决数据挖掘的问题。典型的神经网络模型主要分为三大类:第一类是以用于分类预测和模式识别的前馈式神经网络模型,其主要代表为函数型网络、感知机;第二类是用于联想记忆和优化算法的反馈式神经网络模型,以Hopfield 的离散模型和连续模型为代表。第三类是用于聚类的自组织映射方法,以ART 模型为代表。虽然神经网络有多种模型及算法,但在特定领域的数据挖掘中使用何种模型及算法并没有统一的规则,而且人们很难理解网络的学习及决策过程。
5.6、Web数据挖掘
Web数据挖掘是一项综合性技术,指Web 从文档结构和使用的集合C 中发现隐含的模式P,如果将C看做是输入,P 看做是输出,那么Web 挖掘过程就可以看做是从输入到输出的一个映射过程。
当前越来越多的Web 数据都是以数据流的形式出现的,因此对Web 数据流挖掘就具有很重要的意义。目前常用的Web数据挖掘算法有:PageRank算法,HITS算法以及LOGSOM 算法。这三种算法提到的用户都是笼统的用户,并没有区分用户的个体。目前Web 数据挖掘面临着一些问题,包括:用户的分类问题、网站内容时效性问题,用户在页面停留时间问题,页面的链入与链出数问题等。在Web 技术高速发展的今天,这些问题仍旧值得研究并加以解决。
5.7、数据挖掘遗传算法GA
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
6、数据挖掘基本流程
数据挖掘又称为数据库中的知识发现(KDD:Knowledge Discovery in Database),实际上数据挖掘是知识发现过程的一个基本步骤。
数据挖掘的基本步骤包括:商业理解,数据理解,数据准备,数据建模,模型评估,模型实施。
6.1、 商业理解
这一初始阶段集中在从商业角度理解项目的目标和要求,然后把理解转化为数据挖掘问题的定义和一个旨在实现目标的初步计划。具体包括:
- 确定业务目标:分析项目的背景,从业务视点分析项目的目标和需求,确定业务角度的成功标准;
- 项目可行性分析:分析拥有的资源,条件和限制,风险估计,成本和效益估计;
- 确定数据挖掘目标:明确确定数据挖掘的目标和成功标准,数据挖掘的目标和业务目标是不一样的,前者指技术上的,例如生成一棵决策树等;
- 提出项目计划:对整个项目做一个计划,初步估计用到的工具和技术。
6.2、数据理解
数据理解阶段开始于原始数据的收集,然后是熟悉数据,标明数据质量问题,探索对数据的初步理解,发觉有趣的子集以形成对隐藏信息的假设。具体包括:
- 收集原始数据:收集本项目所涉及到的数据,如有必要,把数据装入数据处理工具,并作一些初步的数据集成的工作,生成相应报告;
- 描述数据:对数据做一些大致的描述,例如记录数、属性数等,给出相应报告;
- 探索数据:对数据做简单的统计分析,例如关键属性的分布等;
- 检查数据质量:包括数据是否完整、数据是否有错、是否有缺失值等问题。
6.3、数据准备
数据准备阶段包括所有从原始的未加工的数据构造最终数据集的活动(这些数据集指将要嵌入建模工具中的数据)。数据准备任务可能被实施多次,而且没有任何规定的顺序。这些任务包括表格、记录和属性的选择以及按照建模工具要求,对数据的转换和清洗。具体包括:
- 数据选择:根据数据挖掘目标和数据质量选择合适的数据,包括表的选择、记录选择和属性选择;
- 数据清洁:提高选择好的数据的质量,例如去除噪音,估计缺失值等;
- 数据创建:在原有数据的基础上是生成新的属性或记录;
- 数据合并:利用表连接等方式将几个数据集合并在一起;
- 数据格式化:把数据转换成适合数据挖掘处理的格式。
6.4、数据建模
在此阶段,主要是选择和应用各种建模技术,同时对它们的参数进行校准以达到最优值。通常对于同一个数据挖掘问题类型,会有多种模型技术。一些技术对数据格式有特殊的要求。因此,常常需要返回到数据准备阶段。具体包括:
- 选择建模技术:确定数据挖掘算法和参数,可能会利用多个算法;
- 测试方案设计:设计某种测试模型的质量和有效性的机制;
- 模型训练:在准备好的数据集上运行数据挖掘算法,得出一个或者多个模型;
- 模型测试评估:根据测试方案进行测试,从数据挖掘技术的角度确定数据挖掘目标是否成功。
6.5、模型评估
进入项目中的这个阶段时,你已经建立了一个模型(或者多个),从数据分析的角度来看,该模型似乎有很高的质量。在模型最后发布前,有一点是很重要的——更为彻底地评估模型和检查建立模型的各个步骤,从而确保它真正地达到了商业目标。此阶段关键目的是决定是否存在一些重要地商业问题仍未得到充分地考虑。关于数据挖掘结果的使用决定应该在此阶段结束时确定下来。具体包括:
- 结果评估:从商业角度评估得到的模型,甚至实际试用该模型测试其效果;
- 过程回顾:回顾项目的所有流程,确定每一个阶段都没有失误;
- 确定下一步工作:根据结果评估和过程回顾得出的结论,确定是部署该挖掘模型还是从某个阶段开始重新开始。
6.6、 模型实施
模型的创建通常并不是项目的结尾。即使建模的目的是增加对数据的了解,所获得的了解也需要进行组织并以一种客户能够使用的方式呈现出来。具体地,包括:
- 实施计划:对在业务运作中部署模型作出计划;
- 监控和维护计划:如何监控模型在实际业务中的使用情况,如何维护该模型;
- 作出最终报告:项目总结,项目经验和项目结果;
- 项目回顾:回顾项目的实施过程,总结经验教训;对数据挖掘的运行效果做一个预测。
7、结束语
随着技术发展,数据挖掘已成为全球组织的终极瑞士军刀。我们更有理由前进并解决该行业面临的所有挑战。全球一些最大的组织正在使用数据挖掘来增加收入,降低成本和识别客户。组织还使用更新的权威指南来学习数据挖掘的趋势。相信数据挖掘技术在不久的将来,将会应用于更多行业当中。
本文参与华为云社区【内容共创】活动第17期。
https://bbs.huaweicloud.com/blogs/358780
任务10:数据挖掘介绍
- 点赞
- 收藏
- 关注作者
评论(0)