• 数据仓库概念
  • 数据理解与预处理
  • 关联规则
  • 分类算法
  • 聚类算法
  • 推荐系统

数据仓库概念

数据仓库是 面向主题 集成 时变 非易失的 。
面向主题:围绕主题 如顾客 供应商 而非日常的操作和事务处理
集成:将关系数据库 文件 联机事务处理集成起来
时变的:从历史(过去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年的考试卷子,题目还是很简单的,总体这门课算是不错的科普课

国科大数据挖掘课程总结相关推荐

  1. 使用selenium自动下载国科大(UCAS)课程资源

    使用selenium爬取国科大课程资源 有些课程的资源实在太多,难得手动去下载,再整理,故写了一个简单实用的爬虫程序,自动下载所有课程资源,保持文件(夹)的层级关系. 为了各位同学方便,贴出此博客,介 ...

  2. 计算机科学与技术国科大,朋辈说‖国科大计算机科学与技术专业漫游指南

    编者按 为了帮助同学们更好地了解国科大提供给学生的学习机会以及留学申请环节,做好对未来的规划,国科大官微特别开设"朋辈说"专栏,共享国科大本科生的所见所学和所思所想.今天,国科大2 ...

  3. 国科大高级AI考试证明题整理

    系列文章目录 提示:国科大其他课程资料整理 国科大高级AI--强化学习(格子问题) 国科大高级AI--博弈论以及相关考题 国科大高级AI--一阶谓词逻辑 国科大高级AI--证明题历年考题 国科大高级A ...

  4. 最硬核毕业证:带着自己设计的芯片毕业,国科大16级本科生交付「一生一芯」首期成果...

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 15 分钟. 来自:知乎 链接:https://www.zhihu.com/question/409298856 近日,五位来 ...

  5. 最硬核毕业证:带着自己设计的芯片毕业,国科大 16 级本科生交付「一生一芯」首期成果...

    公众号关注 "GitHubPorn" 设为 "星标",每天带你逛 GitHub! 编辑 | 机器之心 作者 | 包云岗 近日,五位来自中国科学院大学的 2016 ...

  6. c语言涛涛,首批国家级一流本科课程!国科大这些“金课”入选啦

    日前,教育部公布 首批国家级一流本科课程认定结果 国家级五大"金课"首次亮相 中国科学院大学 5门线下一流课程获得认定 线下一流课程主要 通过教学方法创新 实现对传统课堂教学的改革 ...

  7. 中国科学院大学(国科大)未选课程加入课程网站(旁听蹭课专用!!!)

      没来国科大之前,就听说国科大选课的火爆,一来果然是这样.全是精品课程,都想去上但又怕自己考试周爆炸怎么办,那当然是旁听了,但是旁听的话不能加入课程网站,就不能做作业看课件,这样感觉学不到一门课程的 ...

  8. 高级人工智能(国科大2021-2022秋季学期课程)-基础概念及算法

    高级人工智能-沈华伟-国科大2021-2022秋季学期课程 连接主义(神经网络.深度学习) 搜索问题 启发式算法 贪婪最佳优先搜索 A*搜索 A*树搜索 A*图搜索 传教士和野人问题 归结原理中的应用 ...

  9. 自然语言处理(国科大2021-2022秋季学期课程)-基础概念及算法

    自然语言处理-刘洋-国科大2021-2022秋季学期课程 数学基础 拉格朗日乘子法 熵.相对熵.交叉熵 隐马尔科夫模型 马尔科夫模型 前向.后向算法:观测状态序列概率计算 前向概率 后向概率 Vite ...

最新文章

  1. 孙子算经余数C语言,行测数量关系备考:探索《孙子算经》之剩余定理
  2. Nginx搭建静态网站
  3. 人工智能领域最重要的10大里程碑:AlphaGo征服世人
  4. 实现一个包含Microsoft.Advertising和SmartMad广告控件的UserControl
  5. struts2 跳转类型 result type=chain、dispatcher、redirect
  6. mysql1064 at line 6,MySQL错误1064语法,但一切似乎都很好
  7. 【Python】二维数组,使用 * 号来进行重复,导致结果不符合预期
  8. Java类名.方法和变量
  9. libvirt热迁移报Connection refused错误解决办法
  10. python去重排序_python文本去重并排序
  11. TeamTalk Base静态库说明
  12. [渝粤教育] 泰州学院 信息技术基础 参考 资料
  13. WordPress个人博客Cosy3.1.3主题+积木部分插件
  14. Linux查看服务器硬件网卡cpu型号内存BIOS、主板型号信息
  15. 现在国内最牛逼的 Spring CloudAlibaba全栈操作手册,不接受反驳
  16. 浅谈Unity中的文字显示
  17. python jupyter notebook怎么调字体大小_配置Jupyter的代码主题 字体以及字体大小 代码自动补全...
  18. 台达PLC中的寄存器如何进行高低位调换?
  19. Matlab报错——数组索引必须为正整数或逻辑值
  20. 华为android10系统版本自动更新,华为P30系列系统重大升级!安卓10来了

热门文章

  1. 案例:三个和尚(升级版)
  2. VBS调用ping检测ip连通情况
  3. 游戏开发心得——书籍篇——《游戏引擎框架》-导论
  4. PHPexcel文档 laravelExecl可参考
  5. 11.28计算机导论课后总结
  6. 解决IDEA中使用git插件提交代码乱码问题
  7. ProcessingJoy —— 扭来扭去【JAVA】【GLSL】
  8. 圆锥曲线万能弦长公式_圆锥曲线的弦长公式及其推导过程
  9. JDK8 源码包 外加注释
  10. 一条B站广告,带动市值增长5亿!UP主“何同学”有什么魔力?