数据挖掘基础
数据挖掘概述
什么是数据挖掘?
数据挖掘(Data Mining),就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
数据挖掘的数据源包括数据库、数据仓库、Web或其他数据存储库。
但是不是所有的信息发现任务都可以被称作是数据挖掘,比如在数据库里检索一条记录,属于信息检索(Information Retrieval)领域的任务。尽管也是从大量数据中检索有用的信息,但并不满足数据挖掘的概念
数据挖掘常用方法
在面对海量数据时,需要使用一定的算法,才能从中挖掘出有用的信息,下面介绍数据挖掘中常用的算法。
分类算法
-
决策树算法
决策树算法是一种典型的分类算法,首先利用已知分类的数据构造决策树,然后利用测试数据集对决策树进行剪枝,每个决策树的叶子都是一种分类,最后利用形成的决策树对数据进行分类。决策树的典型算法有ID3,C4.5,CART等。
生成决策树&决策树剪枝 -
贝叶斯分类算法
贝叶斯分类算法是统计学的一种方法,其中朴素贝叶斯算法在许多情况下可以与决策树和神经网络算法相媲美,而且方法简单,准确度高,速度快。贝叶斯算法是基于贝叶斯定理的,而贝叶斯定理假设一个属性值对给定类的影响独立于其它属性值,但这种假设在很多情况下是不成立的,因此为了降低这个假设的影响,产生了很多改进算法,比如TAN (tree augmented Bayes network)算法。
在朴素贝叶斯算法中,将每个样本数据分为n个属性,计算每个属性数据分类Ci的概率,找出概率的最大值,就计算出该属性最有可能属于哪一个类别。 -
支持向量机
支持向量机(support vector machine)是建立在统计学论的VC维理论的结构风险最小原理基础上,它在解决小样本,非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
聚类算法
聚类算法不同于分类算法,不会考虑类标号,这是因为在很多情况下,开始并不存在类标号。聚类算法可以根据最大化类内相似性、最小化类间相似性的原则进行聚类或分组,这样就形成了对象的簇,同一个簇内的数据具有较高的相似性,不同簇之间的数据具有较低的相似性。常见的分类算法有K-MEANS算法、K-MEDOIDS算法等。
关联规则
关联规则是形如X→Y的蕴涵式,X和Y分别称为关联规则的先导和后继。
关联规则一般分为两个阶段,第一阶段必须先从数据中找出所有高频项目组合,第二阶段再由这些高频项目组中产生关联规则。常用的关联规则算法有Apriori算法,FP-树频集算法等。
数据挖掘的常用工具
-
Weka软件
Weka(Waikato Environment for Knowledge Analysis)的全名是怀卡托智能分析环境,是一款免费与非商业化的数据挖掘软件,基于Java环境下开源的机器学习与数据挖掘软件。Weka的源代码可在其官方网站下载。它集成了大量数据挖掘算法,包括数据预处理、分类、聚类、关联分析等。用户既可以使用可视化界面进行操作,也可以使用Weka提供的接口,实现自己的数据挖掘算法。图形用户界面包括Weka Knowledge Flow Environment和Weka Explorer。用户也可以使用Java语言调用Weka提供的类库实现数据挖掘算法,这些类库存在于weka.jar中。 -
Clementine(SPSS) 软件
Clementine是SPSS所发行的一种资料探勘工具,集成了分类、聚类和关联规则等算法,Clementine提供了可视化工具,方便用户操作。其通过一系列节点来执行挖掘过程,这一过程被称作一个数据流,数据流上面的节点代表了要执行的操作。Clementine的资料可视化能力包含散布图、平面图及Web分析。 -
KNIME软件
KNIME (Konstanz InformationMiner) 是基于Eclipse开发环境来精心开发的数据挖掘工具,可以扩展使用Weka中的数据挖掘算法。和Clementine类似,KNIME使用类似数据流的方式实现数据挖掘过程,挖掘流程由一系列功能节点组成,每个节点有输入、输出端口,用于接收数据或模型、导出结果。 -
RapidMiner软件
RapidMiner在2015年KDnuggets 举办的第16届国际数据挖掘暨分析软件投票中位居第2,仅次于R语言。RapidMiner具有丰富的数据挖掘分析和算法功能,常用于解决各种商业关键问题,如:资源规划、营销响应率等等典型商业案例。 RapidMiner提供解决方案涉及多个行业、领域,如:生命科学、制造业、石油、保险、汽车、银行通讯等等。不过,它不支持分析流程图方式。 -
其它数据挖掘软件
目前流行的数据挖掘软件还有Orange,Keel等,Orange界面简洁,Knime可同时安装Weka和R扩展包,Keel可以为一系列数据运算提供算法。
数据探索
数据概述
属性
- 区分属性可通过属性可能取值的个数来判断。
- 离散的
- 连续的
- 非对称的属性
- 非对称的属性出现非零属性值才是重要的
数据集的一般特性
数据集一般具有三个特性,分别是维度、稀疏性和分辨率三个,它们对数据挖掘有重要影响。
维度:属性的数目。
稀疏性:数据集有非对称特性,一个对象的大部分属性上的值都是0。
分辨率:精确度。
较常见的数据类型
- 表格
- 点集
- 时间序列
- 图像
- 视频
- 网页
- 网络数据
数据质量
-
什么是测量误差和数据收集误差
测量误差是测量中测量结果与实际值之间的差值叫误差。
数据收集误差是指收集数据时遗漏数据对象或属性值,或包含了其他数据对象等情况。 -
什么是噪声
测量误差的随机部分。可能涉及值被扭曲或加入了不相关的对象。 -
什么是精度和准确率
精度(同一个基本量)重复测量值之间的近似程度,一般用值集合的标准差度量。
准确率从实验角度是指在一定实验条件下的多个测定值中,满足限定条件的测定值所占的比例,常用符合率来表示。 -
遗漏
删除数据对象或属性
估计遗漏值 -
离群点
离群点又称歧义值或异常值,离群点从数理统计角度是指一个时间序列中,远离序列的一般水平的极端大值和极端小值。 -
重复数据
两个对象实际是同一个对象。
需要避免发生两个相似不重复的数据对象。
- 时效性:数据过时,例如顾客的购买行为只代表邮箱时间内的真是情况。
- 相关性:包含应用苏需要的所有信息,例如交通事故分析。
数据预处理
-
聚集
聚集是将两个或多个对象合并成单个对象。 -
抽样
抽样方法
渐进抽样 -
维归约
把属性合并到一起 -
维灾难
数据维度增加的同时数据分析也变得困难 -
维归约的线性代数技术
- 对高维度空间进行降维
- 主成分分析
数据挖掘应用
数据挖掘应用
就目前而言,大数据的来源是通过各种数据采集器、数据库、开源的数据发布、GPS信息、网络痕迹(搜索记录、购物等)、传感器收集、用户保存等等结构化、半结构化、非结构化的数据。
数据挖掘发展趋势:
第一,语言标准化,使语言描述形式化、标准化。
第二,实施标准化,即真正的可视化数据挖掘,在知识发现过程人机交互更便捷。
第三,Web数据挖掘,建立DMKD(数据挖掘和知识发现)服务器。
第四,实现多媒体数据挖掘,多媒体数据是一种多维的、半结构化、非结构化等形式的数据。
数据挖掘需要解决什么问题
在面对大量非结构、半结构数据集带来的问题时,传统的数据分析技术、方法常常遇到很多的问题甚至是困境,这也是要进行真正数据挖掘需要解决的问题。
-
算法延展性
算法延展性即为算法弹性,随着数据产生、采集技术的快速进步,以GB、TB、PB(1GB=1024MB,1TB=1024GB,1PB=1024TB)为单位的数据集越来越普遍。 -
高维性
在以前的数据库构成中只有少量属性的数据集,现在大数据集群构成中是具有成百上千属性的数据集。 -
多种而复杂数据
在传统数据分析方法里只处理包含相同类型属性的数据集,或者是连续的,或者是分类的。 -
数据的所有权与分布
现在经常会有这样的状况,需要分析的数据并非存放在一个站点,或归属一个机构,而是地理或空间分布在属于多个机构的资源中。这就需要开发和应用分布式数据挖掘技术。 -
非传统的分析
统计方法的传统方法是基于先提出一种假设然后检验,即提出一种假设,再设计实验来收集数据,然后以假设为基础分析数据。
数据挖掘的应用场景
对应应用场景 | 模式 |
---|---|
商业数据挖掘应用场景 | 在销售策略制定中,可以通过数据挖掘产品之间的关联性,从中发现产品销售中预期不到的模式 |
智慧交通数据挖掘应用场景 | 电子地图导航应用。将用户出行数据进行分析,从而可以预测不同城市之间的人口迁移情况,或者某个城市内群体出行的态势 |
金融行业数据挖掘应用场景 | 金融行业是一个数据挖掘应用凸显经济价值的领域,数据挖掘的应用能帮助金融行业突破其传统模式的弊端 |
医疗行业数据挖掘应用场景 | 预测建模 新药物研发阶段的医药公司,通过数据建模、分析,找到最有效的投入产出比例,使资源获得最佳组合 |
农业数据挖掘应用场景 | 数据挖掘时代,农民也在使用移动设备管理农场,以方便掌握实时的土壤、温度、作物状况等信息,提高了农场管理的精确性 |
气象数据挖掘应用场景 | 通过对气象数据挖掘,天气预报的准确性、时效性都有了极大的提高,同时对重大自然灾害的预警及精确掌握了解危害等级等等,这些都能帮助人们最大限度的减少自然灾害带来的危害 |