国科大数据挖掘课程总结

来源:互联网 发布:查看linux防火墙状态 编辑:程序博客网 时间:2024/06/06 18:43
  • 数据仓库概念
  • 数据理解与预处理
  • 关联规则
  • 分类算法
  • 聚类算法
  • 推荐系统

数据仓库概念

数据仓库是 面向主题 集成 时变 非易失的 。
面向主题:围绕主题 如顾客 供应商 而非日常的操作和事务处理
集成:将关系数据库 文件 联机事务处理集成起来
时变的:从历史(过去5-10年)提供数据
非易失:数据仓库主要两种操作数据初始装入和 访问 不需要并非事务等

数据理解与预处理

由于数据缺失,数据噪声(Salary=10),数据类型不一致(rating可以用1,2,3也可用A,B,C表示)导致数据需要进行预处理。
预处理过程主要分为:
1) 数据清洗:处理缺失值 平滑噪声和离群点,解决数据不一致问题
2) 数据集成:将多种数据库,文件,数据立方体数据集成
3) 数据转换:将数据正则化
4) 数据降维和连续数据离散化
离散数据理解:
四分位点:Q1(25%),Q3(75%)
IQR range=Q3-Q1
Five number summery:min Q1 medium Q3 max
outlier:大于或小于1.5倍 IQR
盒图:
这里写图片描述

盒图是在1977年由美国的统计学家约翰•图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如上图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。
由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即

这里写图片描述

• IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
• 最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
• 最大观测值为max = Q3 -1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。

通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:
1. 直观地识别数据集中的异常值(查看离群点)。
2. 判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

Q-Q图:
首先,数据值经过排序,且累积分布值按照公式 (i– 0.5)/n 进行计算,其中字母表示总数为 n 的值中的第 i 个值(累积分布值给出了某个特定值以下的值所占的数据比例)

Q-Q图详解

数据清洗:
对于噪声的平滑
等距离分区:将数据划分成N个箱,A,B是数据的最大和最小值,W=(A-B)/N,则Bin1=[B,B+W],[B+W,B+2W]……
等深度分区:分成N个区间 每个区间中的数据量相等
对于Bin中的数据可使用平均数进行平滑 同时也可用Bin边界进行平滑。
例如:
这里写图片描述

如果使用等宽分割的话 W=(34-4)/3=10
则Bin1=4,8,9
Bin2=15,21,21,24
Bin3=25,26,28,29,34

数据正则化:
正则化:min-max正则化 , Z-score正则化
这里写图片描述

数据相关性分析
在数据集成的时候,如果一个属性能够被另一个属性导出则该属性是冗余的,可通过相关性分析来检测冗余。

皮尔逊相关系数:
这里写图片描述
例如:
这里写图片描述

e11=count(playchesee)*count(Like science fiction)/1500=300*450/1500=90

这里写图片描述
具有自由度 (r-1)(c-1)=(2-1)(2-1)=1

属性子集选择
属性子集选择介绍

关联规则

频繁项集:如果项集I满足最小支持度阈值,则为频繁项集
支持度 support(A=>B)=P(A∩B)
置信度 confidence(A=>B)= P(A∩B)/P(A)
lift参数:
这里写图片描述

如果大于1,则是正相关 小于1则是负相关的 等于1则是无关

Apriori算法
L1={frequent single item}
for(k=2;Lk-1!=空;k++) do begin:
Ck=candidates from Lk-1
for each transaction t do
increment the count of all candidates in Ck
end
Lk=candidates in Ck with min_support
end
return L=U Lk
扫描一遍数据库 得到C1,根据最小置信度 找出frequent1
从k频繁项集中找出k+1频繁项集(注意在L2的时候将L1中两个组合 但是在L3的时候,并不是将L2中两两组合形成C3,而是C3中的每一个候选项的二元组都是频繁的)
在数据库中测试候选项是否满足要求

例如:
这里写图片描述

由频繁项集产生关联规则:
包含频繁项集{B,C,E,BC,BE,CE}
BC=>E置信度为100%
BE=>C 2/3
CE=>B 100%
B=>CE 2/3
C=>BE 2/3
E=>BC 2/3

FP-Tree
1. 第一次扫描与Apriori算法一致 得到频繁1项集 并降序排列
这里写图片描述

得到频繁项集
这里写图片描述

