数据挖掘简介(转载)

1.1  数据挖掘的定义

Data mining is the process of seeking interesting or valuable information in large database.

  数据挖掘(data mining)是近年来数据库应用领域中相当热门的话题。数据挖掘一般是指在数据库或数据仓库中,利用各种分析方法与技术,对过去累积的大量繁杂数据进行分析、归纳与整合等工作,提取出有用的信息,例如趋势(trend)、模式(pattern)及相关性(relationship)等,并将其中有价值的信息作为决策参考提供给决策者。通俗地说,数据挖掘就是从数据中发掘信息或知识,有人称为知识发现(knowledge discovery in database,KDD),也有人称为数据考古学(data archeology)、数据模式分析(data pattern analysis)或功能相依分析(functional dependency analysis)。目前,数据挖掘已经成为数据库系统、机器学习、统计方法等多个学科相互交叉的重要领域,而在实务界,越来越多的企业开始认识到,实施数据挖掘可以为企业带来更多潜在的商业机会。

  但我们对数据挖掘应有一个正确的认知:数据挖掘不是一个无所不能的魔法。数据挖掘的种种工具都是从数据中发掘出各种可能成立的“预言”,并对其潜在价值加以“估计”,但数据挖掘本身并不能在实际中查证和确认这些假设,也不能判断这些假设的实际价值。

1.2  数据挖掘的重要性

  现代企业经常会搜集大量的数据,这些数据涵盖了市场、客户、供货商,及其竞争对手等重要信息,但是由于信息超载与无结构化,企业的决策者无法充分利用这些庞大的数据资源,仅能使用其中的一小部分,这可能导致决策失误,甚至出现决策错误。而借助数据挖掘技术,企业完全有能力从浩瀚的数据海洋中,挖掘出全面而又有价值的信息和知识,并作为决策支持之用,进而形成企业独有的竞争优势。

1.3  数据挖掘的功能

一般而言,数据挖掘包括下列五项功能,这些功能大多为成熟的计量和统计分析方法。

1.分类(classification)

  按照分析个体的属性状态分别加以区分,并建立类组(class)。例如,将信用申请者的风险等级分为高风险、中风险和低风险三类。使用的方法有决策树(decision tree)、判别分析(discriminant analysis)、类神经网络(artificial neural network),以及记忆基础推理(memory-based reasoning)等。

2.估计(estimation)

  根据已有的数值型变量和相关的分类变量,以获得某一属性的估计值或预测值。例如,根据信用卡申请者的教育程度和从事职业来设定其信用额度。使用的方法有相关分析、Logistic回归及类神经网络等。

3.预测(prediction)

  根据个体属性的已有观测值来估计该个体在某一属性上的预测值。例如,由顾客过去刷卡消费额预测其未来的刷卡消费额。使用的方法有回归分析、时间序列分析及类神经网络等。

4.关联分组(affinity grouping)

  从所有对象决定哪些相关对象应该放在一起。例如,超市中相关的洗漱用品(牙刷、牙膏、牙线)放在同一货架上。在客户营销系统上,这类分析可以用来发现潜在的交叉销售(cross-selling)商品聚类,进而设计出有价值的组合商品集合。

5.同质分组(clustering)

  将异质总体分成为同质性的类别(clusters),即聚类。其目的是识别出总体中所包含的混合类别的组间差异,并根据每个类别的特征对所有个体进行归类。同质分组相当于营销术语中的细分(segmentation)。应该注意的是:聚类分析根据数据自动产生各个类别,事先是不知道或无须知道总体中潜在的类别信息。使用的方法有k-means等动态聚类法及agglomeration等层次聚类法。

1.4  数据挖掘的步骤

  数据挖掘的步骤会随不同领域的应用而有所变化,每一种数据挖掘技术也会有各自的特性和使用步骤,针对不同问题和需求所制定的数据挖掘过程也会存在差异。此外,数据的完整程度、专业人员支持的程度等都会对建立数据挖掘过程有所影响(蔡维欣,2003)。这些因素造成了数据挖掘在各不同领域中的运用、规划,以及流程的差异性,即使同一产业,也会因为分析技术和专业知识的涉入程度不同而不同,因此对于数据挖掘过程的系统化、标准化就显得格外重要。如此一来,不仅可以较容易地跨领域应用,也可以结合不同的专业知识,发挥数据挖掘的真正精神。

数据挖掘完整的步骤如下:

① 理解数据和数据的来源(understanding)。

② 获取相关知识与技术(acquisition)。

③ 整合与检查数据(integration and checking)。

④ 去除错误或不一致的数据(data cleaning)。

⑤ 建立模型和假设(model and hypothesis development)。

