清华大学-数据挖掘:理论与算法(国家级精品课)

数据挖掘
加工数据,储存以及计算
从数据中挖掘出有用的信息。
为什么我感觉这和易学很像,易学是从生活中提取各种信息,并将其带入相应的模型来指导生活实践。比如通过生辰八字来推测吉凶祸福,通过风水也就是环境,来推测墓穴位置、好地方等。本质上都是对数据的分析和处理。
模式分类,数据挖掘概念与技术
跟踪国际会议(了解学科最新动态)
关于学术、论文网站。
机器学习、人工智能、统计学
Tell me and I forget.Teach me and I remember.Invole me and I learn.
什么是数据?
什么是大数据?
数据量大,速度大,数据类型多。
数据挖掘的用处之一是预测,预测犯罪,预测事件。
数据挖掘=知识发现,是否=模式识别?
数据-信息-知识-决策观点
P6
分类问题:训练模型,并通过模型对事物进行分类与预测。
模型,就是为了预测。
易学,将天地万物建模,以对生活中的各种事情进行预测。
模型对n维空间进行划分,数据项点落在哪儿,就被分为什么类。
数据分为训练集和测试集。
训练集用来训练、生成模型,测试集用来检验、校正模型。
Confusion Matrix 混淆矩阵
权重;衡量参数重要性的系数。
不同的错误的权重是不同的,错误与正确的权重也是不同的。这要看具体的正确或错误的具体影响。
用了模型和不用模型的差异,lift, 提升度。

P7 聚类
聚类的对象没有事先人为的标签
距离度量,样本距离的远近
把样本中距离相近的聚在一起
关联规则:买了一个商品,往往会同时买其他一个或多个商品。一个事件的发生往往伴随着其他时间的发生。也就是说,这些事件是关联的。
在实际的数据挖掘中,最困难的是数据预处理。
垃圾进,垃圾出。GIGO。
拥有正确格式的样本是获得有价值的模型的前提条件。若是没有正确、合适的样本,就不可能挖掘出有价值的规律与模型。
数据的清洗
P8 隐私保护与并行计算
有隐私保护的数据挖掘
获取数据时,即保护隐私,又获得需要的信息。
Cloud Computing 云计算
把算力当作资源,去租用,在需要大时加大租用量,需求小时减租。
并行计算 Parallel Computing
将复杂问题差分成若干子问题,交给多个设备同时进行计算。在整体上,问题以数倍的速度被解决。
GPU,科学计算也常用显卡来计算。
数据+算法+硬件=价值
No Free Lunch
决策树
数据挖掘不是创造规律,而是发现规律。进行数据挖掘的前提是,数据中要有规律可挖。
幸存者偏差;看到的样本就是有偏差的,从这些有偏差的样本中得到的规律往往也是有偏差的。如何从有偏差的样本数据中得到正确的、有价值的规律是需要大胆假设、小心求证、谨慎分析的。
真实的数据是很脏的,不能直接拿来用。
比如,不完整,冗余(属性太多,淹没有用属性)
如何处理缺失数据?:删,填。
删:若缺失的数据删掉对整体没有太大影响,大胆删掉。
填:根据其他属性合理推测未知数据,如通过在某地方的居住时间来推测买房子还是租房子。
离群点,outlier.
异常点,anomaly
利群的,不见得是异常的。
如何检测离群点
检测自己和邻居的距离,以及邻居和邻居的邻居的距离,对比之。
数据量太大,无法完全处理,通过采样减少数据量 进行处理。
大数据中的采样和统计学中的采样具有完全不同的涵义。大数据中的采样,是因为数据量太过庞大,计算机无法全部处理,所以随机抽取一些数据来进行处理。而统计学中的采样,是因为无法完全获取所有数据,才进行抽样检测。如无法完全统计全国人民的身高,只能抽取全国范围的部分人的数据来计算。
边缘点是最有价值的,可能5%的边缘点,拟合出来的结果就和100%的一样,那么就可以节省大量的资源。
数据标准化
数据描述,均值,极大值,极小值,中值,相关
r=0,说明两者线性不相关,并不是不相关。
数据可视化。
一图省万言。
高维可视化。
CiteSpace 文本可视化
Feature Selection 特征选择
选择合适的属性,能降低数据复杂度,进而简化模型,使模型更高效。
Entropy 熵 不确定性越大,熵越高。
信息熵 条件熵
信息增益,属性降低的不确定性。属性的信息增益越大,属性越好。
特征的提出 Feature Extraction
主成分分析