将每一个transaction按照频繁项集的顺序排序 将非频繁的项剔除
这里写图片描述

首先创建根节点 用null表示
扫描每一个transaction 生成FPtree 例如T100构造第一个分支 ,,,,,其中f作为根的子女连接到根 其他依次连接
第二个transaction也生成包含 f,c,a,b,m的分支 因为已经存在共享前缀f,c,a,因此将f,c,a计数加一,并创建新节点b连接到a,m连接到b
这里写图片描述

FP树挖掘过程:
这里写图片描述

首先 从表的后端开始
首先是I5 其有两条路径组成 一个是 I2:1-I1:1-I5:1,另一个是 I2:1-I1:1-I3:1-I5:1,因此条件模式基为 {I2,I1:1},{I2,I1,I3:1}
同理对于I4 分别由 I2:1-I1:1–I4:1,和 I2:1-I4:1两条路径组成 因此条件模式基为{I2,I1:1},{I2:1},
对于 I3: 分别由I2:2—》I1:2—》I3:2,I2:2—-》I3:2;I1:2—-》I3:2组成,因此条件模式基为{I2,I1:2},{I2:2},{I1:2}
对于I1分别由路径 I2:4—》I1:4,I1:2组成,所以 条件模式基为 {I2:4}

由条件模式基生成条件TP树
对于I5 因为I3只有1,最小支持度为2,因此舍去{I2,I1:1},{I2,I1,I3:1}具有相同前缀合并可得

分类

  1. 决策树
    信息增益:ID3使用信息增益作为属性选择的度量(倾向于选择大量值的属性,每个属性都有一个值则分离出来信息熵为0,但是这种划分并无用处)
    这里写图片描述


这里写图片描述

贝叶斯分类
这里写图片描述
这里写图片描述

神经网络的计算

使用混淆矩阵
这里写图片描述

准确率:(True Positive+TrueNegative)/pos+neg
错误率=1-准确率
召回率: true positive/pos
精度:True positive/t-postive+f-positive

聚类

聚类分析中不同数据类型的处理方法
Binary数据(即属性值不是1就是0)
这里写图片描述
对于对称属性而言 :如果它的两个状态有相同的权重, 那么该二元变量是对称的,也就是两个取值 0或 1 没有优先权。例如,属性“性别”就是这样的一个例子,它有两个值:“女性”和“男性”。基于对称二元变量的相似度称为恒定的相似度,即当一些或者全部二元变量编码改变时,计算结果不会发生变化

这里写图片描述

对于非对称属性而言:如果两个状态的输出不是同样重要,那么该二元变量是不对称的。例如一个疾病检查的肯定和否定的结果。根据惯例,我们将比较重要的输出结果,通常也是出现几率较小的结果编码为 1(例如,HIV阳性),而将另一种结果编码为 0(例如 HIV阴性)。给定两个不对称的二元变量,两个都取值 1 的情况(正匹配)被认为比两个都取值 0 的情况(负匹配)更有意义。因此,这样的二元变量经常被认为好像只有一个状态

这里写图片描述

例如:
这里写图片描述

对于名词性属性:
取值可以超过两个 例如颜色属性 可以取红,绿,蓝

这里写图片描述

P表示有p个属性 m表示有m个属性取值相同

顺序属性:比如排名
将每个次序Xij值替换为它的排名值,对其按照interval-scaled进行处理
这里写图片描述

interval-scaled属性 使用平均绝对误差(对于只有一个属性的误差就是 两组数据在该属性上的差的绝对值):
这里写图片描述

对于混合属性:
例如:
这里写图片描述

这里写图片描述

K-mean算法:
时间复杂度(O(ktn)):k代表簇数,t代表循环次数 n代表objects数目
优点:效率高
缺点:需要自行设定k,不能有效处理噪声和离群点,无法处理非凸情况

例如:Suppose that the data mining task is to cluster the following ten points (with(x, y, z) representing location) into three clusters:

A1(4,2,5), A2(10,5,2), A3(5,8,7), B1(1,1,1), B2(2,3,2), B3(3,6,9), C1(11,9,2),C2(1,4,6), C3(9,1,7), C4(5,6,7) (数值计算可能有错误)

