前言在介绍了数据挖掘的一般流程、常用方法、应用功能和数据可视化之后,在本篇博文中,笔者想要分享一些在数据挖掘开始之前要做的一些事——数据预处理。在第二部分中,笔者整理了数据挖掘中的十大经典算法,与读者们共享。两部分分别从《数据挖掘中数据预处理的方法与技术》一文与网络中引用而来,作为自己和读者朋友们的学习笔记。在第三部分阶段小结中,笔者对近期的学习进行了阶段性的总结。 一、数据预处理现实中数据大多数都是不完整、不一致的,无法直接进行数据挖掘,或直接影响了挖掘结果。为了提高数据挖掘质量和数据挖掘效率,产生了数据预处理技术。对数据进行预处理,不但可以节约大量的空间和时间而且得到的挖掘结果能更好地起到决策和预测作用。数据预处理一般包括:数据清理,数据集成,数据变换,数据归约等方法。这些数据预处理技术根据数据挖掘项目的需要和原始数据的特点,在数据挖掘之前有选择的单独使用或综合使用,可大大提高数据挖掘模式的质量,降低实际挖掘所需要的时间。数据预处理技术整理如下: 1、数据清理数据清理是数据预处理中最花费时间、最乏味的,但也是最重要的一步。该步骤可以有效地减少学习过程中可能出现相互矛盾的情况。数据清理主要处理缺失数据,噪声数据,识别、删除孤立点。数据清理的基本方法有: (1)缺失数据处理:目前最常用的方法是使用最可能的值填充缺失值,比如可以用回归、贝叶斯形式化方法工具或判定树归纳等确定缺失值。这类方法依靠现有的数据信息来推测缺失值,使缺失值有更大的机会保持与其他属性之间的联系。还有其他一些方法来处理缺失值,如用一个全局常量替换缺失值、使用属性的平均值填充缺失值或将所有元组按某些属性分类,然后用同一类中属性的平均值填充缺失值。如果缺失值很多,这些方法可能误导挖掘结果。如果缺失值很少,可以忽略缺失数据。 (2)噪声数据处理:噪声是一个测量变量中的随机错误或偏差,包括错误的值或偏离期望的孤立点值。目前最广泛的是应用数据平滑技术处理,具体包括:
2、数据集成数据集成就是将多个数据源中的数据合并存放在一个同一的数据存储(如数据仓库、数据库等)的一种技术和过程,数据源可以是多个数据库、数据立方体或一般的数据文件。数据集成涉及3个问题:
3、数据变换数据变换是采用线性或非线性的数学变换方法将多维数据压缩成较少维数的数据,消除它们在时间、空间、属性及精度等特征表现方面的差异。这方法虽然对原始数据都有一定的损害,但其结果往往具有更大的实用性。常见数据变换方法如下:
4、数据归约数据归约技术可以用来得到数据集的归约表示,它接近于保持原数据的完整性,但数据量比原数据小得多。与非归约数据相比,在归约的数据上进行挖掘,所需的时间和内存资源更少,挖掘将更有效,并产生相同或几乎相同的分析结果。几种数据归约的方法: (1)维归约:通过删除不相关的属性(或维)减少数据量。不仅压缩了数据集,还减少了出现在发现模式上的属性数目。通常采用属性子集选择方法找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性的原分布。属性子集选择的启发式方法技术有:
(2)数据压缩:应用数据编码或变换,得到原数据的归约或压缩表示。数据压缩分为无损压缩和有损压缩。比较流行和有效的有损数据压缩方法是小波变换和主要成分分析。小波变换对于稀疏或倾斜数据以及具有有序属性的数据有很好的压缩结果。主要成分分析计算花费低,可以用于有序或无序的属性,并且可以处理稀疏或倾斜数据。 (3)数值归约:通过选择替代的、较小的数据表示形式来减少数据量。数值归约技术可以是有参的,也可以是无参的。有参方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据。 有参的数值归约技术有以下 2 种:
无参的数值归约技术有 3 种:
(4)概念分层:通过收集并用较高层的概念替换较低层的概念来定义数值属性的一个离散化。概念分层可以用来归约数据,通过这种概化尽管细节丢失了,但概化后的数据更有意义、更容易理解,并且所需的空间比原数据少。对于数值属性,由于数据的可能取值范围的多样性和数据值的更新频繁,说明概念分层是困难的。数值属性的概念分层可以根据数据的分布分析自动地构造,如用分箱、直方图分析、聚类分析、基于熵的离散化和自然划分分段等技术生成数值概念分层。分类数据本身是离散数据,一个分类属性具有有限个不同值,值之间无序。一种方法是由用户专家在模式级显示地说明属性的部分序或全序,从而获得概念的分层;另一种方法是只说明属性集,但不说明它们的偏序,由系统根据每个属性不同值的个数产生属性序,自动构造有意义的概念分层。 5、小结在数据实际挖掘过程中,针对不同的数据源和数据挖掘目标,有选择的使用数据清理、数据集成、数据变换和数据归约等数据预处理方法和技术。它们的使用没有先后顺序的约束,某一种预处理可能需要循环多次进行,某一种预处理可能一次也不需要。尽管有多种数据预处理的方法和技术,但都不够成熟。所以,对数据挖掘中的数据预处理还需要做更进一步的深入研究。 二、数据挖掘十大经典算法国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.
三、阶段小结经历了一个星期数据挖掘的学习,笔者从一名只知数据挖掘其名而不知其为何物的本科低年级学生,成为一名初识BI和数据挖掘初学者,在学习这门学科的过程中体会到了发现和探索的乐趣。 坦白地说,一开始每天将自己的学习笔记发布博客分享给大家时,我的内心十分忐忑,一来作为一名初学者,缺少整体的知识结构,难免会出现逻辑混乱,整理不完全,甚至无法甄别网络上数据的真伪的情况;二来五篇博客中的大部分内容都是摘抄与笔记,原创的东西甚少,我害怕让浏览博客的读者重复阅读,耽误大家的时间。然而,在过程中,我逐渐地发现分享学习笔记型的博客亦有其独特的长处:整理笔记发布博客的过程既让我反复核实自己的笔记中是否有差错的存在(用所学的知识就是数据预处理),又获得了一个结交志同道合伙伴的途径。当然,在五篇的学习笔记中仍然不免存在着个人能力暂时无法企及的差错,我希望自己尽力完善,同时也恳请读者们不吝指教与多多包涵。 说回到BI与数据挖掘本身,BI从被提出至今只有二十年的时间,数据挖掘的历史也并不漫长,但在大数据时代的今天,数据挖掘已经成为发展的潮流与趋势。马云曾说过,“这是一个变化的年代,当很多人还没有搞懂PC互联网的时候,移动互联网来了,当很多人还没弄懂移动互联网,大数据来了。”学习数据挖掘,无论是成为一个从业者,还是仅仅作为了解,都将让我们在如今的一个时代中不至于太过落后。在学习数据挖掘的过程中,逐渐了解了一些关于数据挖掘的历史、概念、流程、技术方法和应用实例,当然,对于数据挖掘的本质,此时尚不敢妄谈,大约是数据不再因果关系而更多地是相关关系,有待以后继续学习、验证、体悟。 学习的过程中SmartBi软件公司的软件给予了我巨大的帮助,无论是电子表格版还是Smart Mining都在学习过程中让我对数据挖掘有了更直观的体验。软件的操作只简便令我享受其中。在本文中虽然介绍了数据挖掘的十大算法,但在使用Smart Mining的过程中我未曾写过一行代码(当然这和我现在的水平较低也有一定关系),软件将操作代码的封装和拖拽图标即可实现操作使得它变得极为简洁和易上手,尤其数据可视化的操作,图表的绘制之方便无疑让我在学习的过程中体会到了巨大的乐趣,获得了学习的动力。 总结的最后感谢撰写数据挖掘相关电子版文章、博客和百科词条等的作者们,有了你们我才能如此方便的学习数据挖掘的知识整理出这些笔记,感谢SMARTBI公司的徐晶副总裁和软件开发者们,有了你们我才有这次契机去接触、学习数据挖掘,感谢阅读过文章的读者们,你们的关注与鼓励是我不断前行的动力。 前言在介绍了数据挖掘的一般流程、常用方法、应用功能和数据可视化之后,在本篇博文中,笔者想要分享一些在数据挖掘开始之前要做的一些事——数据预处理。在第二部分中,笔者整理了数据挖掘中的十大经典算法,与读者们共享。两部分分别从《数据挖掘中数据预处理的方法与技术》一文...
|
|