数据挖掘(Data mining)是一个跨学科的计算机科学分支。它是用人工智能、机器学习、统计学和数据库的交叉方法在相对较大型的数据集中发现模式的计算过程。数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。除了原始分析步骤,它还涉及到数据库和数据管理方面、数据预处理、模型与推断方面考量、兴趣度度量、复杂度的考虑,以及发现结构、可视化及在线更新等后处理。数据挖掘是“数据库知识发现”(KDD)的分析步骤。
数据挖掘有以下这些不同的定义:
W. Frawley and G. Piatetsky-Shapiro and C. Matheus (Fall 1992). "Knowledge Discovery in Databases: An Overview". AI Magazine: pp. 213-228. ISSN 0738-4602
D. Hand, H. Mannila, P. Smyth (2001). "Principles of Data Mining". MIT Press, Cambridge, MA. ISBN 0-262-08290-X .
2 .“一门从大量数据或者数据库中提取有用信息的科学。”
尽管通常数据挖掘应用于数据分析,但是像人工智能一样,它也是一个具有丰富含义的词汇,可用于不同的领域。 它与KDD的关系是:KDD是从数据中辨别有效的、新颖的、潜在有用的、最终可理解的模式的过程;而数据挖掘是KDD通过特定的算法在可接受的计算效率限制内生成特定模式的一个步骤。 事实上,在现今的文献中,这两个术语经常不加区分的使用。
数据挖掘是因为海量有用数据快速增长的产物。使用计算机进行历史数据分析,1960年代数字方式采集数据已经实现。1980年代,关系数据库随着能够适应动态按需分析数据的结构化查询语言发展起来。数据仓库开始用来存储大量的数据。
因为面临处理数据库中大量数据的挑战,于是数据挖掘应运而生,对于这些问题,它的主要方法是数据统计分析和人工智能搜索技术。利用了来自如下一些领域的思想:(1) 来自统计学的抽样、估计和假设检验,(2)人工智能、模式识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、可视化和信息检索。一些其他领域也起到重要的支撑作用。特别地,需要数据库系统提供有效的存储、索引和查询处理支持。源于高性能(并行)计算的技术在处理海量数据集方面常常是重要的。分布式技术也能帮助处理海量数据,并且当数据不能集中到一起处理时更是至关重要。
(1)定义问题
该步骤包括分析业务需求,定义问题的范围,定义计算模型所使用的度量,以及定义数据挖掘项目的特定目标。这些任务转换为下列问题: · 您在查找什么? 您要尝试找到什么类型的关系? · 您要尝试解决的问题是否反映了业务策略或流程? · 您要通过数据挖掘模型进行预测,还是仅仅查找受关注的模式和关联? · 您要尝试预测哪个结果或属性? · 您具有什么类型的数据以及每列中包含什么类型的信息? 或者如果有多个表,则表如何关联?您是否需要执行任何清除、聚合或处理以使数据可用? · 数据如何分布? 数据是否具有季节性性质? 数据是否可以准确反映业务流程? 若要回答这些问题,可能必须进行数据可用性研究,必须调查业务用户对可用数据的需求。如果数据不支持用户的需求,则还必须重新定义项目。
常见的误区:很多人以为不需要事先确定问题和目标,只要对数据使用数据挖掘技术,然后再对分析挖掘后的结果进行寻找和解释,自然会找到一些以前我们不知道的,有用的规律和知识。
过程:业务调研->问题定位->制定目标->业务分析
(2)数据获取
根据定义,获取企业数据。
如果只用练习,直接选择网络数据集合
一般数据集是已经存在的或者至少知道如何获得的(访问某个资料库,网上过滤抓取需要的数据,问卷调查手动收集等)。数据集的选取对数据挖掘模式是否有趣起决定作用。一般的数据挖掘模式有频繁模式,用于预测分析的分类和回归模式,聚类分析模式等,代表着数据挖掘的某种目的。最开始做实验的时候并不知道自己想要做什么(一般都是现有数据集或者想法,再有数据挖掘),于是查看一些常见的数据集网站(下附),寻找自己感兴趣的数据集,毕竟兴趣是最好的老师,兴趣有了,数据挖掘才能开心地做下去。
UCI机器学习和智能系统 https://archive.ics.uci.edu/ml/datasets/
kdd 2015预测学堂在线退课率 https://www.kddcup2015.com/information.html
数据挖掘 数据集下载搜集整理版 http://blog.sina.com.cn/s/blog_5c9288aa01014a56.html
(4)数据预处理
选取了数据集之后,就开始对数据进行预处理使得数据能够为我们所用了。数据预处理提高数据质量:准确性、完整性和一致性,包括数据清理、数据集成、数据规约和数据变换方法。
忽略元组
人工填写缺失值
使用属性的中心度量填充
给定同一类所有样本的属性均值或中位数填充
最可能的值填充
实体识别
冗余和相关分析(卡方检验,相关系数,协方差等,用spss比较方便)
维规约(小波变换和主成分分析,最常用)
数量规约(较小的数据替代原始数据)
数据压缩(有损无损两种,尤其对于图像视频等多媒体常用)
数据变换:光滑,属性构造,聚集,规范化,离散化和概念分层。
特征工程作为模型的输入,决定了模型好坏的上限,是一个非常重要的部分。特征工程可分为人工特征与机器特征。人工特征指人为根据经验与技巧创建特征,这需要深刻理解业务,从实际角度出发,探索出好的特征;机器特征指模型直接生成的特征,如PCA、神经网络特征等。
在数据预处理部分,不同的人有不同的概念理解,比如有的人将数据清洗等工作直接看做特征工程的内容。虽然概念不同,但目的基本相同。数据预处理阶段就是将原始收集的粗糙数据通过各种方法转换为高质量的数据,作为模型的输入。
(5)模型选择
根据建模场景进行算法选择:如:描述类有分类规则、聚类分析,预测类有、神经网络、决策树、时间序列、回归分析、关联分析、贝叶斯网络、偏差检测,评估类有因子分析、主成分分析、数学公式;并结合数据情况(如离散值、连续值,数据量大小)等选择合适的算法。
根据数据挖掘模型算法的结构,将模型算法分为两类,基础学习模型和集成学习模型,基础学习模型就是我们常见的一些基础单一学习器模型,例如决策树、神经网络、支持向量机等,而另一种由多个单一基础学习模型结合起来形成更强的学习模型称为集成学习模型。
(6)模型评价
模型效果评价通常分两步,第一步是直接使用原来建立模型的样本数据来进行检验。假如这一步都通不过,那么所建立的决策支持信息价值就不太大了。一般来说,在这一步应得到较好的评价。这说明你确实从这批数据样本中挖掘出了符合实际的规律性。第一步通过后,第二步是另外找一批数据,已知这些数据是反映客观实际的、规律性的。这次的检验效果可能会比前一种差,差多少是要注意的,若是差到所不能容忍程度,那就要考虑第一步构建的样本数据是否具有充分的代表性,或是模型本身是否够完善。这时候可能要对前面的工作进行反思了。若这一步也得到了肯定的结果时,那所建立的数据挖掘模型应得到很好的评价了。
对预测模型和聚类模型的评价方法是不同的。
1.预测模型评价
预测模型对训练集进行预测而得出的准确率并不能很好地反映分类模型未来的性能,为了能预测一个分类模型在新数据上的性能表现,需要一组没有参与分类模型建立的数据集,并在该数据集上评估分类器的准确率,这组独立的数据集叫测试集。这是一种基于验证的评估方法,常用的方法有保持法、随机二次抽样、自助法、交叉验证等。
模型预测效果,通常用相对绝对误差、平均绝对误差、根均方差、相对平方根误差等指标来衡量。
2.聚类模型评价
聚类分群效果可以通过向量数据之间的相似度来衡量,向量数据之间的相似度定义为两个向量之间的距离(实时向量数据与聚类中心向量数据),距离越近则相似度越大,即该实时向量数据归为某个聚类。常用的相似度计算方法有:欧几里得距离法(Euclidean Distance)、皮尔逊相关系数法(Pearson Correlation Coefficient)、Cosine相似度和Tanimoto系数法。