一、认识数据
1. 数据分析的基本步骤有哪些?每个步骤的主要工作
(1)数据收集:确定需要分析的数据来源、运用爬虫/API接口调用/ETL工具等技术进行数据采集
(2)数据处理:数据清洗、数据转换、数据集成、特征工程
(3)数据分析: 数据统计、数据挖掘
(4)数据展现:利用图标、表格、文字进行展示
(5)报告撰写:明确结论、提出建议
2 关于大数据的4V理论是什么?
(1)Volume(数据量大)
(2)Velocity(处理速度快,指从数据的生成到消耗,可用于生成决策的时间非常少)
(3)Variety(数据类型繁多)
(4)Value(价值密度低)
3 四种基本度量尺度适用的集中趋势和离散度量方法有哪些?
四种基本度量尺度:定类尺度、定序尺度、定距尺度、定比尺度
集中趋势的测度
- 定类(众数)
- 定序(中位数、四分位数、众数)
- 定距(平均数、众数、中位数、四分位数)
- 定比(算数均值、几何均值、中位数、四分位数、众数)
离散程度的测度
- 定类(异众比率)
- 定序(四分位差、异众比率)
- 数值型数据(方差或标准差、离散系数(用于比较)、平均差、极差、四分位差、异众比率)
拓:各类数据的展示方法
- 定类(频数分布表、条形图、柱形图、对比柱形图、Pareto图、圆形图)
- 定序(累计频数分布图、环形图)
【上述两类合称总计表,用于品质数据】 - 分组数据(直方图、折线图)
- 原始数据(茎叶图、箱线图、分位数图)
- 时间序列数据(线图)
- 多变量(雷达图、散点图)
【上述四类用于数值型数据】
4 数据对象的邻近性(单属性,多同种属性,混合属性)有哪些方法
邻近性定义:数据对象的相似性和相异性,数据属性的相关性。数据属性的相关性可用相关系数来描述,数据对象的相似性通常用某种距离度量。
单个属性的邻近性
- 标称属性
相异度:\(d=\{0(x=y),1(x\neq y)\}\)
相似度:\(s=\{1(x=y),0(x\neq y)\}\) - 序数属性
相异度:\(d=\frac{|x-y|}{n-1}\)
相似度:\(s=1-d\) - 数值(区间或比率属性)
相异度:\(d=|x-y|\)
相似度:\(s=-d\) 或 \(s=\frac{1}{1+d}\) 或 \(s=e^{-d}\) 或 \(s=1-\frac{d-min_d}{max_d-min_d}\)
多同种属性的邻近性
-
一般多元属性的相异性(距离)
Minkowski距离:
\(d(i,j)=\sqrt[h]{|x_{i1}-x_{j1}|^{h}+|x_{i2}-x_{j2}|^{h}+...+|x_{ip}-x_{jp}|^{h}}\)
Manhattan距离:
\(d(i,j)=|x_{i1}-x_{j1}|+|x_{i2}-x_{j2}|+...+|x_{ip}-x_{jp}|\)
Euclid距离:
\(d(i,j)=\sqrt{|x_{i1}-x_{j1}|^{2}+|x_{i2}-x_{j2}|^{2}+...+|x_{ip}-x_{jp}|^{2}}\)
Chebyshev距离:
\(d(i,j)=\underset{h\rightarrow \infty}{lim}(\sqrt[h]{\sum_{f=1}^p{|x_{if}-x_{jf}|^h})}=\underset{f}{max}|x_{if}-x_{jf}|\)
标化Euclid:
首先标准化变量\(x^{*}=\frac{x-\overline{X}}{\sigma}\),后带入一般Euclid距离
马氏距离:
\(D(X,Y)=\sqrt{(X-Y)^TC^{-1}(X-Y)}\),表示协方差距离,用于计算未知样本集的相似度 -
标称属性的相异性
不匹配率:\(d(i,j)=\frac{p-m}{p}\) (\(p、m\)分别为属性总数和匹配的属性数目) -
二元属性的相异性
Jaccard相似系数:\(Jaccard(X,Y)=\frac{X\cap Y}{X\cup Y}\)
余弦相似度:\(cos(\theta)=\frac{x_1 \cdot x_2+y_1 \cdot y_2}{\sqrt{x_1^2+y_1^2}\sqrt{x_2^2+y_2^2}}\)
TF-IDF算法(基于余弦相似度):用于文章相似性的求解
多种混合属性的相异性
- 方法1:将各种类型的属性分为一组,然后利用前面介绍的方法计算两个数据对象在每种类型的相似度,最后将不同类型的相似度综合成总的相似度
- 方法2:把所有属性类型一起处理,把不同的属性组合到单个相异性矩阵中,把所有有意义的属性转换到相同的区间 [0, 1] 上
5 数据属性的相关性有哪些方法(斯皮尔曼等级相关系数,皮尔森)
相关性定义:2个或2个以上变量取值之间在某种意义下所存在的规律
相关性高、中、低分界值:30%和70%
相合系数(用于二元和标称类型)
-
二元Yule-Q相合系数:\(Q=\frac{n_{11}n_{22}-n_{12}n_{21}}{n_{11}n_{22}+n_{12}n_{21}}\)
-
二元\(\varphi\)相合系数:\(\varphi=\frac{n_{11}n_{22}-n_{12}n_{21}}{\sqrt{(n_{11}+n_{12})(n_{21}+n_{22})(n_{11}+n_{21})(n_{12}+n_{22})}}\)
-
标称属性Pearson 卡方检验量:\(\chi^2=\sum_{i=1}^c\sum_{j=1}^r{\frac{(\sigma_{ij}-e_{ij})^2}{e_{ij}}}\) (其中\(e_{ij}=\frac{count(A=a_i) \cdot count(B=b_j)}{N}\))
等级相关系数
- Spearman等级相关系数:\(r_s=1-\frac{6\sum{d_i^2}}{n(n^2-1)}\)
简单相关系数
- Pearson简单相关系数(数值型):\(r=\frac{\sum_{i=1}^n(X_i-\overline{X})(Y_i-\overline{Y})}{\sqrt{\sum_{i=1}^n(X_i-\overline{X})^2}\sqrt{\sum_{i=1}^n(Y_i-\overline{Y})^2)}}\)
二、数据预处理
6 数据预处理的主要任务有哪些?每个任务要解决的问题主要有哪些?
(1)数据清洗:填充缺失值,识别/去除离群点,光滑噪音,并纠正数据中的不一致
(2)数据集成:多个数据库,数据立方体,或文件的集成
(3)数据规模:增加或减少数据的规模,以适应数据分析的目标
(4)数据变换:规范化和聚集
7 脏数据主要有哪几种?产生的主要原因是什么?
脏数据的类型
- incomplete:缺少属性值, 缺少某些有趣的属性, 或仅包含聚集数据
- noisy:包含错误或孤立点
- inconsistent:编码或名字存在差异
- 有意的:变相丢失的数据
产生脏数据的原因
- 不完全数据:数据收集时未包含、数据收集和数据分析时的不同考虑、人/硬件/软件问题
- 噪音数据:收集、录入、变换
- 不一致数据:不同的数据源、违反函数依赖
产生污染数据的场景
- 滥用缩写词、数据输入错误、数据中的内嵌控制信息、不同的惯用语、重复记录、丢失值、拼写变化、不同的计量单位、过时的编码、含义各种噪声
8 缺失值的处理方法有哪些?
- 忽略元组
- 人工填写:若缺失值较少,工作量小的时候可行
- 全局变量:采用全局常量来替换空缺值
- 使用属性的中心度量
- 用同类样本属性的中心度量
- 使用最可能的值:利用回归、Bayes公式推断最可能的值(热卡填补、KNN等)
9 什么是噪音数据?产生的原因有哪些?
噪音:在测量一个变量时可能出现的测量值相对于真实值的偏差或者错误。包括孤立点(不符合数据模型的数据)
产生噪音原因
- 错误的数据收集工具
- 数据录入问题
- 数据传输问题
- 技术限制
- 不一致的命名惯例
10 噪声数据的检测和处理方法有哪些?
回归、聚类、分箱(等频、等宽)
11 什么叫数据集成?集成的框架结构?分类?数据集成解决的主要问题有哪些?例子
数据集成定义
将互相关联的分布式异构数据源集成到一起,使用户能够以透明的方式访问这些数据源。
集成的框架结构
数据集成定义
- 数据规约
- 数据增长
数据集成的方法
-
模式集成方法:在构建集成系统时将各数据源的数据视图集成为全局模式,使用户能够按照全局模式透明地访问各数据源的数据。(联邦数据库、中间件集成、P2P方法)
-
数据复制方法:将数据源中的数据复制到相关的其它数据源上,并对数据源的整体一致性进行维护,从而提高数据的共享和利用效率。(数据仓库方法)
-
混合型集成方法:模式集成方法与数据复制方法混合使用。
12 什么叫数据归约?主要有哪几类归约问题?
数据规约的目的
从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集保持原有数据集的完整性,这样在精简数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得结果是基本相同。
主要规约问题
- 维规约(特征选择、特征提取)
- 数量规约(参数方法、非参数方法)
- 特征值规约(离散化、概念分层)
- 全面规约(数据立方体聚集、数据压缩)
13 维度归约有哪两类技术?有什么区别?
(1) 特征选择:从原始特征中选择出和任务相关的特征(如决策树、基于统计选择)
(2) 特征提取:将原始特征通过线性或非线性组合的方式转化为新的特征表示(如PCA)
14 什么是数据离散化和概念分层?
-
离散化技术
通过将属性(连续取值)域值范围分为若干区间,来帮助消减一个连续(取值)属性的取值个数。是一种数量归约的方法。 -
概念分层
定义了一组由低层概念集到高层概念集的映射。它允许在各种抽象级别上处理数据,从而在多个抽象层上发现知识。用较高层次的概念替换低层次(如年龄的数值)的概念,以此来减少取值个数。虽然一些细节在数据泛化过程中消失了,但这样所获得的泛化数据或许会更易于理解、更有意义。在消减后的数据集上进行数据挖掘显然效率更高。
15 数据增长有那些方面?具体可采用什么技术及每个技术要点
(1) 维度增长:(特征衍生/构造)
- 基于统计量的特征构造(均中众数、方差标准差、峰度偏度)
- 基于业务理解的特征构造(时间、地理位置、比例、交互)
- 基于模型的特征构造(多项式升维、神经网络升维、编码转换、降维)
(2) 数量增长:
- 数据平衡(欠采样、过采样、基于深度学习的方法(如生成对抗网络))
- 数据扩充(旋转、翻转、缩放和添加噪声等方式来生成更多的训练样本,有效提高泛化能力,防止过拟合)
16 数据规范化/标准化的方法有哪些?形式,有什么作用?
概念区分
数据规范化主要包括数据趋同化处理和无量纲化处理,而无量纲化处理包括标准化(使不同度量之间的特征具有可比性)和归一化(区间缩放)
常用方法
-
归一化(MAX-MIN标准化 / 离差标准化):
\(v'=\frac{v-min_A}{max_A-min_A}\) \(\quad\)(映射到[0,1])
\(v'=\frac{v-min_A}{max_A-min_A}(newMax_A-newMin_A)+newMin_A\) \(\quad\) (映射到[newMin,newMax]) -
Z-score规范化(零均值规范化)
\(v'=\frac{v-\overline{A}}{\sigma_A}\) -
小数定标规范化(科学表示法规格化)
\(v'=\frac{v}{10^j}\) \(\quad\)(其中\(j\)为使\(max(|v'|)<1\)成立的最小值) -
向量规格化
\(v'=\frac{v}{\parallel v \parallel}\)
三、数据仓库
17 数据仓库的主要特征是什么,对每一特征给予简要解释
(1) 面向主题的:数据仓库聚焦于特定的业务主题领域,如销售、财务等,而不是像操作型数据库那样分散在多个应用系统中。
(2) 集成的:数据仓库整合了来自不同源的数据,消除了数据冗余和不一致性,提供了统一的数据视图。
(3) 反映历史变化的:数据仓库中的数据通常随时间变化,支持历史数据的存储和分析,以观察趋势和模式。
(4) 相对稳定的:数据仓库中的数据主要用于查询和分析,而不是日常事务处理,因此数据一旦加载,通常不会被修改或删除。
18 数据仓库的作用
数据仓库通过数据集成,为用户提供全局范围的统一数据视图,将数据整合到一起为用户提供分析决策支持,这些数据在传统的操作型数据库中很难或不能得到
19 典型的数据仓库体系结构,各层简要说明
三层结构
- 底层:
数据仓库服务器, 几乎总是一个关系型数据库系统(DW服务器从操作型数据库或外部数据源提取数据,并进行清洗、转换、集成等,装入到数据仓库中。) - 中间层:
OLAP服务器,提供对多维数据的存储和操作(ROLAP负责将多维数据上的操作映射为标准的关系操作,MOLAP负责直接在多维模型上实现多维数据操作
) - 顶层:
前端工具, 包括查询和报表、分析、数据挖掘工具等
20 数据库与数据仓库系统在设计上的差别
(1) 系统设计的目标不同
- 数据库是面向事务型处理的,所以事务型处理性能是系统设计的一个主要目标。
- 而数据仓库是为了支持决策分析而建立的一种数据存储集合。在系统设计时,更关心的是建立起一个全局一致的分析型处理环境来支持企业的决策分析。
(2) 面向的需求不同
- 数据库系统是面向应用的,所以在系统设计时应以此为出发点和基础。
- 而在决策分析时,决策者分析问题的角度多种多样,所以数据处理流和信息流不固定,甚至决策者对所要进行的分析处理都不太明了,数据的分析处理的需求更灵活。这就决定了在数据仓库系统设计时,不可能从用户需求出发来进行设计
(3) 数据来源不同
- 数据库系统中数据是从企业外部通过输入得到的,所以系统设计时就是设计如何与外部对话得到数据,如何存储这些数据,它关心的是数据的安全性和完整性等。
- 数据仓库中的数据大部分是从企业内部的数据库系统得到的,还有一部分是企业外部的非结构化数据,这些数据都是安全可靠且正确有效的,所以在系统设计时它关心的不是数据的安全性和完整性,而是数据的一致性。
(4) 数据的处理类型不同
- 数据库系统支持的是事务型处理,主要指数据的增、删、改、查等等,系统设计时都是针对某一具体应用。
- 数据仓库是面向分析的,它的数据处理大都是对数据的复杂查询,所以在设计时考虑的是如何更好的面向主题,如何提高查询的效率等。
21 数据仓库设计的过程有哪些
三个阶段:概念模型设计(Concept Data Modeling)、逻辑模型设计(Logical Data Modeling)、物理模型设计(Physical Data Modeling)
22 模型设计(概念——逻辑;星型模型;粒度选择)
23 ETL的含义
ETL是数据从业务系统抽取转化到数据仓库的过程,包括4个子过程:数据抽取、数据转换、数据清洗、数据装载
(开发一个数据仓库包括3个步骤:需求/建模、ETL开发、前端开发)
四、OLAP
24 五种OLAP的操作,并说明每种的具体内容
(1) 切片(slice)
\(\quad\) 在n(\(\geq\) 3)维数据集的某一维上,指定一个维成员的选择操作,其结果称为n($\geq$3)维数据集的一个切片
(2) 切块(dice)
\(\quad\) 在n(\(\geq\) 3)维数据集的某一维上指定若干维成员的选择操作
(3) 上卷(drill up)
\(\quad\) 在某一维上将低层次的细节数据概括到高层次的汇总数据
(4) 下钻(roll up)
\(\quad\) 从高层次的汇总数据深入到低层次的细节数据进行观察
(5) 转轴或旋转(pivot or rotate)
\(\quad\) 旋转是变换维的方向,即在表格中重新安排维的位置(例如行列互换)
(6) 其他操作
- 钻过(drill across):涉及多个事实表的查询
- 钻透(drill through):钻透立方体的底层,到后端关系表 (using SQL)
25 MOLAP和ROLAP的体系结构,工作原理
-
ROLAP(Relational OLAP):利用关系数据库来存储和管理基本数据和聚合数据,并利用一些中间件来支持缺失数据的处理,具有良好的可扩展性
-
MOLAP(Multidimensional OLAP):利用多维数组来存放和管理基本数据和聚合数据,其中需要对稀疏矩阵处理技术,可以对预综合的数据进行快速索引。
-
MOLAP和ROLAP的比较:
26 什么叫数据立方体的预计算?为什么要进行预计算?面临的问题有哪些?有哪些策略?
预计算的定义
多维分析中需要对具有不同综合程度的数据进行查询,因而需要对细节数据进行综合,综合的过程称为预计算
为什么要预计算
在存储空间充足的情况下,预计算可以大大加快查询响应时间。
面临的挑战
- 海量数据
- 有限的内存和时间
策略
- 尽量一次同时计算多个数据立方体
- 对每个数据立方体,计算时尽量选择在数据立方格结构中离自己最近的数据立方体进行聚集计算
- 多个数据立方体同时计算时尽量共享排序结果、扫描结果、缓存结果、划分结果等
27 完整数据立方体的预计算方法
Step1:将数组分成可装入内存的块(chunk)(当处理稀疏立方体时块还可以进一步被压缩,以避免空数组单元导致的空间浪费)
Step2:通过访问立方体单元,计算聚集(可以优化访问单元组的次序,使得每个单元被访问的次数最小化,从而减少内存访问和磁盘I/O的开销。)
由于要计算的立方体随维数指数增长,因而该方法仅适用于维数比较小的情况。当维数较大时,可以考虑使用冰山立方体计算方法(BUC算法)
28 什么叫数据泛化
\(\quad\) 数据库中的数据和对象通常包含原始概念层的细节信息,数据泛化就是将数据库中的跟任务相关的大型数据集从相对较低的概念层抽象到较高的概念层的过程。
\(\quad\) 主要方法一般有两种:数据立方体(OLAP使用的方法)和概念描述(面向属性的归纳方法)
29 面向属性的泛化方法有哪两种实现及规则
(1) 特征化:提供给定数据汇集的简洁汇总(例如按专业的成绩分布表)
(2) 比较:提供两个或多个数据集的比较描述(如男生和女生的对比)
五、模式挖掘
30 频繁模式挖掘相关概念(关联规则,支持度,置信度)
关联规则
关联规则是从频繁项集(经常一起出现的物品的集合)中提取的模式,它可以发现不同项之间的关联关系
支持度
指在所有交易中,同时包含项集\(X\)和\(Y\)的交易所占的比例。换句话说,它是项集\(X\)和\(Y\)一起出现的频率。支持度的计算公式为:
支持度的值介于0和1之间,值越高表示项集越频繁。在实际应用中,我们通常会设置一个最小支持度阈值,只有那些支持度超过这个阈值的项集才被认为是频繁的,值得进一步分析。
置信度
指在包含项集\(X\)的交易中,同时包含项集\(Y\)的条件概率。它衡量了在已知\(X\)发生的条件下,\(Y\)发生的可能性。置信度的计算公式为:
置信度的值同样介于0和1之间,值越高表示在\(X\)发生的情况下,\(Y\)发生的可能性越大。也就是说,规则\(Y\)依赖\(X\)的可能性比较高。
31 关联规则挖掘的步骤
Step 1:找出所有频繁项集
Step 2:由频繁项集产生强关联规则(即满足min_sup和min_conf的规则)
32 Apriori方法(原理,例子)
Apriori算法基本流程演示
33 FP-TREE(原理,例子)
34 为什么进行关联规则的主观性测试?有哪些指标及其特点(提升度)
主观性测试
客观兴趣度度量可以用于清除无趣的规则。但最终,只有用户才能确定一个规则是否有趣的,而且这种判断是主观的,因不同的用户而异。
常用指标
- 提升度
当\(lift(A,B)=1\),表名\(A\)与\(B\)无关,大于1为正相关,小于1为负相关
- Person 卡方检验
-
全置信度
给定项集\(X=\{i_1,i_2,..i_k\}\),\(X\)的全置信度定义为 $$all\_conf(X)=\frac{sup(X)}{max\_item\_sup(X)}=\frac{sup(X)}{max(sup(i_j)|\forall i_j\in X)}$$
其中\(max\_item\_sup(X)\)是项集X的最大项支持度。 -
余弦度量
给定两个项集A和B,A和B的余弦度量定义为\[consine(A,B)=\frac{P(A\cup B)}{\sqrt{P(A)P(B)}}=\frac{sup(A\cup B)}{\sqrt{sup(A)sup(B)}} \]余弦度量可以看做调和的提升度度量,两个公式不同之处在于余弦度量对A和B的概率乘积取平方根。通过取平方根,余弦值仅受\(A\)、\(B\)和\(A\cup B\)的支持度影响,而不受事务总个数的影响。
35 序列挖掘的相关概念
-
项集:事件(events)是一个项集,设\(I=\{i_1,i_2,...i_n\}\)是所有项的集合,在购物篮例子中,每种商品就是一个项。项集是由项组成的一个非空集合,表示为\((x_1,x_2,...x_q)\),其中\(x_k \in I\)。一个事件中所有项均不相同,每个事件可以有一个事件时间标识TID,也可以表示事件的顺序。
-
序列(sequence):事件的有序列表,序列s记作\(<e_1,e_2,…,e_l>\),其中\(e_j(1\leq j\leq l)\)表示事件,也称为s的元素。通常一个序列中的事件有时间先后关系,也就是说,\(e_j\)现在\(e_{j+1}\)之前。序列中的事件个数称为序列的长度,长度为k的序列称为k-序列。
-
序列数据库:元组\(<SID,s>\)的集合,其中SID是序列编号,s是一个序列,每个序列由若干事件构成。在序列数据库中每个序列的事件在时间或空间上是有序排列的。
-
子序列:对于序列t和s,如果t中每个有序元素都是s中一个有序元素的子集,则称t是s的子序列。例如:序列<(2),(1,3)>是序列<(1,2),(5),(1,3,4)>的子序列,因为(2)包含在(1,2)中,(1,3)包含在(1,3,4)中。而<(2,5),(3)>不是序列<(1,2),(5),(1,3,4)>的子序列,因为前者中项2和项5是一次购买的,而后者中项2和项5是先后购买的,这就是区别所在。
-
最大序列:如果一个序列s不包含在序列数据库S中的任何其他序列中,则称序列s为最大序列。
-
支持度与频繁序列:一个序列\(\alpha\)的支持度计数是指在整个序列数据库S中包含α的序列个数,即\(supportS(\alpha)=|\{(SID,s)|(SID,s)\in S\wedge \alpha是s的子序列\}|\)。若序列\(\alpha\)的支持度计数不小于最小支持度阈值min_sup,则称之为频繁序列,频繁序列也称为序列模式。长度为k的频繁序列称为频繁k-序列。
36 apriori-all算法(原理,例子)
Apriori-all算法解析
37 GSP算法(原理,例子)
GSP算法示例
六、分类评估和聚类方法
38 关于基于混淆矩阵的几个主要指标及其作用;特别是召回率和精度
二分类问题的混淆矩阵 | 预测结果类 | |||
+ | - | 总 | ||
实际类 | + | TP | FN | TP+FN |
- | FP | TN | FP+TN | |
总 | TP+FP | FN+TN | TP+FN+FP+TN |
分类模型的评价指标
(1) 准确率与误分类率
- 准确率(Accuracy Rate):\(AR=\frac{TP+TN}{TP+FN+FP+TN}\)
- 误分类率(Error Rate):\(ER=\frac{FP+FN}{TP+FN+FP+TN}\)
- 真正率(True Positive Rate)/灵敏度:\(TPR=\frac{TP}{TP+FN}\)
- 真负率(True Negative Rate)/特异度:\(TNR=\frac{TN}{TN+FP}\)
- 假正率(False Positive Rate):\(FPR=\frac{FP}{FP+TN}\)
- 假负率(False Negative Rate):\(FNR=\frac{FN}{FN+TP}\)
(2) 精度(查准率)
- Precision:\(P=\frac{TP}{TP+FP}\)
(3) 召回率(查全率、灵敏度、真正率)
- Recall:\(R=\frac{TP}{TP+FN}\)
P和R成反比,且还受分类阈值的影响
(4) F-SCORE(精度和召回率的调和均值)
-
召回率与精度权重相同:\(F=\frac{2RP}{R+P}\)
-
若将召回率权重设为精度的\(\beta\)倍:\(F_\beta=\frac{(1+\beta)^2PR}{\beta^2P+R}\)
-
在一些应用中,对查准率和查全率的重视程度有所不同。例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要. \(F\)度量的一般形式\(F_\beta\)能让我们表达出对查准率/查全率的不同偏好,\(\beta>1\)时查全率有更大影响,\(\beta<1\)时查准率有更大影响。
(5) OC曲线、ROC曲线、PR曲线
- OC曲线:通常用于通信领域来测试误报率。OC曲线的横坐标表示FPR,纵坐标表示TPR。
- ROC曲线:曲线上的点反映对同一信号刺激的感受性。ROC曲线的横坐标代表TPR,纵坐标代表FPR。ROC曲线的比较一般是按照FRR的区间进行比较,若在\(FRR\in [a,b]\)时曲线1的TRR比曲线2大,那么称在这个区间中曲线1的性能较好。ROC曲线下方的面积称为AUC值,理想情况下AUC=1,随机猜测情况下AUC=0.5。
- PR曲线:PR曲线的横坐标是精确率P,纵坐标是召回率R。如果一个学习器的PR曲线A完全包住另一个学习器B的PR曲线,则可断言A的性能优于B。若A和B发生交叉,可以根据曲线下方的面积大小来进行比较。此外,更常用的是平衡点BEP(P=R时的取值),BEP的值就是F-SCORE,F值越大,则认为该学习器的性能较好。
39 划分聚类基本思想和原理,K-means, K-medoid算法(原理,例子)
40 层次聚类基本思想和原理,AGNES, DIANA算法(原理,例子)
41 BIRCH算法相关概念,基本思想,例子
42 Chameleon基本思想和步骤
43 密度聚类相关概念(邻域,密度可达等)
- \(\epsilon\)-领域:
\(\quad\)给定对象的半径\(\epsilon\)内的领域。 - 核心对象 (Core object):
\(\quad\)一个对象的\(\epsilon\)-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象。 - 直接密度可达(DDR):
\(\quad\)给定一个对象集合D,如果p是在q的\(\epsilon\)-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。
\(\quad\)如下图,\(\epsilon=1cm\),MinPts=5,q是一个核心对象,对象p从对象q出发是直接密度可达的。p也是核心对象,对象b从p出发也是直接可达的
- 密度可达:
\(\quad\) 存在一个从p到q的DDR对象链。即如果存在一个对象链\(p_1,p_2,...p_n\),\(p_1=q\),\(p_n=p\),对\(p_i\in D\),(\(1\leq i\leq n\)),\(p_i+1\)是从\(p_i\)关于\(\epsilon\)和MitPts直接密度可达的,则对象p是从对象q关于\(\epsilon\)和MinPts密度可达的。 - 密度相连:
\(\quad\) 如果对象集合D中存在一个对象o,使得对象p和q是从o关于\(\epsilon\)和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的。(双向密度相连\(\Longleftrightarrow\)密度可达) - 噪声:
\(\quad\) 一个基于密度的簇是基于密度可达性的最大的密度相连对象的集合。不包含在任何簇中的对象被认为是“噪声”。
44 DB-SCAN算法,例子
DB-SCAN算法教学
45 OPTICS算法,例子
OPTICS算法教学
七、离群点分析
46 什么是离群点?离群点挖掘有什么意义?主要有哪几类方法
离群点定义
在样本空间中,与其他样本点的一般行为或特征不一致的点
离群点的来源
数据来源于异常(欺诈、入侵、不寻常实验结果)、数据变量的固有变换(基因突变、顾客新的购买模式)、数据测量和收集误差
离群点挖掘的意义
分析数据并及时发现异常,从而避免可能的损失(例如欺诈行为)或从中获取可能蕴含的重要的研究价值。
主要的挖掘方法
- 基于统计的方法(数据集分布模型的不和谐检验)
- 基于距离的方法(统计点的领域中包含的对象多少、利用K最近邻距离的大小)
- 基于密度的方法(K近邻算法,相对密度)
- 基于聚类的方法(CBOD算法)
- 基于偏差的方法
- 深度学习、小波变换、神经网络等的方法
47 基于距离和密度的离群点发现方法(相关概念,K最邻近距离,原理,例子)
基于距离的离群点检测算法
相关概念:
- p的k最近邻距离k-distance(p):除对象p外,至少k个对象o满足\(distance(p,o')\leq k-distance(p)\);至多k-1个对象o'满足\(distance(p,o')<k-distance(p)\)
- 点x的离群因子:\(OF1(x,k)=\frac{\sum_{y\in N(x,k)}{distance(x,y)}}{|N(x,k)|}\) (\(N(x,k)\)是不包含x的k-最近邻的集合)
算法流程:
输入:数据集D;最近邻个数k
输出:离群点对象列表
1:for all 对象x do
2: 确定x的k-最近邻集合N(x,k)
3: 确定x的离群因子 OF1(x,k)
4:end for
5:对OF1(x,k)降序排列,确定离群因子大的若干对象
6:return
(应注意:x的k-最近邻的集包含的对象数可能超过k。)
相对密度离群点检测算法
相关概念:
- 对象的局部领域密度:\(density(x,k)=(\frac{\sum_{y\in N(x,k)}{distance(x,y)}}{|N(x,k)|})^{-1}\)
- 相对密度:\(relative\_density(x,k)=\frac{\sum_{y\in N(x,k)}{density(y,k)}}{density(x,k)\times |N(x,k)|}\)
- 离群因子:\(OF2(x,k)=relative\_density(x,k)\)
算法流程:
1:{k是最近邻个数}
2:for all 对象x do
3: 确定x的k-最近邻N(x,k)。
4: 使用x的最近邻(即N(x,k)中的对象),确定x的密度density(x,k)。
5:end for
6:for all 对象x do
7: 确定x的相对密度relative density(x,k),并赋值给OF2(x,k)。
8:end for
9:对OF2(x,k)降序排列,确定离群点得分高的若干对象
48 基于聚类的离群点发现方法(原理,例子)
基于对象离群因子算法(TOD)
相关概念:
- 簇的摘要消息:给定大小为n簇\(C=\{C_1,C_2,...C_k\}\),C的摘要信息CSI(Cluster Summary Information)定义为\(CSI=\{n,Summary\}\),其中Summary由分类属性中不同取值的频度信息和数值属性的质心两部分构成,即
- 离群因子:假设据集D被聚类算法划分为k个簇对象p的离群因子OF3(p)定义为p与所有簇间距离的加权平均值,即\(OF3(p)=\sum_{j=1}^k{\frac{|C_j|}{|D|}\cdot d(p,C_j)}\)
算法流程:
- 一阶段,聚类:对数据集D进行采用一趟聚类算法进行聚类,得到聚类结果\(C=\{C_1,C_2,...C_k\}\)
- 二阶段,判定离群对象:计算数据集D中所有对象p的离群因子\(OF3(p)\),及其平均值\(Ave\_OF\)和标准差\(Dev\_OF\),满足条件:\(OF3(p)\leq Ave\_OF+\beta\cdot Dev\_OF (1\leq \beta\leq 2)\)的对象判定为离群点。(通常取\(\beta=1或1.285\))
基于簇的离群因子算法(CBOD)
相关概念:
- 离群因子:假设据集D被聚类算法划分为k个簇\(C=\{C_1,C_2,...C_k\}\)。离群因子\(OF4(C_i)\)定义为簇\(C_i\)与其它所有簇间距离的加权平均值,\(OF4(C_i)=\sum_{j=1,j\neq i}^k{\frac{|C_j|}{|D|}\cdot d(C_i,C_j)}\)
算法流程:
- 一阶段,聚类:
对数据集D进行聚类,得到聚类结果\(C=\{C_1,C_2,...C_k\}\) - 二阶段,确定离群簇:
计算每个簇\(C_i\)的离群因子\(OF4(C_i)\),按\(OF4(C_i)\)递减的顺序重新排列。求\(C_i\)中满足:\(\frac{\sum_{i=1}^b{|C_i|}}{|D|}\geq \epsilon (0<\epsilon <1)\)的最小下标b,将簇\(\{C_1,C_2,...C_b\}\)标识为‘outlier’类(即其中每个对象均看成离群),而将\(\{C_{b+1},C_{b+2},...C_k\}\)标识为‘normal’类(即其中每个对象均看成正常)。
八、推荐算法
49 基于用户的协同推荐算法(原理,例子)
基本思想:基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户
- 发现兴趣相似的用户:设\(N(u)\)为用户\(u\)喜欢的物品集合,\(N(v)\) 为用户\(v\) 喜欢的物品集。通常用 Jaccard 公式(\(w_{uv}=\frac{N(u)\cap N(v)}{N(u)\cup N(v)}\))或者余弦相似度(\(w_{uv}=\frac{N(u)\cap N(v)}{\sqrt{N(u)\times N(v)}}\))计算两个用户之间的相似度。
- 推荐物品:首先需要从矩阵中找出与目标用户 u 最相似的 K 个用户,用集合 S(u, K) 表示,将 S 中用户喜欢的物品全部提取出来,并去除 u 已经喜欢的物品。对于每个候选物品 i ,用户 u 对它感兴趣的程度用如下公式计算:\(p(u,i)=\sum_{v\in S(u,k)\cap N(i)}{w_{uv}\times r_{vi}}\),其中\(r_{vi}\)表示用户v对i的喜欢程度。
50 基于物品的协同推荐算法(原理,例子)
基本思想:与基于用户的CF类似,计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他
- 计算物品相似度
- 根据物品的相似度和用户的历史行为给用户生成推荐列表
51 基于内容的推荐算法(原理)
基本思想:根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。
- 特征提取:从内容中提取出能代表其特征的向量,目的是将内容转化为结构化的特征向量,便于后续的相似度计算和推荐生成
- 用户偏好学习(Profile Learning):通过分析用户的历史行为(如浏览、点击、评分等),将用户的兴趣表示为特征向量
- 相似度计算:通过计算内容特征向量和用户特征向量之间的相似度,系统可以推荐相似内容给用户
- 推荐生成:根据相似度计算结果,排序并选取相似度最高的若干内容推荐给用户