数据挖掘分析考试笔记
文章目录
英译汉
- KDD, Knowledge Discovery in Database 知识发现
- supervised learning 监督学习
- Batesian Classification 贝叶斯分类
- Agglomeration 凝聚
- Division 分裂
- information retrieval 信息检索
- Knowledge Engineering 知识工程
- OLTP(On-Line Transaction Processing) 联机事务处理
- OLAP(On-Line Analytic Processing) 联机分析处理
- Decision Support 决策支持
- Distributed Database 分布式数据库
- Lattice of Closed Itemset 闭合项目集格空间
- Parallel Association Rule Mining 并行关联规则挖掘
- Quantities Association Rule Mining数量关联规则挖掘
- KNN(k-Nearest Neighbors) k最临近
- decision tree 决策树
- overfitting 过拟合
- Iterative Dichotomization
- Expectation-Maximization
- PAM(partitioning around medoid) 围绕中心点的划分
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 基于密度的噪声应用空间聚类
- Partitioning method 划分方法
- Hierarchical method 层次方法
- Grid-based method 基于网格的方法
- STING(Statistical Information Grid-based Method) 基于网格的统计信息方法
- Time Series 时间序列
- AR(Auto Regressive) 自回归
- Sequential Mining 序列挖掘
- Offset Translation 偏移变换
- Subsequence Ordering 子序列排序
- Crawler 爬虫
- Look up Page 查找页
- posterior probability 后验概率
- prior probability 先验概率
第一章 绪论
-
数据挖掘概念
数据挖掘是从大量的、不完全的、模糊的、有噪声的、随机的数据集中识别有效的、新颖的、潜在可用的信息,以及最终可理解的模式的非平凡过程。
-
数据挖掘与知识发现的关联性
-
KDD是数据挖掘的一个特例
-
数据挖掘是KDD过程的一个步骤
数据挖掘是在KDD中通过特定的算法在可接受的计算效率限制内生成特定模式的一个步骤。
-
含义相同
-
第二章 知识发现过程与应用结构
-
KDD的阶段划分、功能、任务
-
问题定义
和领域专家及最终用户紧密协作,一方面了解相关领域的有关情况、熟悉背景知识、弄清用户要求、确定挖掘目标等要求,另一方面通过对各种学习算法的对比而确定可用的学习算法
-
数据采集
选取相应的源数据库,并根据要求从数据库中提取相关的数据
-
数据预处理
对前一阶段的数据进行再加工,确定数据的完整性和一致性
-
数据挖掘
运用选定的数据挖掘算法,从数据中提取出用户所需要的知识
-
模式评估
将KDD系统发现的知识以用户能理解的方式呈现,并且根据需求对知识进行评价,如果发现的知识和用户所需要的不一致,则重复以上阶段以最终获得可用知识
-
第三章 关联规则挖掘
频繁项目集:大于或等于MinSupport的项目集合的非空子集,称为频繁项目集
强关联规则:事务数据库在项目集合上满足最小支持度和最小置信度的关联规则成为强关联规则
关联规则挖掘问题可以划分成两个子问题:
-
发现关联规则
**通过用户给定的最小支持度,寻找所有的频繁项目集,即满足Support不小于MinSupport的所有项目集合
-
生成关联规则
通过用户给定的最小置信度,在每个最大频繁项目集中,寻找Confidence不小于MinConfidence的关联规则
Apriori算法
原理:频繁项目集的所有非空子集都是频繁项目集,非频繁项目集的所有超集都是非频繁项目集
Apriori(发现频繁项目集)
输入:项目集合D,最小支持度minsup_count
输出:频繁项目集L
L 1 L_1 L1 = {lager 1-itemsets};
FOR(k = 2; L k − 1 ≠ Φ L_{k-1} \neq \Phi Lk−1=Φ; k++) DO BEGIN
C k C_k Ck = apriori_gen( L k − 1 L_{k-1} Lk−1);
FOR all trancation t ∈ \in ∈D DO BEGIN
C t C_t Ct = subset( C k C_k Ck, t);
FOR all condiation c ∈ \in ∈ C t C_t Ct DO c.count++;
END
L k L_k Lk = {c ∈ \in ∈ C k C_k Ck | c.count ≥ \geq ≥minsup_count}
L = ∪ \cup ∪ L k L_k Lk
apriori_gen(候选集生成)
输入:(k-1)-频繁项目集 L k − 1 L_{k-1} Lk−1
输出:k-候选项目集 C k C_k Ck
FOR all itemset q ∈ \in ∈ L k − 1 L_{k-1} Lk−1 DO
FOR all itemset p ∈ \in ∈ L k − 1 L_{k-1} Lk−1 DO
IF q.item1 = p.item1, q.item1 = p.item ⋯ \cdots ⋯ q.itemk-2 = p.itemk-2, q.itemk-1 < p.itemk-1
THEN BEGIN
c = q ∞ \infty ∞p
IF has_inference_subset(c, L k − 1 L_{k-1} Lk−1)
delete c
ELSE IF
add c to C k C_k Ck
END
Return C k C_k Ck
has_inference_subset(判断候选集元素)
输入:候选集c,(k-1)-频繁项目集 L k − 1 L_{k-1} Lk−1
输出: L k − 1 L_{k-1} Lk−1中是否含有c的全部(k-1)-子集的布尔判断(c是否被删除的布尔判断)
FOR all (k-1)-itemset of c DO BEGIN
IF s ∉ \notin ∈/ L k − 1 L_{k-1} Lk−1 THEN Return TRUN
Return FALSE
close算法
原理:一个频繁闭合项目集的闭合子集一定是频繁的,一个非频繁闭合项目集的闭合超集一定是非频繁的。
计算:见colse算法PPT
FP-tree
FP-tree算法主要由两个步骤完成:
- 利用事务数据库中的数据构造FP-tree
- 从FP-tree中挖掘频繁模式
只需两次数据库的扫描:
- 对所有1-项目集的频度排序
- 将数据库信息转变成紧缩内存结构
算法例子:
TID | Itemset |
---|---|
1 | A,B,C,D |
2 | B,C,E |
3 | A,B,C,E |
4 | B,D,E |
5 | A,B,C,D |
扫描一次数据库,得到频数排序
item | count |
---|---|
B | 5 |
C | 4 |
A | 3 |
D | 3 |
E | 3 |
根据频数对事务数据库重新排列
TID | Itemset |
---|---|
1 | B,C,A,D |
2 | B,C,E |
3 | B,C,A,E |
4 | B,D,E |
5 | B,C,A,D |
构造FP-tree
寻找路径生成频繁项目集
item | 条件模式基 | 条件FP-tree | 产生的频繁模式 |
---|---|---|---|
A | {(BC:3)} | BC:3 | AB,AC,ABC |
B | NULL | NULL | NULL |
C | {(B:4)} | B:4 | BC |
D | {(BCA:2),(B,1)} | BCA:2 | AD,BD,CD,ABD,BCD,ACD,ABCD |
E | {(BD,1),(BC,2),(BCA,1)} | BC:2 | BCE |
最大频繁项目集{BCE, ABCD}
第四章 分类
分类两个步骤
-
建立一个模型,描述预定的数据类集或概念集
-
使用模型进行分类。首先评估模型的预测准确率,如果准确率可以接受,那么就用他来对类标号未知的元组进行分类
基于距离的类标识搜素算法
输入:每个类的中心 C 1 C_1 C1, C 2 C_2