1.数据挖掘简介
数据挖掘(Data Mining,DM)是指从大量的有噪声的、不完全的、模糊的和随机的数据中,提取出隐含在其中的事先不知道但具有潜在利用价值的信息的过程。主要包含以下几层含义:
1.数据必须真实的、大量且含有噪声的。
2.发现的是用户感兴趣的可以接受、理解、运用的知识。
3.仅支持特定的问题,并不要求放之四海而皆准的知识。
2.数据挖掘的主要任务
数据挖掘是通过分析每个数据,从大量数据中寻找其规律的技术。数据挖掘主要任务有关联分析、数据建模预测、聚类分析和离群点检测。
2.1关联分析
关联规则挖掘由 Rakesh Apwal 等首先提出。两个或两个以上变量的取值之间存在的规律称为关联。数据关联是数据库中存在的一类重要的和可被发现的知识。关联分为简单关联、时序关联和因果关联,关联分析的目的是找出数据库中隐藏的关联网。一般用支持度和可信度两个阈值度量关联规则的相关性,还不断引人兴趣度、相关性等参数,使所挖掘的规则更符合需求。
2.2数据建模预测
数据预测建模是指根据已知的数据构建出一个数据模型,然后应用这个模型对未知数据的所属分类进行预测,主要包括分类和回归两类问题。
2.2.1分类
分类用于预测离散的目标变量,建立一个从输人数据到分类标签的映射。常见的算法有决策树、最近邻分类、朴素贝叶斯分类、人工神经网络和支持向量机(Support Vector Machine,SVM)等。
1)决策树
决策树是一种树状结构,其中每个内部节点代表一个属性 上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。 决策树的生成算法有ID3、C4.5和CART算法等。
2)最近邻分类
寻找K个与目标数据最相似的已知数据,并根据这些e知数据的类别标签对目标数据的标签进行推断。
3)朴素贝叶斯分类
朴素贝叶斯分类是基于贝叶斯定理和特征独立假设的分类方法,是一种生成模型。它学习的不是如何判断数据的类别,而是产生数据的概率分布。基于此分布,由贝叶斯定理求出数据各类别的后验根率,从后验概率中选取一个最大的类别作为输出。朴素叶斯分类学习预测效率较高,实现方式简单。
4)人工神经网络
人工神经网络可近似任何分类函数,而且是人工假设最少的一种算法。为了降低求解难度,人工神经通常采用输入层、隐藏层、输出层3层神经网络。
5)支持向量机
支持向量机是按监督学习方式对数据进行二元分类的广义线性分类器。其决策边界是对学习样本求解的最大边距超平面。支持向量机具有理论上最佳的分类效果,可以很好地用于高维数据,而且分类速度很快。另外,它可以通过改变核函数,灵活地解决些线性不可分问题。
2.2.2回归
回归是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,常用于预测连续的目标变量。虽然分类和回归针对的预测目标不同,但两者都是通过训练一个模型,使目标变量预测值与实际值之间的误差达到最小。常见的回归方法有线性回归、逻辑回归、多项式回归等。
1)线性回归
线性回归是利用称为线性回归方程的最小平方函数对一个或多个 自变量和因变量之间的关系进行建模的一种回归分析。如果在线性回归中只包括一个 自变量和一个因变量,且它们的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析;如果包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
2)逻辑回归
逻辑回归是一种广义的线性回归分析方法,它仅在线性回归算法的基础上,利用Sigmoid函数对事件发生的概率进行预测。线性回归能对连续值的结果进行预测,而逻辑回归是机器学习从统计领域借鉴的另一种技术,用于分析二分类或有序的因变量与解释变量之间的关系。
3)多项式回归
多项式回归是一种用于研究一个因变量与一个或多个自变量间多项式的回归分析方法。自变量只有一个时,称为一元多项式回归;自变量有多个时,称为多元多项式回归。在一元回归分析中,如果因变量y与自变量x的关系为非线性的,但又找不到适当的函数曲线拟合,则可以采用一元多项式回归。
2.3聚类分析
聚类是把数据按照相似性归纳成若千类别,使同类中的数据彼此相似,不同类中的数据尽量相异,聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。基本的聚类分析方法主要有划分方法,层次方法,基于密度的方法和基于网格的方法。
1)划分方法
划分方法将给定的具有n个对象的集合构建数据的k个分区,其中每个分区表示一个簇。 也就是说,它把数据划分为k个分组,每个分组至少包含一个对象。大部分划分方法基于距高进行数据对象的划分。
2)层次方法
层次方法创建给定数据对象集的层次分解。根据层次分解的形成过程,层次方法分为凝聚(自底向上)的方法和分裂(自顶向下)的方法。
3)基于密度的方法
大部分划分方法根据对象间的距离进行聚类,因此只能发现球状簇。在基于密度的方法中,只要邻域中的密度超过某个阈值就进行簇的增长。这种方法可以用来过滤噪声或离群点,发现任意形状的簇。
4)基于网格的方法
基于网格的方法把对象空间量化为有限个单元,形成一个网络结构,所有聚类都在这个量化空间上进行。基于网格的方法处理速度很快,其处理时间通常独立于数据对象个数。
2.4离群点检测
离群点是指全局或局部范围内偏离一般水平的观测对象。离群点等异常值会对数据分析和数据挖掘产生不良影响。因此,重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。离群点检测在很多现实环境中都有很强的应用价值,如网络人侵检测、医疗处理和欺诈检测等。高群点检测方法主要包括基于统计的检测方法基于距离的检测方法、基于密度的检测方法和基于聚类的检测方法等。
1.基于统计的检测方法
先对变量做一个描述性统计,进而查看哪些数据是不合理的,如箱线图分析、平均值、最大最小值分析和统计学上的3σ法则。
2.基于距离的检测方法
通常可以在对象之间定义邻近性度量,异常对象是那些远离大部分其他对象的对象。基于距离的异常检测的代表算法有基于K近邻(K-Nearest Neighbor, KNN)的异常检测算法。
3.基于密度的检测方法
从基于密度的观点来看,离群点是在低密度区域中的对象。基于密度的离群点检测方法使用对象和其近邻的相对密度指示对象为离群点的可能性。其关键思想是把对象周围的密度与对象领域周围的密度进行比较。
4.基于聚类的检测方法
利用聚类检测离群点的方法是丢弃远离其他簇的小簇。这种方法可以与任何聚类技术一起使用,但是需要最小簇的大小及其与其他簇之间距离的阈值。通常,该过程可以简化为丢弃小于某个最小尺寸的所有簇。
3.数据挖掘的数据源
数据的基本形式主要有数据库数据、数据仓库、事务数据库和其他数据。
3.1数据库数据
数据库系统由一组内部相关的数据和用于管理这些数据的程序组成,通过软件程序对数据进行高效的存储和管理,并发、共享或分布式访问,并保证数据的完整性和安全性。
关系数据库是表的集合,每个表都被赋予一个唯一的名字。每个表包含一组属性(列或宇段) ,并通常存放大量元组(记录或行)。关系中的每个元组代表一个被唯一关键字标识的对象,并被一组属性值描述。语义数据模型,如实体-联系(Entity Relationship,ER)数据模型,将数据库作为一组实体和它们之间的联系进行建模,通常为关系数据库构造ER模型。关系数据库具有整体性和共享性的特点。
3.2数据仓库
数据仓库(DataWarehouse)是依照分析需求、分析维度和分析指标进行设计的,它是数据库的一种概念上的升级,也可以说是为满足新需求设计的一种新数据库,而这个数据库是需要容纳更多的数据,更加庞大的数据集。数据仓库一般具有 以下特征。
(1)数据仓库是一个从多个数据源收到的信息存储库,存放在相同的模式下,并且驻留在某个站点上。
(2)数据仓库通过数据清理、数据转换、数据集成、数据装人和定期数据刷新进行构造。
(3)数据仓库通常利用数据立方体的多维数据结构建模。其中,每个维度对应模式中的一个或一组属性,每个单元存放某种聚集度量值。
(4)通过提供多维数据视图和汇总数据的预结算,数据仓库非常适合联机分析处理(On-Line Analytical Processing,OLAP)。OLAP操作允许在不同的抽象层提供数据。
3.3事务数据库
事务数据库的每个记录代表一个事务,如一个航班的订票、顾客的一个交易等。通常,一个事务包含一个唯一的事务标识号(trans_ID)和一个组成事务的项的列表(如在商店购买的商品)。事务数据库可能有一些与之相关联的附加表,包括关于销售的其他信息,如事务的日期、顾客ID、销售者ID和销售分店等。
3.4其他类型数据
数据挖掘中还包含的其他类型数据如下。
(1)时间相关的数据和序列数据(如历史记录和股票交易数据等);
(2)数据流(视频监控和传感器数据);
(3)空间数据(地图);
(4)工程设计数据(系统部件和集成电路);
(5)超链接和多媒体数据(文本、图像、音频和视频);
(6)图数据和网络数据(社会和信息网络);
(7) Web数据(HTML等)。
4.数据挖掘中使用的技术
4.1统计学
统计学虽然是一门“古老”的学科,但它依然是最基本的数据挖掘技术,特别是多元统计分析,如判别分析、主成分分析、因子分析、相关分析和多元回归分析等。
4.2机器学习
机器学习是一门从数据中研究算法的多领域交叉学科,研究计算机如何模拟或实现人类的学习行为,根据已有的数据或以往的经验进行算法选择、构建模型以预测新数据,并重新组织已有的知识结构使之不断改进自身的性能。简而言之,就是计算机从数据中学习规律和模式,并应用在新数据上进行预测的任务。
机器学习是一种实现人工智能的方法。数据(Data)、学习算法(Learning Algorithm)和模型(Model)是机器学习三要素。机器学习的输人是数据,学到的结果叫作模型。从数据中训练模型这个过程通过执行某个学习算法完成。机器学习主要包括监督学习、无监督学习、半监督学习、主动学习和强化学习等。
1.监督学习
监督学习基本上是分类的同义词,主要指利用已知的某种特性的样本(x ,y)作为训练集,建立一个数学模型,求解f:x→y预测未知样本。监督学习又大致分为分类(Classilicatian)和回归(Regression)两类。
分类向题中的标签是离散值,如用户“购买”和“不购买”。如果标签只有两个值,则你为二分类;如果标签有多个值,则称为多分类。回归问题中的标签是连续值。例如,如果问题是预测北京市房屋的价格,价格作为标签就是一一个连续值,属于回归问题。
2.无监督学习
无监督学习(Unsupervised Learning)中的训练集数据只有工而没有标签y,目的是试图提取数据中隐含的结构和规律。常见的算法有K-Means、降维、文本处理(特征抽取)等。无监督学习一般作为监督学习的前期数据处理环节,功能是从原始数据集中抽取出必要的标签信息。
3.半监督学习
半监督学习(Semi-Supervised Learning)是前两者的结合,仅利用少量标注了的样本和大量未标注的样本进行训练和测试。半监督学习-般基于3种基本假设。
(1)平滑假设(Smoothness Assumption):位于稠密数据区域的两个距离很近的样例的类标签类似。
(2)聚类假设(Cluster Assumption): 当两个样例位于同一聚类簇时,它们很大概率有相同的类标签。
(3)流形假设(Manifold Assumption):将高维数据嵌人低维流形中,当两个样例位于低维流形中的一个小局部邻域内时,它们具有相似的类标签。
4.主动学习
主动学习(Active Learing)使用较少的训练样本获得性能较好的分类器。主动学习主要通过一定的算法在询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型提高模型的精确度.
5.强化学习
在强化学习Reinlorcement Laring)中输人数据作为对模型的反馈,不像监督模型那样,输人数据仅作为一个检查模型正确与否的方式。在强化学习中,输人数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统和机器人控制等.常用算法包括Q-Learming和时间差学习(Temporal Difference Lerning)等。
4.3数据库管理系统与数据仓库
数据库管理系统(Database Management System, DBMS)是一种操纵和管理数据库的大型软件,主要关注数据库的创建、维护和使用。数据库管理系统建立了数据建模、查询语言、查询处理与优化方法、数据存储及索引和存取方法,对数据库进行统一的管理和控制,以保证数据库的完整性和安全性。
数据仓库是面向主题的集成的与时问相关且不可修改的数据集合。数据仓库集成了来自多种数据源和各个时间段的数据,它在多维空间合并数据,形成部分物化的数据立方体。数据立方体不仅有利于多维数据库的OLAP ,而且推动了多维数据挖掘.
数据库主要用于事务处理,数据仓库主要用于数据分析,用途上的差异决定了两种架构的特点不同。
5.数据挖掘存在的主要 问题
目前,数据挖掘在很多领域取得了巨大成功,但依然存在一些具有挑战性的问题.
1.数据类型多样化
数据挖掘通常涉及各种不同的数据类型,即使相同类型的数据也可能具有不同的数据结构。因此,对这些不同数据类型和不同结构的数据的一致化是一项极具挑战性的工作。
2.噪声数据
在数据获取、存储与加工过程中,经常会出现数据中包含噪声、数据缺失甚至数据错误的情况。数据缺失会影响数据挖掘的性能,而噪声和数据错误可能导致错误的结果。同时,数据来源复杂,时效性也得不到保证。
.高维度数据
数据挖掘常常涉及高维度数据。传统算法在数据量小、数据维度低的情况下有较好的表现,但是随着数据量和数据维度激增,必须采取其他策略解决。
4.数据挖掘的可视化
数据挖掘通常会得到隐藏在数据中的规律或模式,但这些规律和模式不容易理解和解释。因此,往往要对分析挖掘的规律进行可视化。