摘要: 本文是一份针对初学者介绍数据挖掘的笔记📒,涵盖了什么是数据挖掘、数据挖掘流程、数据挖掘的应用。笔记源自大数据学习实践课(中级),其中的配图来自:课程ppt或者当时听课自制的思维导图🍃每当面对专业迷茫时,大数据导论的大饼🫓总是让我遐想拥有改变世界的能力hhh…
一、什么是数据挖掘
1.定义
数据挖掘(Data mining,简称DM)是指从大量的数据中通过算法搜索隐藏于其中信息的过程。由于数据挖掘通常存在于数据库中,因此人们又称之为“数据库中知识发现”。数据挖掘是一个过程,而非单纯的数学建模。
- 数据挖掘是一个以数据为中心的循序渐进的螺旋式的数据探索过程;
- 数据挖掘是各种分析方法的集合,是多种数据分析、处理方法的配合应用;
- 数据挖掘的最终目的是辅助决策;
- 当前数据挖掘系统具有分析海量数据的能力。
2.数据挖掘的功能
- 描述:挖掘的任务是描述目标数据的特征(分类)
- 预测:根据当前数据预测未来
3.数据挖掘与数据仓库
数据仓库的应用:数据统计分析、数据挖掘、OLAP分析
- 根据数据存在方式,用于数据挖掘的数据可以是数据库、数据仓库、文本、多媒体数据源等等;
- 由于企业数据仓库系统就是面向数据统计、分析应用的,因此数据挖掘一般依赖于企业数据仓库系统的数据;
- 从数据仓库的角度看,数据挖掘可以看做是数据仓库高阶段的OLAP分析。
4.数据挖掘的应用价值
只要有数据的地方就可能进行数据挖掘,尤其是在云计算、互联网、大数据技术发展的今天,海量数据被收集、处理、存储,为数据挖掘提供啦可能。
典型的数据挖掘应用如下:
- 商业智能(Business Intelligence,简称:BI):通过数据挖掘指导企业运营、决策支持、数据价值化,是企业发展的重要力量。
- Web搜索引擎:这是海量数据实时应用的处理过程,基于数据挖掘技术,为用户迅速返回所有搜寻的信息,基于此,数据的价值得到了最大体现。
5.数据挖掘常用算法概述
数据挖掘技术的基本任务主要体现在关联规则、分类、回归、聚类等几个方面
6.什么是关联
关联的基本介绍
关联
(a 自然界中某种事物发生时其他事物也会发生,则这种联系称之为关联
(b 反映事件之间依赖或关联的知识称为关联知识(又称依赖关系)关联的类型
简单关联、时序关联、因果关联关联规则
(a 关联规则是两个或多个变量取值之间存在的一类重要的可被发现的某种规律
(b 比如人们在购物时喜欢同时1买牛奶和面包,牛奶和面包这种商品中存在着某种关联
举例说明
概念说明
重要测度指标
关联规则的类别
关联分析算法常见的四类划分方式:基于变量类型的方法、基于抽象层次的方法、基于数据维度的方法、基于时间序列的方法。
- 基于规则中处理的变量的类型
(a.布尔型:
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系。代表算法Apriori。
🌰:尿不湿=>啤酒
(b.数值型:
可以和多维关联或多层关联规则结合起来,可包含布尔型。
🌰:代表算法GRI。
数值型可以将其进行动态的分割或者直接对原始数据进行处理。 - 基于规则中数据的抽象层次
- 基于规则中涉及到的数据的维度
- 基于规则中涉及到的时间序列
关联模型-Apriori算法
Apriori算法是一种最有影响力的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。
首先乍到所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样;然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。
- 实现步骤
7.什么是聚类
简单介绍
■ clustering聚类分析是将一组对象划分为簇(cluster),是簇内对象相似性尽量大,而簇间对象相似性尽量小
■ 如“物以类聚,人以群分”时间久了,同一班级的同学形成若干个小团体
聚类算法分类
聚类分析常见的五大类算法:划分法、层次发、基于密度的方法、基于网络的方法、基于模型的方法。
- 划分法
划分法(partintioning methods):给定一个由n个元组或记录组成的数据集,划分法将构造k个分组,每个分组代表一个聚类,k <= n。K个分组满足下列条件:
1.每个分组至少包含一个对象
2.每个数据记录属于且仅属于一个分组
🌰:算法:K-means、K-medois、CLARANS。
- 层次法
层次法(hierarchical methods):对给定的数据集进行层次分解,直到满足某种条件位置。具体可分为“自底向上”的凝聚法和“自顶向下”的分裂法两种法案。
🌰:代表算法:BIRCH、CURE、CHAMELEON。
- 密度法
密度法(density-based methods):不是基于距离,而是基于密度。能克服基于距离的算法只能发现“类圆形”聚类的缺点。
🌰:代表算法:DBSCAN、OPTICS。
- 网络方法
网络方法(grid-based methods):首先将数据空间划分成有限个单元的网络结构,所有的处理都以单元为对象。优点处理速度很快。
🌰:代表算法:STING、CLIQUE、Wave-Cluster。
- 模型方法
模型方法(model-based methods):给每个聚类假定一个模型,然后去寻找数据给定模型进行最佳拟合。给定模型可能是数据点在空间中的密度分布函数或其他。
- 小结
聚类模型_K-means
也称快速聚类,非常典型的基于距离的聚类算法
K-means聚类思想
以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
聚类变量、相似度测度、聚类中心、收敛准则
- 过程
8.什么是分类
分类简单介绍
是数据挖掘重要课题
分类的目的是获得一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项目映射到某一个给定类别
分类可用于提取描述重要数据类的模型或预测未来的数据趋势
🌰:通信公司基于历史离网数据预测客户的流逝倾向,提前对客户进行挽留分类算法:
分类的主要目的是通过分析输入数据,利用部分数据构造一个分类函数或者分类模型(分类器),利用该模型将数据库中的其他数据项映射到某一给定类别中。
分类算法-决策树
决策树也称规则推理模型,通过对训练样本的学习,建立分类规则。依据分类规则,实现对新样本的分类。
算法的两类变量
目标变量:输出变量
属性变量:输入变量决策树特点
类似于流程图的树型结构
内部节点代表对某个属性的一次测试
分支代表测试的输出结果
树的最顶端是根节点
分类算法模型典型算法
- 支持向量机
- 逻辑回归
- 决策树
- k近邻
- 随机森林
- 朴素贝叶斯
9.什么是回归
回归简单介绍
回归就是用属性的历史数据预测未来趋势
先假设一类已知的类型的函数可以拟合目标函数,然后利用某种误差分析确定一个与目标数据拟合最好的函数
🌰:企业通过回归算法预测收入,一旦发现无法完成年度目标,及时采取改进措施,保证既定目标按时完成
- 回归与分类比较
相同:
两者都需要构建模型,都用模型来估计未知值
不同:
分类法主要用来预测类标号(分类属性值)
回归法主要用来估计连续值(量化属性值)
回归算法分类
- 根据研究自变量的数量
一元回归:一个自变量
多元回归:两个或两个以上自变量
- 根据自变量和因变量的方程式特征
线性回归分析
非线性回归分析
回归模型
- 非线性回归模型
- 线性回归模型
10.数据挖掘常用工具概述
阿里云机器学习平台PAI
阿里云机器学习平台PAI(Platform of Artifical Intelligence):是构建在阿里云MaxCompute计算平台之上,集数据处理、建模、离线预测、在线预测为一体的机器学习平台。为算法开发者提供了丰富的MPI、PS、BSP等编程框架和数据存储接口,同时提供了基于WEB的可视化控制台,降低了使用门槛。
上手简单
通过对底层分布式算法的封装,提供拖、拉、拽的可视化操作环境。使机器学习的创建过程像堆积木一样简单。算法丰富
提供特征过程、数据预处理、统计分析、机器学习、深度学习框架、预测评估等100多种算法组件。一站式体验
提供模型训练功能,还提供在线预测功能以及离线调度功能,让机器学习训练结果和业务可以无缝衔接。深度学习
支持目前Tensorflow、Caffe、MXNet、PyTorch主流的机器学习框架,底层提供GPU卡进行训练。
PAI支持的算法
机器学习平台上的算法都是经过阿里大规模业务锤炼而成的。从算法的丰富性角度来看,阿里云机器学习平台不仅提供了基础的聚类、回归类等机器学习算法,也提供了文本分析、特征处理等比较复杂的算法。
- 预处理工具组件
采样与过滤、数据合并、拆分、格式转换、类型转换 - 特征工程
特征重要性评估、特征变换、特征选择、特征生成 - 统计分析
假设检验、协方差、直方图、散点图、概率密度图 - 常用机器学习算法
二分类、多分类、聚类、回归、评估、预测 - 垂直应用领域
文本分析、搜索推荐、图像处理、网络分析、金融板块 - 深度学习
DNN、CNNLSTM/RNN、自定义算法
机器学习PAI的应用流程
首先明确任务、目标、并且掌握数据实际情况前提下,即完成商业理解任务、数据理解任务前提下,开始机器学习的实施过程:
- 数据预处理
- 选择特征
- 选择模型进行数据训练
- 模型评估
- 应用部署及再学习、再训练
二、数据挖掘流程
2.1 数据挖掘一般过程
数据获取——数据预处理——特征工程——分析建模——模型评估与应用
2.2 数据获取
根据数据挖掘任务的具体要求,从相关数据源中抽取相关数据集,数据集的选取对数据挖掘模型选取起决定作用,数据获取的前提是掌握本次数据挖掘任务的目标,为达到目标需要获取什么数据。
- 挖掘任务的可行性
- 挖掘任务成功标准
- 挖掘任务实施计划
- 初步考虑挖掘任务采用的工具、技术
- 挖掘任务与业务目标任务的匹配情况
获取数据挖掘所需要数据必须要全面了解数据,即理解数据、熟悉数据
- 收集原始数据:收集本项目所涉及到的数据,如有必要,把数据装入数据处理工具,并作一些初步的数据集成工作,生成相应报告
- 描述数据:对数据作一些大致的描述,例如记录数、属性数,给出相应报告
- 探索数据:对数据做简单的统计分析,例如关键属性的分布等
- 检查数据质量:包括数据是否完整、数据是否有错、是否有缺失值等问题
2.3 数据预处理
数据预处理的流程可分为数据清洗、数据集成、数据规约和数据变换资格步骤。从应用的角度可分为如何得到正确的数据、如何筛选建模变量、建模变量的数据变换三个阶段。其中数据清洗和数据集成属于得到正确的数据阶段,数据规约是数据筛选建模数据阶段,建模变量的数据变换为建模前的最后准备阶段。
- 数据清洗
数据清洗主要针对缺失数据、错误数据、噪声数据、冗余数据,分别进行相应的处理 - 数据集成
数据仓库的构建需要数据集成,数据挖掘宽表的构建也可以理解为数据集成 - 数据转换
数据转换主要有数据的标准化变换,对数变换和正态转换 - 数据规约
数据规约主要有属性的约简(建模变量的筛选),数据的压缩(如主成分分析)、数据的汇总和概化等。
数据清洗
业界对数据清理对认识:
“数据清理是数据仓库构建中最重要的问题“——DCL survey
数据清洗任务
- 填写空缺的值
- 识别离群点和平滑噪声数据
- 纠正不一致的数据
- 解决数据集造成的冗余
数据集成
数据集成:
将多个数据源中的数据整合到一个一致的存储中模式集成:
整合不同数据源中的元数据
e.g. A.cust_id = B.customer_no
- 实体识别问题:
匹配来自不同数据源的现实世界的实体
e.g. Bill Clinton = William Clinton
- 检测并解决数据值的冲突:
对现实世界中的同一实体,来自不同数据源的属性值可能是不同的
可能的原因:不同的数据表示,不同的度量等等
数据转换
数据转换将数据转换或统一成合适挖掘的形式。
- 平滑:去除数据中的噪声
- 聚集:汇总,数据立方体的构建
- 数据泛化:沿概念分层向上汇总
- 规范化:将数据按比例缩放,使之落入一个小的特定区间
最小 - 最大规范化、z-score规范化、小数定规范化 - 属性构造
通过现有属性构造新的属性,并添加到属性集中,以增加对高维数据的结构的理解和精确度。
数据规约
数据规约可以用得到数据集的归约表示,它小得多,但可以产生相同的(或几乎相同的)分析结果
常用的数据归约策略
- 数据立方体聚集
- 维归约,e.g.移除不重要的属性
- 数据压缩
- 数值归约,e.g.使用模型来表示数据
- 离散化和概念分层产生
用于数据归约的时间不应当超过或“抵消”在归约后的数据上挖掘节省的时间
特征工程
特征工程:基于原始数据创建新的特征的过程。一般情况下结合业务,利用数学方法在原有特征的基础上,进行新增、转换等,使特征更适合于机器学习的需要。
特征越好,对算法、模型要求越低,性能越出色
特征工程的作用
- 把原始数据转换成对机器学习更有用的特征
- 结合业务使特征更容易理解和解释
- 结合业务创建对最终结果贡献更大的特征
- 更充分的利用已有数据的价值
- 提供更多的特征,相当于扩充了训练集,充分利用现有的学习、计算能力,提高模型的准确性
- 使用非结构化数据源提供的信息
- 以特征工程的方式引入外部数据
特征产生:基于原始数据产生新的特征
特征产生的常见方法:
- 常见的指标或统计量
- 同一特征的纵向联系
- 多个特征的横向联系
- 特征交叉
- 时间特征的特殊处理
- 从业务角度产生特征
特征变换
介绍:减少变量之间的相关性,用少数新的变量来尽可能反映样本的信息。即通过变换到新的表达空间,使数据可分性更好
常见的特征变换方法
主成分分析PCA
利用降维技术用少数几个不相关的新变量来代替原始多个变量因子分析FA
根据原始变量的信息进行重新组合,找到影响变量的共同因子,化简数据独立成分分析ICA
将原始数据降维并提取出相互独立的变量线性辨别分析LDA
将有标签数据映射到低维空间上分类,可将维度降至K-1维核心方法KM
通过合适的核函数将数据映射到更高维使可分性更好福里叶变换、小波变换WT
使基底函数表示原始数据,将原始数据压缩、降维
特征评估和选择
从原始特征中挑选一些最有代表性、可分性最好的特征
常见的变换方法:
过滤法(Filter):使用独立于分类器的选择准则来评价所选择的特征子集
- 方差选择法
- 相关系数法
- 卡方检验
- 互信息法
封装法(Wrapper):特征子集的好坏标准是由分类器决定
- 基于KNN的特征选择
- 基于SVM的特征选择
- 基于Fisher判别的特征选择
- 基于AdaBoost的特征选择
分析建模
分析模型
在这一阶段,各种各样的建模方法将被加以选择和使用,通过建造,评估模型其参数将被校准为最为理想的值。
比较经典的是,对于同一个数据挖掘的问题类型,可以有多种方法选择使用。如果有多重技术要使用,那么在这一任务中,对于每一个要使用的技术要分别对待。
一些建模方法对数据的形式有具体要求,因此,在这一阶段,重新回到数据准备阶段执行某些任务有时是非常必要的。建模思路
选择抽样规则、选择合适的算法、调整算法的参数建模过程
是一个反复的过程,在不耗费过多系统资源的前提下提高模型的精度。模型结构需要业务解释,应用效果是评判模型的最终标准🌰
模型评估
Evaluation:从数据分析的角度考虑,在这一阶段,已经建立了一个或多个高质量的模型。但在进行最终的模型部署之前,更加彻底的评估模型,回顾在构建模型过程中所执行的每一个步骤,是非常重要的,这样可以确保这些模型是否达到了企业的目标。
在这一阶段结束之时,有关数据挖掘结果的使用应达成一致的决定。
🌰
使用一组新数据评估建好的模型模型评估三阶段
1.建模阶段
2.固化后的测试
3.应用后的评估——最重要评估指标评价
混淆矩阵:通过命中率、覆盖率验证模型可行性
覆盖率:正确预测到的正实例数/实际正实例数
命中率:正确预测到的正实例数/预测正实例数统计检验评价
置信区间检验:F检验、T检验
预测偏差:(预测值-真实值)/真实值抽样检验评价
抽样检验:训练集检验模型的可靠性。
训练集:通过模型的运行评估,输出满意模型。
测试集:利用测试集测试训练集输出的模型。
模型部署
deployment
模型部署:创建完模型并不意味着项目的结束,即使模型的目的是为了增进对数据的了解,所获得的知识也要用一种用户可以使用的方式来组织和呈现。这经常涉及到一个组织在处理某些决策过程中,如在决定有关网页人员或者营销数据库的重复得分时,拥有一个“活”的模型。
模型部署及模型应用:即将其发现的结果以及过程组织成为可读文本形式。
根据需求的不同,通常要将活动模型应用到决策制定的过程中去。该阶段可以简单到只生成一份报告,也可以复杂到企业内实施一个可重复的数据挖掘过程。
在许多案例中,往往是客户而不是数据分析师来执行部署阶段,然而,尽管数据分析师不需要处理部署阶段的工作,对于客户而言,预先了解需要执行的活动从而正确的使用已构建的模型是非常重要的。
固化有两种
- 完全固化。模型固化成sql语句或存储过程,系统自动调度运行
- 流程的固化。不能固化成sql语句,编写操作流程,,需要按周期运行模型,输出结果导入到系统
三、数据挖掘的应用
3.1 数据挖掘的应用现状
目前数据挖掘技术已被广泛的应用于各个领域,只要有分析价值与分析需求的数据,基于数据处理、存储技术,均可基于数据挖掘工具借助云计算平台进行海量数据分析,如金融、零售、制造、通讯、医疗等行业。
- 金融方面:
如风险控制,金融行业中有很多因素会对货贷偿还效能和客户信用等级计算产生不同程度的影响,利用数据挖掘技术识别重要的因素和非相关因素,据此调整货贷发放政策,控制风险; - 生物信息:
利用数据挖掘进行基因序列分析、基因功能预测、分子结构关系预测等; - 电子商务:
基于聚类分析对客户细分,千人千面推荐商品 - 零售业/市场营销:
基于关联分析对购物篮分析,分析商品销售中隐含的关联关系,指定商品营销策略 - 过程监控/质量监控:
通过视频数据挖掘,分析当前工程进行情况,施工质量情况 - 保险:
与金融一样,除了风控,还有就是基于数据挖掘技术预防欺诈骗保 - 证券/投资:
利用数据挖掘技术在海量的数据中挖掘其背后隐藏的价格变化规律,利用关联规则技术对股票交易数据进行分析,发现其规律或问题 - 制造行业:
基于物联网数据开展数据挖掘,在产品质量控制、设备监控、改善生产流程 - 医疗:
随着计算机视觉与基因测技术对发展,数据挖掘技术主要应用在疾病风险预测和医学影像场景如肿瘤判断 - 物流/运输:
智能物流,通过数据挖掘技术预测道路拥堵情况、智能规划道路 - 军事方面安全:
最常见的应用就是情报分析,基于数据挖掘找出关联关系。
3.2 数据挖掘的发展
数据挖掘本身融合了统计学、数据库、机器学习、模式识别、知识发现等学科,数据挖掘等发展是伴随着这些学科的发展而不断发展的。
3.3 数据挖掘的未来
数据挖掘任务和数据挖掘方法的多样性对数据挖掘提出了许多挑战性的研究问题
- 研究专门用于知识发现的数据挖掘语言,走向形式化和标准化
- 寻求数据挖掘过程中的可视化方法,使得知识发现的过程能够被用户理解,也便于在知识发现过程中的人机交互
- 基于云计算、互联网、大数据,分布式环境下的数据挖掘技术进一步发展
- 加强对各种非结构化数据的挖掘,如文本数据、图形图像数据、多媒体数据;探索可伸缩的和可交互的数据挖掘方法,全面提高挖掘过程的总体效率,尤其是超大规模数据集中的数据挖掘的效率
- 开发适应多数据类型、容噪点挖掘方法,动态数据挖掘、实时数据挖掘等
3.4 数据挖掘需要解决的问题
随着大数据时代的到来,数据挖掘将高性能计算、机器学习、人工智能、模式识别、统计学、数据可视化、数据库技术和专家系统等多个范畴的理论和技术融合在一起。
数据挖掘如何在各行各业的高效应用成为当前的热点。大数据的特征是数据规模大、数据种类繁多、数据处理速度快、数据价值密度低,数据挖掘需要解决的问题是大数据下挖掘算法的优化问题。
挖掘算法的优化问题:
- 海量数据下,数据挖掘的预测、分类、聚类、关联如何实现?
- 多种数据类型,大量非结构化数据,如音频、图像等数据下的数据挖掘如何实现?
- 数据挖掘与隐私保护,如何在不侵犯他人隐私的情况下进行数据挖掘?
- 数据挖掘是一个过程,需要多种技术、算法完成同一个任务,与其他技术、系统、算法的有效集成是面临的另一个问题。
🌿至此数据挖掘的笔记📒就介绍完啦~
-------------本文结束感谢您的阅读-------------
本文链接: http://example.com/2023/05/26/数据挖掘/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!