特征的提取,应该保留有效信息。
Variance: information 方差就是信息
方差越大,越能区分不同的数据项,信息越丰富,属性越重要。因此,选属性时,应该选择方差较大的那些属性。
属性在做投影时,应该用一条直线去拟合,然后旋转,使得丢失的信息最少。
降维,投影方向选的好,丢失信息少。
PCA不包含类信息
Reading Materials:
分类,Classification
分类能力是生物生存得基础能力
分类是有监督学习,需要老师来打标签
分类问题就是函数,输入一些东西,输出一些东西。
贝叶斯定理

先验概率,联合概率分布,条件独立,朴素贝叶斯
原本不独立,加上一个条件后就独立了。
如果忽略条件而只看到所谓的独立,这样得到的结论是站不住脚的。
Decision Making 做决策
用树的好处,可以理解规则
奥卡姆剃刀:如无必要,勿增实体。
在具有同样功能的前提下,我们通常选择更简单的那个。
给定一定的数据集,来生成决策树,如何衡量决策树的优劣?是否简单。
如何建立一个最简单的决策树。
把强大的属性放在上面。
如何选择属性?如何衡量属性的好不好?
属性能降低不确定性越多越好,属性带来的信息增益越大越好。这样的属性就应该放在决策树的上面。
Information Gain 信息增益
Entropy 熵,不确定性
ID3 Framework
建树,是递归结构
树太复杂了就会造成Overfitting
Overfitting 过学习,过拟合
A在测试集中的表现比B好,而在测试集中B的表现比A好。
如何防止过拟合
1.防止树长得太大 2.减枝
剪枝:从树梢开始,合并。

如果减得太多了,那么树就太简单了,就没有能力去把数据分开。
要在拐点处停手。
Neural Networks 神经网络 分类器
超平面 感知机 与门 或门
设置感知机权重 收敛 梯度下降
批处理 误差 求偏导 误差的梯度信息
学习率 一般用一个较小的学习率,让模型慢慢去改,而不是用很大的学习率一下子跳过了最优质。
Stochastic Learning
线性不可分问题
感知机,就是线性分类器,
解决不了线性不可分问题
与非门
亦或问题 XOR 同0,异1
线性不可分为题:一根线无论如何也分不开
学习,从概念开始,把一门学问比作是一个面,从概念开始,就是点亮这面中的一个个点。当连点成线,连线成图时,就对这门学问有一个较为系统的认识了。
NAND 与非门 Not And
Back Propagation Rule(BP算法) 逆传播
进化计算 深度学习,多层神经网络的学习
训练集,校验集,测试集
过学习时,模型的泛化能力降低,也就是解决不了没有见过的问题。防止过学习,也就是提高模型的泛化能力,使得模型能够正确解决从未见过的问题的能力。
最怕陷入局部最优解。
误差来回波动,也就是震荡,是因为学习率太大。学习率是可以随着训练过程动态调整的
前馈型网络,也就是BP网络
Elman Network
Support Vector Machines 支持向量机 SVM
SVM本质上是线性分类器

选择margin较大的选择器
有用的点叫做Support Vectors
支持向量机保证margin最大
1.样本分对 2.最大化margin
目标函数 拉格朗日乘数法

