数据挖掘复习
填空判断题
-
数据挖掘
指从海量的数据中提取有兴趣的模式或者知识 -
各自的英文缩写
- OLTP 联机事物处理(传统数据库的主要任务)
- OLAP 联机分析处理(数据仓库的主要任务)
- KDD 数据库中的知识发现
- CNN 卷积神经网络
- RNN 循环神经网络
- GAN 生成对抗网络
- BI 商业智能(指通过对数据的收集、管理、分析以及转化,使得数据成为可用的信息,从而获得必要的洞察力和理解力,更好地辅助决策和指导行动
- ETL 数据抽取、转换、装载的过程(构建数据仓库的一环,用户从数据源抽取出所需数据进行清洗,最后按照预先定义好的数据仓库模型将数据加载到仓库中去)
-
什么是数据仓库
- 是一个与操作数据库相隔离并单独维护的一个用来支持决策过程的数据库
- 是一个用来对整理过的历史数据进行分析以便支持信息处理的固定平台
- 数据仓库是面向主题的、集成的、时变的、非易失的数据集合,它用来支持管理部门的决策过程
-
数据仓库的特点
- 面向主题的
- 集成的
- 时变的
- 非易失的
-
数据仓库的模型
- 企业模型 :收集了关于主题的所有信息,跨越整个组织
- 数据集市 :包含企业范围数据的一个子集,对于特定用户是有用的,其范围仅限于选定的主题
- 虚拟仓库 : 操作数据库上视图的一组集合
-
数据仓库的三层结构
- 底层:仓库数据库服务器,通常是关系数据库系统
- 中间层:OLAP(联机分析处理)服务器
- 顶层:客户(包括查询和报表工具)
-
度量函数的分类
- 分布式的:如果将函数用于n个聚集值得到的结果与将该函数用于所有数据得到的结果一样,则为分布式的(例如count():计算总和可以一个一个计算也可以分成几组各自计算最后汇总;sum();min();max())
- 代数的:如果该函数可以由M(M为有界整数)个分布式函数进行代数计算得到,则为代数的(例如avg():平均值可以由sum()/count()得到;standard_deviation())
- 整体的:如果不是分布式的也不是代数的,就是整体的(例如:median()中位数;mode()众数;)
-
两种学习模型
- 有监督学习——分类:决策树;K-最近邻分类;朴素贝叶斯学习;深度学习;集成学习、没有免费的午餐定理、样本复杂性
- 无监督学习——聚类分析:基于划分的聚类;层次聚类算法
-
数据预处理的内容
- 数据清洗:填充遗失的数据,平滑噪声数据,辨识或者删除孤立点,解决不一致问题
- 数据集成:对多个数据库、数据立方或文件进行集成
- 数据变换:规范化与聚集
- 数据约简:得到数据集的压缩表示,体积更小却能产生同样的(或几乎同样的)分析结果
- 数据离散化:特别对数字值非常重要
-
挖掘的知识类型(知识就是模式,也就是说数据挖掘可以挖掘出什么类型的模式,可以分为描述性跟预测性两大类)
- 类/概念描述:数据可以与类或概念相关联,这种描述可以通过下述方法得到:数据特征化(对目标类数据的一般特性或特征的汇总);数据区分(将目标类数据的一般对象与一个或者多个对比类对象的一般特性进行比较
- 挖掘频繁模式、关联和相关性:频繁模式就是数据中频繁出现的模式,挖掘频繁模式导致发现数据中有趣的关联和相关性
- 用于预测分析的分类与回归
- 聚类分析
- 离群点分析:离群点(数据集中可能包含一些数据与数据的一般行为或者模型不一致,成为离群点)
-
数据仓库基于多维数据模型,以数据立方体(允许以多维对数据建模和观察)的形式对数据进行观察,数据立方体的两种表
- 维表:如item维(item_name,brand,type)或time维(day,week,month,quarter,year)
- 事实表:包括度量(衡量数据的大小,也就是数据的单位),如销售额以及每个相关维度的关键字
- 下面是两个常见的维度表结构:
产品维度表:Prod_id, Product_Name, Category, Color, Size, Price
时间维度表:TimeKey, Season, Year, Month, Date - 而事实表是数据聚合后依据某个维度生成的结果表。它的结构示例如下:
销售事实表:Prod_id(引用产品维度表), TimeKey(引用时间维度表), SalesAmount(销售总量,以货币计), Unit(销售量)
-
常见的OLAP(联机分析处理)操作
- 上卷/上钻:得到一种聚集或汇总的数据,通过一个维的概念分层向上攀升或通过维规约,在数据立方体上进行聚集,n维立方体向n-1维立方体变化也是一种上卷
- 下钻:上卷的逆操作,它由不太详细的数据得到更详细的数据,可以通过沿维的概念分层向下或引入新的维实现
- 切片与切块:投影和选择
- 转轴:是一种目视操作,它转动数据的视角,提供数据的替代表示
- 钻过:执行涉及多个事实表的查询。
- 钻透:使用SQL的机制,钻到数据立方的底层,到后端关系表。
![]()
-
属性的三种类型
- 标称性的:取自于无序集合的值
- 有序的:取自于有序集合的值
- 连续的:实数
-
属性离散化:把连续型属性的取值范围划分为多个小区间,通过离散化减少数据集大小,为进一步分析做好准备
- 分箱(等深分箱离散法):等深就是每个箱子有大约相等的样本数;等宽就是每个箱子有相等的区间宽度=(最大-最小)/箱子个数
- 直方图分析
- 基于熵的离散化(使其划分后得到的信息增益最大)
-
P、NP、NP完全、NP难问题
- P问题:在多项式时间内“能解决”的问题(如找n个数中最大值,最小数生成等)
- NP问题:在多项式时间内“不知道是否能解决”但是在多项式时间内“能验证”的问题(如可满足性(SAT)问题,例如是否存在***使得***为真)
- NP-完全问题:所有的NP问题能在多项式时间内规约到该问题,且该问题本身属于NP问题,NP-完全问题就是判定问题
- NP-难问题:所有的NP问题能在多项式时间内规约到该问题,NP难问题就是优化问题
-
判别和生成模型
![]()
-
深度网络训练面临的挑战
- 数据获取问题:标记数据少,无标记数据多
- 局部最优问题:容易陷入局部最优
- 梯度消失问题
- 如果对所有层同时训练,时间复杂度太高
-
贪心有监督和无监督预训练方法:
- 核心思想:逐层贪婪预训练(Greedy layer-wise pretraining)
- 基本方法:从底层(输入层)开始,一层一层的往顶层(输出层)训练,原始输入作为训练第一个隐藏层的输入;训练好一层后,参数固定,再在其上堆积(Stacking,又称栈化)一层,然后用前一层的输出作为训练该层的输入
- 算法分类:上述训练可以是无监督的或有监督的
无监督:如使用受限玻尔兹曼机(RBM),自编码器(auto-encoder)等;
有监督:直接用训练集的标识作为训练一层时的输出(将每一步的分类误差作为目标函数)
-
聚类的衡量标准
- 聚类直径与半径:是一种衡量聚类内部同质性的度量,指的是将该聚类内部所有点包裹起来的最小球的直径跟半径
- 聚类分离度:是衡量聚类将分离性的度量,指的是聚类内部点到聚类外部点的最小值
-
常见的聚类准则
- k-Center:最大半径的最小化,即min r(P),r(P)是指当前聚类算法划分的k个类中的最大半径,是一个NP难问题
- k-Cluster:最大直径的最小化,即min d(P),d(P)是指当前聚类算法划分的k个类中的最大直径,是一个NP难问题
- 最小分离度的最大化:即max s(P),s(P)是指当前聚类算法划分的k个类中的最小分离度,是一个P问题
- k-median:聚类内部距离(指的是在当前类中选一个中心点,该点到该类中的其他点的距离之和最小)之和的最小化,即让k个类的内部距离之和最小,若视k为输入变量,则NP-hard;对于固定的k,则是P问题
- k-means:聚类内部距离平方之和的最小化,无论k是否固定,均为NP-hard,即使k=2
- Min-cut:最小割(将一个连通图去掉某些边之后变成不连通图的那些边成为割线,割线的权值之和就是割),是P问题
- Max-cut:最大割,是NP难问题
- Ncut:规范割,是NP难问题
- MRSD准则:分离度/直径最大化,即max s(P)/d(P)
-
聚类准则的合理性
- 一个好的聚类算法将会产生高质量的聚类结果,即聚类内对象有高度同质性,聚类间对象有高度分离性
- 聚类算法的质量依赖于它所使用的相似性(或距离)的具体定义、优化准则的合理性、计算复杂性及优化算法
-
欠拟合和过拟合现象
- 欠拟合:主要是由于模型过于简单,导致模型的表达力或者capacity能力不足,表现为模型的低方差与高偏差,例如用线性模型(y=x)去拟合非线性模型
- 过拟合:主要是模型过于复杂(如参数过多,决策树过深过宽等,而训练样本较少),表现为模型的高方差与低偏差,例如考虑用变量数大于方程数的线性方程组拟合
![]()
-
训练集、验证集、测试集:在训练集上训练模型,在验证集上评估模型并调参,一旦找到最佳参数就在测试集上测试
- 训练集:用于训练模型的参数(如神经网络各层权重和偏置)
- 验证集:用于调整超参数(如神经网络的宽度和深度)
- 测试集:用于评价模型本身的有效性(准确率等等)
-
泛化误差及其偏差与方差分解
![]()
-
数据立方体的方格体
- 一个n维立方体(n-D)成为基本方体;0-D方体存放在最高层的汇总,称为顶点方体;而方体的格称作数据立方体
![]()
- 一个n维立方体(n-D)成为基本方体;0-D方体存放在最高层的汇总,称为顶点方体;而方体的格称作数据立方体
-
决策树、贝叶斯分类器及最近邻分类器的时间与空间复杂度比较
- 决策树:训练时间复杂度:O(n*log(n)d),n=训练集中样本数,d=数据的维数,空间复杂度:O(树的最大深度)
- 朴素贝叶斯分类器:训练时间复杂度:O(n*d),空间复杂度:O(c*d),我们必须为每个类‘x'检索特征
- k最近邻算法:训练时间复杂度:O(knd),需要遍历每个训练观测值并计算机器学习训练集观测值与新观测值的距离d,空间复杂度:O(nd)
简答题
- 知识发现过程的主要步骤
- 创建目标数据集:数据选择
- 数据预处理:数据清洗、数据约简与数据交换
- 构建知识仓库(可选)
- 数据挖掘(这是知识发现的核心)
- 模式评价与知识表示
- 知识的使用
- 数据预处理的内容
- 数据清洗(Data cleaning):填充遗失的数据, 平滑噪声数据, 辨识或删除孤立点, 解决不一致性问题
- 数据集成(Data integration):对多个数据库,数据立方或文件进行集成
- 数据变换(Data transformation):规范化与聚集(Normalization and aggregation)
- 数据约简(Data reduction):得到数据集的压缩表示,它小的多,但能够产生同样的(或几乎同样的)分析结果
- 数据离散化(Data discretization):特别对数字值而言非常重要
- OLTP(联机事务处理)与OLAP(联机分析处理)的区别
- 用户和系统的面向性:OLTP系统是面向顾客的,用于办事员、客户和信息技术专业人员的事务和查询处理;OLAP系统是面向市场的,用于知识工人(包括经理、主管和分析人员)的数据分析
- 数据内容:OLTP系统管理当前数据。通常,这种数据太琐碎,难以用于决策;OLAP系统管理大量历史数据,提供汇总和聚集机制,并在不同的粒度级别上存储和管理信息,这些特点使得数据更容易用于见多识广的决策
- 数据库设计:通常,OLTP系统采用实体-联系(ER)数据模型和面向应用的数据库设计;OLAP系统通常采用星形或雪花模型和面向主题的数据库设计
- 视图:OLTP系统主要关注企业或部门内部的当前数据,而不涉及历史数据或不同组织的数据。相比之下,由于组织的变化,OLAP系统常常跨越数据库模式的多个版本。OLAP系统还处理来自不同组织的信息,由多个数据存储集成的信息。由于数据量巨大,OLAP数据存放在多个存储介质上
- 访问模式:OLTP系统的访问模式主要由短的原子事务组成。这种系统需要并发控制和恢复机制。然而,对OLAP系统的访问大部分是只读操作(由于大部分数据仓库存放历史数据而不是当前数据)。尽管许多可能是复杂的查询
- 为什么需要构建单独隔离的数据仓库
- 使得操作数据库跟数据仓库都能获得高性能,因为数据库是为了已知任务设计的,涉及索引、并发控制以及数据恢复;而数据仓库则需要复杂的OLAP查询,支持多维视图以及数据整理
- 数据库跟数据仓库的功能要求不同:
丢失的数据: 决策支持需要历史数据,而传统数据库并不一定维护历史数据。
数据整理: 决策支持需要对异构数据源进行数据整理 。
数据质量: 不同的数据源常常具有不一致的数据表示,编码结构与格式。
- 数据仓库的三种设计模式
- 星型模式:一个事实表以及一组与事实表连结的维表
- 雪花模式:雪花模式是星型模式的变种,其中某些维表会被进一步分解成更低维度的附加表
- 事实星座:多个事实表分享共同的维表,可以看作是星型模式的集合
- 评估分类器准确率的方法
- 划分法:训练集与测试集,把样本划分为两个独立的训练集和测试集,适用于大规模的数据样本
- 交叉验证:把数据集划分为k个子样本,使用k-1个子样本作为训练集,剩下一个作为验证集,进行k-折交叉验证,适用于中等规模的数据
- 留一测试:是k-折交叉验证的特例,即仅仅留出一个样本作为检验,适用于小规模数据
- 自助法:采用有放回采样从样本集D中(|D|=m)采m个样本,记为D’。样本在m次采样中始终未采到的概率:也即初始样本D中有36.8%的样本未出现在D’。于是我们可用D’用作训练集,D\ D’用作测试集。因此我们仍有m个训练样本,且有约1/3的未出现在训练集中的测试样本
- 神经网络的结构设计
- 输入层:神经元个数=特征(feature)维度
- 输出层:神经元个数=分类类别数
- 隐藏层:默认是一个,如果用多个,则每个隐含层神经元个数都一样,隐含层神经元个数越多,分类效果越好,但是计算量会增大
- 激活函数:分类输出用Softmax;隐含层优先使用Relu,然后是tanh
- 大多数神经网络被组织成层的单元组,且将这些层布置成链式结构,每一层的输入都是上一层的输出,具有一层隐含层的前馈神经网络足以表示任何函数,但是网络层可能非常大并且无法正确的学习和泛化,所以在很多情况下,使用更深的模型能够减少所需单元的数量,并且可以减少泛化误差
- 深度学习训练算法
- 批量梯度下降(BGD):即在更新参数时使用所有的样本来进行计算损失函数进行更新
- 随机梯度下降(SGD):在求梯度时没有使用所有的n个样本数据,而是选取了一个样本i来进行梯度更新
- 小批量梯度下降(MBGD):是BGD跟SGD的折中,对于n个样本,采用m(1<m<n)来迭代
- 深度学习正则化技术(以增大训练误差为代价减少测试误差的策略统称为正则化)
- 硬约束:添加额外的约束,如参数的约束
- 软约束:向目标函数添加额外项
- 提前终止策略:提前终止训练
- 参数绑定和共享:强行让某些参数相等或让参数相互接近
- dropout:在训练期间随机丢弃神经元及其连接
- 常见的深度网络类型
- 卷积神经网络:针对网格化数据,如图片
- 循环神经网络:针对序列化数据,如文字、语音
- 深度信念网络:它是一种生成模型,由多个受限玻尔兹曼机组成,采用逐层的方式进行训练
- 生成对抗网络:判别模型的职责是准确区分真实数据和生成数据,而生成模型负责生成符合真实数据概率分布的新数据;通过判别模型和生成模型两个神经网络的对抗训练,生成对抗网络能够有效地生成符合真实数据分布的新数据
- 深度强化学习:与其他机器学习的差异在于,深度强化学习更加注重基于环境的改变而调整自身的行为
- 自编码器
- 自编码器神经网络是一种无监督学习算法,使用了反向传播技术,让神经网络学习输出与输入值相等的目标值;
- 欠完备自编码器:隐藏编码维数小于输入维数,可以学习数据分布最显著的特征
- 过完备自编码器:允许隐藏层维数大于或等于输入的维数
- 没有免费的午餐定理(NFL定理,机器学习中的普适定理,表明没有一个学习算法可以在任何数据集上总是产生最准确的分类器)
- 对所有可能的的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值相同;
- 对任意固定的训练集,对所有的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;
- 对所有的先验知识求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;
- 对任意固定的训练集,对所有的先验知识求平均,得到的所有学习算法的的“非训练集误差”的期望值也相同;
- 文本摘要(指的是从大量文本中提取最重要的文本信息)
- 要求:文本摘要算法要求返回的结果具有高度的内容相关性,并且要有较低的内容冗余性,且往往有长度的限制
- 分类
- 从是否需要重写原有语句进行分类
抽取式摘要:从文本中选择最重要的一些句子,无需重写
生成式摘要:采取文本重写技术,对内容语句进行压缩、合并处理 - 从涉及文档数量方面进行分类
单文本摘要:针对单个文本
多文本摘要:针对多文本 - 从涉及查询方面进行分类
通用性摘要:无查询关键词
基于查询的摘要:给定查询词
- 从是否需要重写原有语句进行分类
- 链接分析算法主要特点(主要是PageRank和HITS两个算法,利用网站超链接对网页的权威性和声望进行排序)
- PageRank:
优点:防欺骗,网页所有者很难设置其他重要网页指向他自己的网页,
缺点:不能区分全局重要性网页和查询主题重要性网页 - HITS:
优点:根据查询进行排序,可能会返回更相关的权威性和汇集性网页
缺点:容易被欺骗,网站开发者很容易在网页中加入许多出边,并且会有主题漂移,许多扩展网页可能与主题并不相关
- PageRank:
- 传播最大化模型
- 将社会网络抽象为一个 有向( ( 或无向) ) 图 G=(V,E),节点集合V代表个人、组织或其他对象,边集合E代表对象之间的关系(粉丝、朋友、敌对等).
- 每个节点有两种状态:活跃或者非活跃;处于活跃状态的节点对处于非活跃状态的节点存在影响, 如果这个影响导致了某个节点非活跃状态变为活跃状态,则这个过程称为激活,激活过程不可逆,即一个节点可以从非活跃节点变成活跃节点,反之不可
- 传播最大化模型的目标是:给定一个带权网络G=(V, E), 从V中选取最少的节点集S,使其影响到网络中所有节点;或给定一个带权网络G=(V, E), 一个正整数k,从V中选取最多k个节点,使得影响的节点数最大化;
- 有两种:独立级联模型(简称IC模型)、线性阈值模型(LT模型)
- 独立级联模型:是一种概率模型,当一个节点v被激活时,它会以概率p[v,w]对它未激活的出边邻居节点w尝试激活,这种尝试仅仅进行一次,而且这些尝试之间是互相独立的,即v对w的激活不会受到其他节点的影响。
- 线性阈值模型:是一种价值积累模型,它对每个节点v都有一个激活阈值θ[v]∈[0,1](表示这个节点受影响的难易程度,θ[v]越小,表示节点v越容易被影响,θ[v]越大,表示该节点v越难被影响),只有当节点v的新处于激活状态的邻居节点对它的影响力大于该阈值时,节点v才能被激活。
计算题
-
用 Apriori 算法挖掘强关联规则
- 相关的概念
- 关联规则:即满足如果x1∧x2 ∧ … ∧ xn ,那么y1 ∧ y2 ∧ … ∧ym。即多个条件的合取式可以推导出结论的合取
- k-项集:含有k个元素的集合,X=
- 对于规则X->Y的支持度:事务包含X∪Y的概率,即support = P(X∪Y) = Count(X∪Y) / Count(DB)(Count(DB)是指数据库总数)
- 对于规则X->Y的置信度:事务在给定X条件下包含Y的条件概率,即confidence = P(Y|X) = Count(X∪Y) / Count(X)
- 支持度计数:模式或者项集在数据库中出现的次数
- 最小支持度与最小置信度:由用户提供,即挖掘出的关联规则的支持度与置信度必须分别大于最小支持度与最小置信度
- 频繁模式(频繁项集):支持度大于或等于最小支持度的模式(项集)
- 关联规则挖掘的任务:发现所有满足最小支持度与最小置信度、形如X->Y的规则
- k-项集的连接:当两个k-项集的前k-1项都相同,第k项不同时,这两个k-项集可以连接,产生k+1项集,如{A, C, D}与{A, C, E}连接产生{A, C, D, E};
- Apriori算法:
- 输入:事务数据库D;最小支持度min_sup;
- 输出:D中的所有频繁项集
- 方法
- 首先根据Count(D)*min_sup=min_count求出一个项集要是频繁项集该项集起码要在D中出现的最小次数
- 扫描数据库D,产生候选1项集C1和频繁1项集L1
- 循环,由频繁k-1项集两两连接生成候选k项集,再判断其出现的次数是否大于min_count,生成频繁k-项集
- 当k-项集只有一个项集时结束循环
- 对于一个k项集,所产生的关联规则数为2k-2(减2是因为规则左右两边不为空),例如{A,B,C}:{A}->{B,C};{B}->{A,C}....{B,C}->{A}.
![]()
-
频繁模式树的构造
-
构建排序频繁项
![]()
-
对每一个排好序的频繁项事务进行扫描构建频繁模式树
![]()
-
-
信息增益的计算
- 先计算分类的熵,再计算属性的熵,最终相减得到信息增益
![]()
- 先计算分类的熵,再计算属性的熵,最终相减得到信息增益
-
朴素贝叶斯分类
![]()
-
k-means聚类
- 把对象划分成k 个非空子集;
- 计算当前划分的每个聚类的中心;
- 把每一个对象分配到离它最近的中心;
- 返回到第2步, 当满足某种停止条件时停止。
- 停止条件:分配不发生变化时停止;前后两次迭代的目标函数值小于某个给定的与之;达到迭代的指定次数
![]()
-
凝聚层次聚类法(全链接与单链接)
- 不需要用户提供聚类的数目k作为输入
- 若定义两个聚类之间的距离为两个聚类对象之间的最小距离,则该算法为单链接算法(SLA,也称最小生成树算法)
- 若定义两个聚类之间的距离为两个聚类对象之间的最大距离,则该算法为全链接算法(CLA)
![]()
-
神经网络的正方向传播计算(sigmoid、ReLU、softmax激活函数)
-
sigmoid激活函数:导数为y'=y(1-y),值域为(0,1),并且在正无穷或者负无穷会变得饱和,也就是函数曲线会变得很平,对输入不敏感
![]()
-
ReLU函数:max(0,x),虽然是非线性的,但是十分接近线性
-
Softmax激活函数:用于输出层的分类器上
![]()
-
一个完整的神经网络正方向传播过程
首先给定输入向量X,然后给定输出的标签T,再给定相关的权重W跟偏置θ,还有给定学习率l,下面针对仅有一层隐含层的神经网络进行讲解:
-
- 对于输入层:输出就是它的输入,即激活函数为恒等函数
- 对于隐含层:输入是输入层的输出*权重+偏置,即Ij = W*X+θ,然后输出激活函数假设是sigmoid,则隐含层输出为Oj = 1/(1+exp(-Ij))
- 对于输出层,正向计算同隐含层
- 然后反向计算误差
- 对于输出层,Err = Oj(1-Oj)(Tj-Oj),Tj是输出节点的标签值
- 对于隐含层,Err = Oj(1-Oj)*Sum,Sum为与该隐含层节点相连的输出层的节点的误差Err*对应的权重w的和
- 最后进行权重跟偏置的更新:wij = wij+l*Errj*Oi(学习率乘以后面节点的误差乘以前面节点的输出);θj = θj+l*Errj
![]()
















浙公网安备 33010602011771号