distance(a1,a2)=√(〖(10-4)〗^2+〖(5-2)〗^2+〖(2-5)〗^2 )=7.35
distance(a1,a3)=√(〖(5-4)〗^2+〖(7-2)〗^2+〖(8-5)〗^2 )=5.92
distance(a1,b2)=√(〖(4-2)〗^2+〖(2-3)〗^2+〖(5-2)〗^2 )=3.74
distance(a1,b3)=√(〖(4-3)〗^2+〖(2-6)〗^2+〖(5-9)〗^2 )=5.74
distance(a1,c2)=√(〖(4-1)〗^2+〖(2-4)〗^2+〖(5-6)〗^2 )=3.74
distance(a1,c3)=√(〖(4-9)〗^2+〖(2-1)〗^2+〖(5-7)〗^2 )=5.48
distance(a1,c4)=√(〖(4-5)〗^2+〖(2-6)〗^2+〖(5-7)〗^2 )=4.85

同理对于各点到b1,c1的距离如下
distance(b1,a2)=9.90
distance(b1,a3)=10.05
distance(b1,b2)=2.45
distance(b1,b3)=9.64
distance(b1,c2)=5.83
distance(b1,c3)=10.00
distance(b1,c4)=8.77
distance(c1,a2)=4.12
distance(c1,a3)=8.72
distance(c1,b2)=10.82
distance(c1,b3)=11.05
distance(c1,c2)=11.87
distance(c1,c3)=9.64
distance(c1,c4)=8.37
则根据各点到各簇中心距离的最小值可分为如下三簇:
Cluster1:a1,a3,b3,c2,c3,c4
Cluster2: b1,b2
Cluster3: c1,a2
计算各个簇的均值可得:
Cluster1:(4.5,4.3,7)
Cluster2:(1.5,2,1.5)
Cluster3:(10.5,7,2)
计算各点到新的簇心的距离
diastace(m1,a1)=3.08
distance(m2,a1)=4.30
distance(m3,a1)=8.73
distance(m1,a2)=7.69
distance(m2,a2)=9.03
distance(m3,a2)=2.06
distance(m1,a3)=2.92
distance(m2,a3)=8.92
distance(m3,a3)=8.14
distance(m1,b1)=8.22
distance(m2,b1)=1.22
distance(m3,b1)=11.28
distance(m1,b2)=6.26
distance(m2,b2)=1.22
distance(m3,b2)=9.39
distance(m1,b3)=3.26
distance(m2,b3)=8.63
distance(m3,b3)=10.31
distance(m1,c1)=9.05
distance(m2,c1)=11.81
distance(m3,c1)=2.06
distance(m1,c2)=4.39
distance(m2,c2)=4.95
distance(m3,c2)=10.74
distance(m1,c3)=5.10
distance(m2,c3)=9.35
distance(m3,c3)=7.95
distance(m1,c4)=1.62
distance(m2,c4)=7.65
distance(m3,c4)=7.50
因此在此聚类后结果依旧是
Cluster1:a1,a3,b3,c2,c3,c4
Cluster2: b1,b2
Cluster3: c1,a2
停止迭代所以最终结果为
Cluster1:a1,a3,b3,c2,c3,c4
Cluster2: b1,b2
Cluster3: c1,a2

推荐系统

  1. content-based:
    核心是寻找user和所有item之间的相似度
    将user喜好和item描述都用k维向量表示

Ij=(Ij1,Ij2……Ij.k)
Ui=(Ui1,Ui2…….Uik)
相似度用余弦交表示

这里写图片描述
协同过滤
1. 计算现有的user和目标user之间的相似程度
2. 选择n个现有user作为目标user的邻居
3. 通过和该用户相似的用户给该商品的打分
4. 将item得分最高的推荐给用户
计算各个用户之间的相似程度
这里写图片描述
这里写图片描述

sim(John,Jane)=(3*3+3*1+3*0)/(√(3*3+1*1+0*0)*√(3*3+3*3+3*3))=0.73
sim(joe,jane)=(5*3+0*1+2*0)/( √(5*5+2*2)*√(3*3+1*1))

如果neighbor=2选择最相近的两个作为neighbor
r=自身平均+相似度*(打分-打分自身平均)/相似度和

这里写图片描述

看到最后算是一个福利吧,17年的考试卷子,题目还是很简单的,总体这门课算是不错的科普课

这里写图片描述

这里写图片描述

这里写图片描述