做好映射,就能把复杂问题变成简单问题
升维
SVM的核心操作是向量做内积
Kernel 核
核函数是提高SVM分类能力的关键
最初的SVM就是线性分类器,为了使margin最大,所以导出Linear SVM。但是实际问题中,样本点是交错的,是无论如何用直线是不可分的,所以就有了soft SVM,将数据升维,将低维的不可分化为高维的可分。
为了解决线性不可分问题,需要把数据映射到高维空间,就变成了线性可分问题。但是高位空间中,计算非常复杂,那就用一个核函数来简化计算。
VC Dimension
一条直线可以将三个点完美地分开,但是四个点就不行,那么“直线”这个模型的VC Dimension就是3。
矩形框可以将四个及以下的点完美地分开,但是五个及以上就不行了,说明矩形的VC Dimension是4.
一个模型可以将多少个点完美地分开,那么这个模型的VC Dimension 就是多少。
在n维空间中,VC dimension就是n+1.
比如,二维中,VC Dimension是3.
越复杂的模型,在未知样本中的风险就越大。所以,面对两个效果相同的模型,应该选择那个更简单的。
聚类 聚类模式
层次性聚类 在不同的层面,有不同的聚类规则
如中国人可分为各个省的人,各个省又分很多市。
聚类分析,寻找相似的事物,然后聚为一类。
簇内部差异较小,簇与簇之间差别较大。
Inter-Cluster outer-Cluster
事物之间距离的度量取决于具体的需求,比如从性别看,男生和男生更接近,女生和女生更接近。从关系上看,我们一家人更接近。
论学
不是为了学习而学习,而是为了变强而学习。
为什么要变强?因为我变强符合所有人的利益,所有人都期望我变强。哪怕是我的敌人。所以,我就众望所归,努力变强。因此,我要学习。
Silhouette 剪影 衡量聚类结果的函数
K-Means
首先生成K个随机中心点
然后把样本点分配到距它最近的中心点
然后用k个均值点来代替中心点
然后不断迭代

噪点对均值的影响很大

初始点选的不好容易这个样子

基于模型的聚类 概率密度估计
混合高斯模型,一个高斯分不开,那就用一组。
最大似然估计
隐含参数,虽然不是我们的目标参数,但是它的地位类似于辅助线,帮助我们更好地解决问题。
基于密度的聚类,类似于人眼对事物的感觉
DBSCAN 连通性 膨胀算法
Core Point 核心点 Border Point 边缘点
确定一个核心点后,膨胀,将尽可能多的点包含在一个簇中。
层次型聚类,聚类结果取决于从哪个或者哪些层面考察。
从最底层开始,把所有层面上的簇都聚在一起,直到左右的样本被聚为一类。中间是各个层面上的簇,根据需要去选择相应的层面。
最小生成树
关联规则 Association Rule
频繁集 关联规则
item 项,商品 itemset 项集 K-itemset 有k个商品的集 Transactions交易记录
support 支持度,本质上就是频率
买了牛奶的人同时买了面包这条规则的支持度,就是买了牛奶的人中同时买了面包的人的百分比
我们需要发现支持度高的规则。
Confidence 置信度
简单的说,就是条件概率

频繁项 强规则
一个规则很强,不代表它就是有益的。
Association≠Causality
有相关性,但不能代表有因果关系。
复杂度 The Apriori Method
一个事物不频繁,那么包含他的超集也必然不频繁,那就去掉所有包含不频繁事物的集合,剩下的,就是比较强大的规律。可以大大地减少计算量。
生成 计数 过滤
序列模式

主体的一个行为背后大概率对应着其他的行为,这种行为的先后关联,就是序列模式。
推荐算法 Recommendation Algorithms

向量空间模型 隐含模式分析
推荐的两个门类:基于内容的推荐 协同过滤
我们不是讨厌广告,而是讨厌那些自己不需要的广告。给光头卖洗发水,给盲人卖眼镜。
合适的推荐在商业中极其重要
TF-IDF Term Frequency 频率 Inverse Document Freuency tf*idf

单词-文本矩阵
向量空间模型


协同过滤 Collaborative Filtering
比如要推测一个人喜不喜欢某部电影,就去询问和他有相同喜好、品味的人喜不喜欢这部电影。进而推测出目标主体喜欢这个电影的概率。
冷启动 打分矩阵 相关性
集成学习 集体决策、共同头片来确定一件事情的例子,转化成算法,就是集成学习。
一个分类器达不到那么高的准确度,那就多整几个分类器,最后合起来。
又称为多分类器系统 他不是某个具体的算法,而是算法的集合。