⑥ 实际数据挖掘工作(data mining)。

⑦ 测试和验证挖掘结果(testing and verfication)。

⑧ 解释和应用(interpretation and use)。

  由上述步骤可看出,数据挖掘牵涉了大量的准备工作与规划工作,事实上许多专家都认为整套数据挖掘的过程中,有80%的时间和精力是花费在数据预处理阶段,其中包括数据的净化、数据格式转换、变量整合,以及数据表的链接。可见,在进行数据挖掘技术的分析之前,还有许多准备工作要完成。

1.5  数据挖掘建模的标准CRISP-DM

  CRISP-DM是Cross-Industry Standard Process for Data Mining的简称,中文翻译为“数据挖掘的跨行业标准过程”。CRISP-DM是由欧洲几家在数据挖掘应用上有经验的公司共同筹划组织的一个特别小组所提出的。该组织的成员包括数据仓储供货商NCR、德国汽车航天公司Daimler-Chrysler、统计分析软件供货商SPSS和荷兰的银行保险公司OHRA,除了NCR与SPSS等是专注于数据挖掘软件开发的成员之外,也有其他众多厂商参与实验,通过实际操作过程,整体规划设计,并在2000年推出了CRISP-DM 1.0模型,把数据挖掘过程中必要的步骤都加以标准化。CRISP-DM模型强调完整的数据挖掘过程,不能只针对数据整理、数据显示、数据分析以及构建模型,而应该将对企业的需求问题的理解,以及后期对模型的评价与模型的延伸应用都纳入到数据挖掘过程中。因此,CRISP-DM从方法学的角度强调了实施数据挖掘项目的方法和步骤,同时独立于每种具体数据挖掘算法和数据挖掘系统。

CRISP-DM分为六个阶段(phase)和四个层次(level),分别简介如下。

六个阶段如下。

1.定义商业问题(business understanding)

  本阶段的主要工作是要针对企业问题以及企业需求进行了解确认,针对不同的需求做深入的了解,将其转换成数据挖掘的问题,并拟定初步构想。在此阶段中,需要与企业各层次进行讨论,只有对要解决的问题有了非常清楚而全面的了解,才能正确地针对问题拟定分析过程。

2.数据理解(data understanding)

  此阶段包括建立数据库与分析数据。在这个阶段必须先收集数据,了解数据的含义与特性,并过滤出所有可能有用的数据,然后进行数据整理并评估数据的质量,必要时再将分属不同数据库的数据加以合并或整合。数据库建立完成后再进行数据分析,并找出影响最大的数据,进而判断是否有必要进一步收集更为详细的数据。

3.数据预处理(data preparation)

此阶段和数据理解阶段为数据准备阶段的核心,这是建立模型前的最后一步数据准备工作。数据预处理任务很可能要反复执行多次,并且没有任何既定的顺序,其目的是把各种不同来源的数据加以清理、整理和归并,以适合数据挖掘技术的使用。

4.建立模型(modeling)

  此阶段对预处理过的数据应用各种数据挖掘技术,建立分析模型,发现企业问题的根源。面对同一个问题,会有多种可供使用的分析技术,但是每种技术对数据都有不尽相同的要求,因此需要回到数据预处理阶段,重新转换数据为符合要求的格式。

5.评价和解释(evaluation and explanation)

  从数据分析的观点看,在开始进入这个阶段时已经建立了看似是高质量的模型,但在实际应用中,随着应用数据的不同,模型的准确率肯定会变化。这一阶段的主要任务是对于挖掘结果加以评价和解释。一个值得注意的问题是:是否有某些重要的商业问题还没有充分地考虑,以至于使模型的预测精度发生了显著的变化。

6.实施(deployment)

  一般而言,完成模型创建并不意味着项目结束。模型建立并经验证后,有两种主要的使用方法。第一种是提供给分析人员做参考,由分析人员通过查看和分析这个模型后提出行动方案建议;另一种是把此模型应用到不同的数据集上。此外,在应用了模型后,当然还要不断监控它的效果。

四个层次(level)

  分别为phase、generic task、specialized task和process instance。每个phase由若干generic task组成,每个generic task又实施若干specialized task,每个specialized task由若干process instance来完成。其中,上两层独立于具体数据挖掘方法,即是一般数据挖掘项目均需实施的步骤(What to do?),这两层的任务将结合具体数据挖掘项目的“上下文”(context)映射到下两层的具体任务和过程。所谓项目的“上下文”是指项目开发中密切相关、需要综合考虑的一些关键问题,如应用领域、数据挖掘问题类型、技术难点、工具及其提供的技术等。

 

原文地址:https://www.cnblogs.com/Gihub/p/3809009.html