数据挖掘原理与实践学习(1)
说来惭愧,开始写这篇博客的动力是由于我数据挖掘考试挂了......自己在寒假重新学习这一科,顺带着写写自己的感悟,希望能与大家一起学习。我有什么错漏或者大家什么好的建议都可以在评论区留言,我会认真回复的。我在这里使用的教材是电子工业出版社出版的《数据挖掘原理与实践学习》。
什么是数据挖掘?数据挖掘顾名思义,就是在众多数据之中进行挖掘,找到有用的信息。
从技术层面上说,即从大量数据中提取有用的信息的过程;从商业层面来说,则是一种商业信息处理技术,主要是对大量业务数据进行抽取、转换、分析和建模处理,从中提取腐竹商业决策的关键性数据。
数据挖掘的对象是什么?(1)关系数据库。
(2)数据仓库:一个从多个数据源收集的信息存储库,存放在一个一致的模式下。
(3)事物数据库。
(4)空间数据库:指在关系数据库内部对地理信息进行物理存储(如地理信息系统、遥感图像数据)。
(5)时态数据库和时间序列数据库:两者都存放与时间相关的数据。时间数据库通常存放时间相关的属性值,如与时间相关的职务、工资等个人信息及个人简历信息等;时间序列数据库存放时间变化的值序列,如零售行业的产品销售数据、股票数据、气象观测数据等。
(6)流数据。
(7)多媒体数据库。
(8)文本数据库。
(9)万维网数据(WordWideWeb):被认为是最大的文本数据库。
数据挖掘任务通常,数据挖掘任务可以分为预测型任务和描述型任务。预测型任务就是根据其他属性的值预测特定属性的值,如回归、分类、离群点检测。描述型任务就是寻找概括数据中潜在联系的模式,如聚类分析、关联分析、演化分析、序列模式挖掘。
分类(Classificantion)分析:通过分析示例数据库中的数据,为每个类别做出准确的描述,或建立分析模型,或挖掘出分类规则,然后用这个分类模型或规则对数据库中的其他记录进行分类。聚类(Clustering)分析:聚类分析技术试图找出数据集中数据的共性和差异,并将具有共性的对象聚合在相应的簇中。回归(Regression)分析:回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种分析方法。关联(Association)分析:关联分析是发现特征之间的相互依赖关系,通常是在给定的数据集中发现频繁出现的模式知识(又称为关联规则)。离群点(Outlier)检测:离群点检测就是发现与众不同的数据。演化(Evolving)分析:演化分析就是对随时间变化的数据对象的变化规律和趋势进行建模描述。序列模式(SequentialPattern)挖掘:序列模式挖掘是指分析数据间的前后序列关系,包括相似模式发现、周期模式发现等。如何挖掘数据?课本在此处提到了数据挖掘与知识发现,并将两者的步骤都列了出来:
知识发现:数据清洗(datacleaning),其作用是清除数据噪声和与挖掘主题明显无关的数据。数据集成(daraintegration),其作用就是将来自多个数据源中的相关数据组合到一起。数据选择(dataselection),其作用就是根据数据挖掘的目标选取待处理的数据。数据转换(datatransformation),其作用就是将数据转换为易于进行数据挖掘的数据存储形式。数据挖掘(datamining),其作用是利用智能方法挖掘数据模式或规律知识。模式评估(patternevaluation),其作用是根据一定评估标准,从挖掘结果中筛选出有意义的相关知识。知识表示(knowledgerepresentation),其作用是利用可视化和知识表达技术,向用户展示所挖掘的相关知识。数据挖掘:而数据挖掘则基本可以归纳为下面三个步骤:
数据收集→知识提取→辅助决策
从上面可以看到,数据挖掘只是属于知识发现的一部分,其侧重点还是挖掘数据的内在联系或者相应表现出来的客观规律。
习题:(我会相应的挑出课本里的一些具有代表性的习题发在下面,并自己做出相应的解答,有兴趣的朋友可以看看)
1.数据挖掘处理的对象有哪些?请从实际生活中举出至少三种。数据挖掘处理的对象非常之多,几乎存在于各行各业之中。比如全球连锁商店的各种售货信息、某城市各路段各个时段的交通情况、天文台记录的各种天文数据、气象局存储的温度湿度等各种信息。
2.讨论下列每项活动是否是数据挖掘任务。(1)根据性别划分公司的顾客。
不是,这是将全部的数据进行分类,并非寻找有用的信息。
(2)根据可盈利性划分公司的顾客。
不是,理由同(1)。
(3)计算公司的总销售额。
不是,数据挖掘要是只要算个总数的话我也不会挂了。
(4)按学生的标识号对学生数据库排序。
不是,这属于数据库的查询操作,并非数据挖掘。
(5)预测掷一对骰子的结果。
不是,表面上这个预测是要建模统计分析,但是如果仅看摇出骰子的组合,而不是看两个骰子之和,那么所有概率是一样的。
(6)使用历史记录预测某公司未来的股票价格。
是。属于演化分析,需要从数据中找寻规律建模分析。
(7)监测病人心率的异常变化。
是。属于离群点检测,寻找与众不同的数据。
(8)监测地震活动的地震波。
是,同样需要寻找与众不同的数据。
(9)提取声波的频率。
不是,题目意思是计算声波频率。
以上就是《数据挖掘原理与实践》第一章的知识要点,我将在下一篇博客中叙述数据处理的基础,包括数据和数据集的类型以及分箱算法。
浅谈数据挖掘与机器学习
引言在大多数非计算机专业人士以及部分计算机专业背景人士眼中,机器学习(DataMining)以及数据挖掘(MachineLearning)是两个高深的领域。在笔者看来,这是一种过高”瞻仰“的习惯性错误理解(在这里我加了好多定语)。事实上,这两个领域与计算机其他领域一样都是在融汇理论和实践的过程中不断熟练和深入,不同之处仅在于渗透了更多的数学知识(主要是统计学),在后面的文章中我会努力将这些数学知识以一种更容易理解的方式讲解给大家。本文从基本概念出发浅析他们的关系和异同,不讲具体算法和数学公式。希望对大家能有所帮助。
几个相关示例首先,给大家列举一些生活中与数据挖掘、机器学习相关的应用示例以帮助大家更好的理解。
示例1(关联问题):经常去超市的同学可能会发现,我们事先在购物清单上列举好的某些商品可能会被超市阿姨摆放在相邻的区域。例如,面包柜台旁边会摆上黄油、面条柜台附近一定会有老干妈等等。这样的物品摆放会让我们的购物过程更加快捷、轻松。
那么如何知道哪些物品该摆放在一块?又或者用户在购买某一个商品的情况下购买另一个商品的概率有多大?这就要利用关联数据挖掘的相关算法来解决。
示例2(分类问题):在嘈杂的广场上,身边人来人往。仔细观察他们的外貌、衣着、言行等我们会不自觉地断论这个人是新疆人、东北人或者是上海人。又例如,在刚刚结束的2015NBA总决赛中,各类权威机构会大量分析骑士队与勇士队的历史数据从而得出骑士队或者勇士队是否会夺冠的结论。
在上述第一个例子中,由于地域众多,在对人进行地域分类的时候这是一个典型的多分类问题。而在第二个例子中各类机构预测勇士队是否会战胜骑士队夺冠,这是一个二分类问题,其结果只有两种。二分类问题在业界的出镜率异常高,例如在推荐系统中预测一个人是否会买某个商品、其他诸如地震预测、火灾预测等等。
示例3(聚类问题):”物以类聚,人以群分“,生活中到处都有聚类问题的影子。假设银行拥有若干客户的历史消费记录,现在由于业务扩张需要新增几款面对不同人群的理财产品,那么如何才能准确的将不同的理财产品通过电话留言的方
数据挖掘的理论基础
应该如何完整地理解“数据挖掘”?“数据挖掘”的理论基础是什么?现实中人类的社会和经济活动,总可以用数据(数字或者符号)来描述和记录;经过对这些数据的分析,就会产生信息(知识);用这些信息(知识)来指导实践,就可以做出相应的决策;这些决策又引发了新一轮的社会和经济活动。循环往复,生息不止。
那么数据仓库(DW)、商务智能(BI)和知识发现(KDD)又分别是什么呢?
第一是因为上述概念诞生初始,在DM的价值链上还是有所侧重的,数据仓库重在“建仓”,数据挖掘和知识发现重在“加工”,商务智能重在“应用”。虚线表示曾经拥有。
第二,如果不这样画,理论界、应用厂商会不答应,因为不管原来是做数据库的(IBM,Sybase,NCR,Oracle,Microsoft,etc),还是做统计分析软件的(SAS,Statistica,SPSS,etc),甚至是做报表工具的(BO,Brio,Cognos,etc),都拼命在延伸自己的价值链。
所以,干脆叫数据管理(也就是DM)好了,一统天下。
至于ERP,CRM等,说白了,还是个DM,只不过限制在了具体的社会经济活动上罢了。
六种挖掘武器
数据仓库的建设和数据挖掘建模是DM价值链上的两大技术要点。数据挖掘从狭义的角度讲,只管从数据到知识这一段。作为一个数据挖掘人员的起码要求,就是充分掌握各种挖掘工具的性能、局限、应用条件等。
一般说来,数据挖掘有如下六件武器:描述统计、关联和相关、分类和聚类、预测、优化、结构方程模型。简要说明如下:
(1)描述统计(Deivestatistics)
描述统计是数据挖掘的入门兵器,直观、简单,高手常常用来摘叶飞花。描述统计包括平均数、中位数、众数、分位数、百分比、求和等。描述统计经常和统计图(如直方图,条形图,线图,散点图,茎叶图等)配合使用。目前应用最为广泛的OLAP,究其本质就是针对不同的数据群在做描述统计。
描述统计的应用十分广泛:比如当月公司利润总额,比较不同区域的销售量等等。
(2)关联和相关(AssociationandCorrelation)
关联规则从本质上讲是条件概率:A发生时,B同时也出现的概率是多大?只要B离50%较远,就是有意义的。
关联规则的一个典型的现代应用是“啤酒加尿布”。在应用关联规则时还需要多考虑的一个问题是:这条规则遵循者的数量怎样?通俗的说就是,如果超市的尿布只有一个人买(假设),但是这人每次买尿布时,一定会买啤酒。尽管这条规则很可信(100%),但是意义却不大。
在应用关联规则时,要注意两点:关联不一定是因果,关联是有方向的。
相关也是考虑两个事物之间的关系,典型的度量方法有Pearson相关系数和Kendall相关系数。
(3)分类和聚类
分类和聚类是最常用的技术。
一般说来,分类的方法有三种:回归、决策树、神经网络。
聚类和分类的最大区别就是,分类是有监督的,聚类是无监督的。什么叫监督呢?就是标准,或者说有目标变量。聚类是没有目标的。“物以类聚,人以群分”。聚类是不知道每一类有什么特征的,聚后再总结,再发现共同点。
(4)预测
预测的常用方法是时间序列,回归也可以用来预测。
时间序列常用的方法有:ARMA,指数平滑和趋势外推等。时间序列的最大特点就是充分挖掘事物本身随时间的规律。因为,任何事物,比如企业销售额,在没有特别的外在因素影响下,总是有规可循的。
(5)优化
优化本是运筹学中的一个概念,主要解决的一个问题是在各种约束条件下,如何合理配置资源,使目标要素最大(小)化。
(6)结构方程模型
不同于以上应用,结构方程模型重点在于如何揭示事物内部的结构和相互作用的原理。比如,如何度量客户满意度?客户满意度与客户期望,产品,价格,服务,投诉处理和客户忠诚是什么关系?是怎么作用的?只有搞清楚了这些关系,才可能不断提高客户满意度和客户忠诚度。结构方程模型就起到这种作用。
数据如何完整呈现?
从应用的角度来说,DM不单是数据的组织或者呈现,也不仅是数据分析和统计建模,而是一个从理解业务需求、寻求解决方案到接受实践检验的完整的过程(Process)。
业界有许多指导项目实践的方法论,大同小异,以CRISP-DM为例。
CRISP-DM分成如下六个阶段:商业理解(BusinessUnderstanding),数据理解(DataUnderstanding),数据准备(DataPreparation),建模(Modeling),评估(Evaluation)和发布(Deployment)。
打个比方,譬如炒菜待客,商业理解就是了解顾客的口味;数据理解则是熟悉每一样原料可以炒什么菜;数据准备则是根据顾客的口味和厨师的经验,配菜,择菜和洗菜;而建模就全靠大厨炒菜的水平;到了评估阶段就是顾客品尝;如果满意则到了最后的阶段,作为招牌菜发布推广。DM的过程就是客户空腹而来,满意而归的完整的服务过程。
一个成功的DM项目,不仅可以面向操作层面,加强自动化;还可以面向决策层,优化决策。
实施计划细部署
根据NCR数据挖掘方法论,NCR将数据挖掘项目的实施划分为五个阶段,包括定义业务问题范围、选取和抽样、探索型数据分析、建模和实施。
1.定义业务问题范围:在这个初始阶段,需明确阐述项目目标和客户业务需求,目的是明确数据挖掘问题。任务包括:明确业务目标;定义响应变量;项目计划必要的调整。2.选取和抽样:在这个阶段,建模小组要搜寻并检查客户数据,作为以后分析挖掘时所用变量的简略一览表。同时从数据总体中抽样生成训练集、验证集和测试集。任务包括:数据来源、数据映射、准备数据评估、数据的必要聚合、数据抽样。
3.探索型数据分析(数据探索):在这个阶段中,建模小组核查目前的数据源,并且努力去发现在每个待选的自变量和目标变量之间是否有任何关系。通常,数值分析是全面理解数据的第一步,跟着进行的统计分析是为了得到有关数据分布的更好知识。在数据挖掘过程中这是一个关键的阶段。
任务包括:数据质量检查;数据的必要整理;通过图形化呈现工具和其他的统计方法理解数据;分析待选自变量和目标变量之间的关系;数据转换以辅助数据的分析;数据派生为建立模型做准备;整理和呈现数据探索的发现。
4.建模:在这个阶段,建模小组建立并确认挖掘模型。建模小组通常尝试不同的建模技术或结合不同数据集,并衡量模型性能的不同,选出最好的。来自最终用户的业务领域知识在这个阶段是非常关键的,因为他们可以评价和确认模型的结果、理解发现并付诸实际行动。
任务包括:为模型的训练和验证准备数据集;在模型的建立中使用适当的建模技术;针对不同的建模技术测试模型性能;必要地精炼挖掘模型;和主题专家一起检验挖掘模型;记录挖掘模型和结果。
5.实施:在这个阶段,需要用模型的结果来帮助做出业务决定、战略设计和战术实施。收集实施结果反馈,为模型的退化进行侦测,更进一步改善模型性能。在利用模型的结果时,复杂的展示层界面通常是不必要的。数据挖掘过程的自动化是CRM(客户关系管理)的解决方案中不可或缺的一部分,因此是与典型的数据挖掘分开实施的项目。
任务包括:客户模型评分和存储模型结果,性能跟踪和进一步整合其它业务系统;数据挖掘过程的自动化是单独的项目;模型结果的现场测试是单独的项目。
数据挖掘项目的项目计划会涵盖以上的各个阶段,但完成整个项目所需的时间则要根据多个关键因素而定,如挖掘专题的复杂程度、客户对挖掘结果性能评定的期望、可用的数据完备性及数据质量、项目人力资源是否充足以及人员能力等等。如表1是为期二个月(40个工作日)的数据挖掘项目计划,可以作为其他挖掘项目制定计划的参考基准。
从表1的项目计划可以看出,数据挖掘项目需要参与的成员或角色有:数据挖掘专家、PDM(产品数据管理)建模人员、ETL开发人员和应用开发人员。同时需要熟悉业务的人员以及熟悉数据仓库PDM的人员予以支持。
本文转自BlogJava新浪blog的博客,原文链接:数据挖掘的理论基础,如需转载请自行联系原博主。