同一组输入,交给不同的分类器、模型,最后把所有的分类器、模型的输出综合在一起,再做最终输出。
我不多选一,我全都要
Combiners

不同的分类器,有不同的权重。权重代表重要性。
不同的分类器用来集成学习才是有意义的。若是所有人都发出同一种声音,那么所谓的群策群力就没意义了,还不如问一个人。
要保证用来集成学习的分类器生成的模型大体上相似,但是又各有不同。
不需要保证每个分类器都很强,用很弱的分类器,可以合成很强大的分类器。用很强的分类器来进行集成学习,效果不一定好。
如何生成不同的训练样本,同时服从相似的分布?
Bootstarp Samples 有放回的采样

1.拿来一个数据集 2.采样n次,生成n个样本 3.用来生成n个分类器 4.然后那种结论多,就是输出哪种结论

随机森林 将很多树组合在一起。

用bootstrap,自然情况下,就会有三分之一的元素不被选中。那些被选中的就是训练集,那些没被选中的,就是自然生成的测试集。
一般不少于500棵树,具体数量要根据具体情况来确定。
feature selection 属性选择 RF Random Forest随机森林
Stacking 分层定高盘旋
两层训练, 第一层,输入数据,子分类器输出相应的输出。第二层,训练第一层输出的权重。

boosting 激励 训练分类器

基本思想:先训练两个分类器,然后对比两个分类器的结果。如果某样本在两个分类其中的分类结果不一致,说明两个分类器中肯定有一个分错了。对经常犯错的样本加上权重,然后让后续的分类器来重点学习这些前级分类器会出错的样本。核心思想就是对经常分错的样本进行重点照顾。

bagging能够降低模型的various
boosting对基础分类器的要求很弱很弱,甚至强过随机猜测就行。它是很多个较弱的分类器加在一起,胜过一个绝强的分类器。

模型串行训练,最后将所有的模型结合起来用。
十大算法之一

动态权重 根据不同的样本,分类器们各自拥有不同的权重。

bagging是并行生成,boosting是串行生成。
进化计算 进化 适者生存,而不是强者生存。
真正厉害的是能够完美适应环境变化的。
我们要学习自然,从自然中找灵感,而不是完全模仿自然。
优化问题 以需求为核心,以选择和行为为辅助,选择最能满足需求的做法。


目标函数 Objective Function
计算机最快可以算多快?和重量有关,开关开关,需要能量,能量和质量有关。能量的最小单位是能量子,与普朗克常数有关。

质量可以转化为算力,也就是理论上单位质量最大的算力。
用求导去优化,容易陷入局部最优的困境。
这时候可以用并行搜索,让多个模型同时搜索,这样就能尽量避免单一的模型陷入局部最优解。
Blondie 24 协同进化,自己跟自己下,水平提高。
一般情况下,程序的能力无法超过设计者的水平。或者能力在程序被设计的一开始就被定死了。但是使用进化计算的程序,它可以自我进化,可以逐渐提升自己的能力。
Gene 基因 Gene Trait 基因控制的性状 Allele 性状的集合
Genetic Algorithms 遗传算法 John Holland
chromosome 染色体 Mutation 变异

Representation表达 Crossover杂交

精英选择,把原来最好的,直接保送到下一代,防止杂交使得原来好的,变成不好的。
一点杂交 One Point Crossover 选择一个杂交位,其后面的交换位置,前面的不变。
Two Point Crossover 两点杂交 Uniform Crossover
Mutation 变异,保证基因的多样性。
杂交,选择出合适的基因组合。
选择,给最优秀的个体以资源倾斜。





在遗传算法中两个亲本杂交毫无意义,但是在GP中确实有意义的。


进化电路 Evolvable Circuits 可编程电路
Artificial Life
理论上讲,机器是人的身体与意志的延申,机器人、人工智能反过来压迫人类的情况,就像是人的手脚奴役人类一样。这可能会发生,比如某些坏习惯会让人控制不住自己的手脚,但是,相较于它们带来的收益或者进步意义来说,风险是可以接受的。