学习笔记5:数据预处理与数据挖掘十大经典算法序言在简介了数据挖掘的一般流程、常用措施、应用功效和数据可视化之后,在本篇博文中,笔者想要分享某些在数据挖掘开始之前要做的某些事——数据预处理。在第二部分中,笔者整顿了数据挖掘中的十大经典算法,与读者们共享。两部分分别从《数据挖掘中数据预处理的措施与技术》一文与网络中引用而来,作为自己和读者朋友们的学习笔记。在第三部分阶段小结中,笔者对近期的学习进行了阶段性的总结。一、数据预处理现实中数据大多数都是不完整、不一致的,无法直接进行数据挖掘,或直接影响了挖掘成果。为了提升数据挖掘质量和数据挖掘效率,产生了数据预处理技术。对数据进行预处理,不但能够节约大量的空间和时间并且得到的挖掘成果能愈加好地起到决议和预测作用。数据预处理一般包括:数据清理,数据集成,数据变换,数据归约等措施。这些数据预处理技术依照数据挖掘项目标需要和原始数据的特点,在数据挖掘之前有选择的单独使用或综合使用,可大大提升数据挖掘模式的质量,减少实际挖掘所需要的时间。数据预处理技术整顿如下:1、数据清理数据清理是数据预处理中最花费时间、最乏味的,但也是最重要的一步。该步骤能够有效地减少学习过程中也许出现相互矛盾的情况。数据清理重要处理缺失数据,噪声数据,识别、删除孤立点。数据清理的基本措施有:(1)缺失数据处理:目前最常用的措施是使用最也许的值填充缺失值,例如能够用回归、贝叶斯形式化措施工具或判定树归纳等确定缺失值。此类措施依托既有的数据信息来推测缺失值,使缺失值有更大的机会保持与其他属性之间的联系。尚有其他某些措施来处理缺失值,如用一个全局常量替代缺失值、使用属性的平均值填充缺失值或将所有元组按某些属性分类,然后用同一类中属性的平均值填充缺失值。假如缺失值诸多,这些措施也许误导挖掘成果。假如缺失值极少,能够忽视缺失数据。(2)噪声数据处理:噪声是一个测量变量中的随机错误或偏差,包括错误的值或偏离期望的孤立点值。目前最广泛的是应用数据平滑技术处理,详细包括:分箱技术,将存储的值分布到某些箱中,用箱中的数据值来局部平滑存储数据的值。详细能够采取按箱平均值平滑、按箱中值平滑和按箱边界平滑;回归措施,能够找到恰当的回归函数来平滑数据。线性回归要找出适合两个变量的“最佳”直线,使得一个变量能预测另一个。多线性回归包括多个变量,数据要适合一个多维面;计算机检查和人工检查结合措施,能够通过计算机将被判定数据与已知的正常值比较,将差异程度不小于某个阈值的模式输出到一个表中,然后人工审核表中的模式,识别出孤立点;聚类技术,将类似的值组织成群或“聚类”,落在聚类集合之外的值被视为孤立点。孤立点也许是垃圾数据,也也许为我们提供重要信息。对于确认的孤立点垃圾数据将从数据库中予以清除。2、数据集成数据集成就是将多个数据源中的数据合并存储在一个同一的数据存储(如数据仓库、数据库等)的一个技术和过程,数据源能够是多个数据库、数据立方体或一般的数据文献。数据集成包括3个问题:模式集成。包括实体识别,即怎样将不一样信息源中的实体匹配来进行模式集成。一般借助于数据库或数据仓库的元数据进行模式识别;冗余数据集成。在数据集成中往往导致数据冗余,犹如一属性数次出现、同一属性命名不一致等。对于属性间冗余,能够先采取有关性分析检测,然后删除;数据值冲突的检测与处理。因为表示、百分比、编码等的不一样,现实世界中的同一实体,在不一样数据源的属性值也许不一样。这种数据语义上的歧义性是数据集成的最大难点,目前没有很好的措施处理。3、数据变换数据变换是采取线性或非线性的数学变换措施将多维数据压缩成较少维数的数据,消除它们在时间、空间、属性及精度等特性体现方面的差异。这措施虽然对原始数据都有一定的损害,但其成果往往具备更大的实用性。常见数据变换措施如下:数据平滑:清除数据中的噪声数据,将连续数据离散化,增加粒度。一般采取分箱、聚类和回归技术。数据聚集:对数据进行汇总和聚集。数据概化:减少数据复杂度,用高层概念替代。数据规范化:使属性数据按百分比缩放,使之落入一个小的特定区域;常用的规范化措施有最小---最大规范化、z—score规范化、按小数定标规范化等。属性结构:结构出新的属性并添加到属性集中,以协助挖掘过程。应用实例表白,通过数据变换可用相称少的变量来捕捉原始数据的最大变化。详细采取哪种变换措施应依照包括的有关数据的属性特点而定,依照研究目标可把定性问题定量化,也可把定量问题定性化。4、数据归约数据归约技术能够用来得到数据集的归约表示,它接近于保持原数据的完整性,但数据量比原数据小得多。与非归约数据相比,在归约的数据上进行挖掘,所需的时间和内存资源更少,挖掘将更有效,并产生相同或几乎相同的分析成果。几个数据归约的措施:(1)维归约:通过删除不有关的属性(或维)减少数据量。不但压缩了数据集,还减少了出目前发觉模式上的属性数目。一般采取属性子集选择措施找出最小属性集,使得数据类的概率分布尽也许地接近使用所有属性的原分布。属性子集选择的启发式措施技术有:逐渐向前选择,由空属性集开始,将原属性集中“最佳的”属性逐渐填加到该集合中;逐渐向后删除,由整个属性集开始,每一步删除目前属性集中的“最坏”属性;向前选择和向后删除的结合,每一步选择“最佳的”属性,删除“最坏的”属性;判定树归纳,使用信息增益度量建立分类判定树,树中的属性形成归约后的属性子集。(2)数据压缩:应用数据编码或变换,得到原数据的归约或压缩表示。数据压缩分为无损压缩和有损压缩。比较流行和有效的有损数据压缩措施是小波变换和重要成份分析。小波变换对于稀疏或倾斜数据以及具备有序属性的数据有很好的压缩成果。重要成份分析计算花费低,能够用于有序或无序的属性,并且能够处理稀疏或倾斜数据。(3)数值归约:通过选择替代的、较小的数据表示形式来减少数据量。数值归约技术能够是有参的,也能够是无参的。有参措施是使用星空智能科技一个模型来评定数据,只需存储参数,而不需要存储实际数据。有参的数值归约技术有如下2种:①回归:线性回归和多元回归;②对数线性模型:近似离散属性集中的多维概率分布。无参的数值归约技术有3种:①直方图:采取分箱技术来近似数据分布,是一个流行的数值归约形式。其中V-最优和MaxDiff直方图是最精准和最实用的;②聚类:聚类是将数据元组视为对象,它将对象划分为群或聚类,使得在一个聚类中的对象“类似”,而与其他聚类中的对象“不类似”,在数据归约时用数据的聚类替代实际数据;③选样:用数据的较小随机样本表示大的数据集,如简单项选择样、聚类选样和分层选样等(4)概念分层:通过搜集并用较高层的概念替代较低层的 概念来定义数值属性的一个离散化。概念分层能够用来归 约数据,通过这种概化尽管细节丢失了,但概化后的数据 更故意义、更轻易了解,并且所需的空间比原数据少。对 于数值属性,因为数据的也许取值范围的多样性和数据值 的更新频繁,阐明概念分层是困难的。数值属性的概念分 层能够依照数据的分布分析自动地结构,如用分箱、直方 图分析、聚类分析、基于熵的离散化和自然划分分段等技 术生成数值概念分层。分类数据自身是离散数据,一个分 类属性具备有限个不一样值,值之间无序。一个措施是由 用户教授在模式级显示地阐明属性的部分序或全序,从而 取得概念的分层;另一个措施是只阐明属性集,但不阐明 它们的偏序,由系统依照每个属性不一样值的个数产生属 性序,自动结构故意义的概念分层。5、小结在数据实际挖 掘过程中,针对不一样的数据源和数据挖掘目标,有选择 的使用数据清理、数据集成、数据变换和数据归约等数据 预处理措施和技术。它们的使用没有先后次序的约束,某 一个预处理也许需要循环数次进行,某一个预处理也许一 次也不需要。尽管有多个数据预处理的措施和技术,但都 不够成熟。因此,对数据挖掘中的数据预处理还需要做更 深入的深入研究。二、数据挖掘十大经典算法国际权威的 学术组织the IEEE International Conference on Data Mining (ICDM) 12 月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. C4.5 算法:是ID3 算法的扩展,它能够产生用决议树表示 的分类器,并且它还能够通过愈加轻易了解的规则集形式 来表示分类器。K-means 算法:是一个简单的迭代算法,它 能够将给定的数据集划分为用户定义的聚簇数目。SVM支 持向量机:在机器学习应用中,支持向量机被考虑为很重 要的一个尝试——在所有知名的算法中,它提供了一个稳 定准确的措施。它拥有强大的理论基础,只需要少数示例 进行训练,并且对数据集维度数量不敏感。另外,训练 SVM的有效措施已经得到迅速地发展。Apriori 算法:最流 行的数据挖掘措施之一就是从交易数据集中寻找频繁项 集,并且产生关联规则。寻找频繁项目集是非平凡的,因 为它存在组合爆炸的问题。一旦取得到频繁项目集,就能 够直接依照用户定义的置信度产生关联规则。Apriori 算法 是一个采取候选集措施寻找频繁项目集。它是一个使用反 单调性的完全层次搜索算法。假如一个项目集是非频繁 的,那么它的任何超集都是非频繁的。EM算法:有限混合 分布提供一个灵活的,基于数学的建模和聚类数据集措 施。常见的混合模型能够用来聚类连续数据和预测潜在的 密度函数。这些混合模型能够通过最大似然的期望最大化 算法来进行拟合。PageRank 算法:是一个使用互联网上的 超链接的搜索排序算法。PageRank 基本的措施是,越是重 要的文献链接一个文献,则这个文献就越重要,但那些入 站链接并不是被平等计算的。首先,假如其他高等级的文 献连接到它,那么依照PageRank 的规则,此文献的等级也 高。AdaBoost:集成学习是应用多个学习器来处理问题。 一般来说,集成学习的能力较单个学习器的效果更优。因 此,集成学习措施具备很强的吸引能力。AdaBoost 措施是 最重要的集成学习算法之一,它拥有牢靠的理论基础,预 测非常准确,并且简单和易于实现。KNN分类算法:是通 过在数据集中寻找与测试对象最近的k 个对象。并且,预先 定义类别标签。KNN有三个重要的核心元素:标识对象集 合,对象之间的相同性度量或者距离度量,最近邻居个数 K。为了辨别没有标识的对象,计算对象与标识对象之间的 距离。从而,识别k 个最近邻居。这些最近邻居的类别标签 被用来决定对象的类别标签。朴素贝叶斯:发源于古典数 学理论,有着坚实的数学基础,以及稳定的分类效率。同 时,NBC 模型所需估量的参数极少,对缺失数据不太敏 感,算法也比较简单。理论上,NBC 模型与其他分类措施 相比具备最小的误差率。不过实际上并非总是如此,这是 因为NBC 模型假设属性之间相互独立,这个假设在实际应 用中往往是不成立的,这给NBC 模型的正确分类带来了一 定影响。CART:包括分类树和回归树两部分:分类树的成 果变量是分类变量,回归树的成果变量是连续变量。CART 是一个树型结构,由树结和连线组成,在末端的树结又称 为终止结。CART 可分析同质性较差的数据,采取替代变量 的措施处理缺失数据问题,不要求数据的分布,可同时利 用各种类型的数据。三、阶段小结经历了一个星期数据挖 掘的学习,笔者从一名只知数据挖掘其名而不知其为何物 的本科低年级学生,成为一名初识BI 和数据挖掘初学者, 在学习这门学科的过星空智能科技程中体会到了发觉和探索的乐趣。坦 白地说,一开始天天将自己的学习笔记公布博客分享给大 家时,我的内心十分忐忑,一来作为一名初学者,缺乏整 体的知识结构,难免会出现逻辑混乱,整顿不完全,甚至 无法甄别网络上数据的真伪的情况;二来五篇博客中的大 部分内容都是摘抄与笔记,原创的东西甚少,我胆怯让浏 览博客的读者重复阅读,耽搁大家的时间。然而,在过程 中,我逐渐地发觉分享学习笔记型的博客亦有其独特的优 点:整顿笔记公布博客的过程既让我重复核算自己的笔记 中是否有差错的存在(用所学的知识就是数据预处理), 又取得了一个结交志同道合作伴的途径。当然,在五篇的