exam

机器学习

1、概念

机器学习:计算机模拟人进行学习,从数据中不断获取新的信息或技能以改善自身的性能

监督学习:教计算机如何去完成任务。它的数据集是有标签的,训练目标是能够给新数据(测试数据)以正确的标签(训练数据有目标数据项,用训练数据训练出目标模型)
分类问题:预测离散值的输出,区分类别
回归问题:预测一个连续值的输出,预测之后的拟合值
无监督学习:让计算机自己去进行学习,它的数据集是无标签的,训练目标是对观察值进行分类或者区分等。(用训练数据训练出模型,自己归类或拟合出目标模型)

2、K-means具体 手动计算 欧氏距离

思想:
首先指定需要划分的簇的个数k值;
然后随机地选择k个初始数据对象点作为初始的聚类中心;
接着计算其余的各个数据对象到这k个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中,
最后调整新类并且重新计算出新类的中心,如果两次计算出来的聚类中心未曾发生任何的变化,那么就可以说明数据对象的调整己经结束,也就是说聚类采用的准则函数是收敛的,表示算法结束。
步骤:
(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;
(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
(3) 重新计算每个(有变化)聚类的均值(中心对象);
(4) 计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则回到步骤(2)
评估标准:
簇内相似度高且簇间相似度低

举例如下:
我搞了6个点,从图上看应该分成两推儿,前三个点一堆儿,后三个点是另一堆儿。现在手工执行K-Means,体会一下过程,同时看看结果是不是和预期一致。
image

第一步:选择初始大哥:选P1、P2(初始质心)

第二步:计算小弟和大哥的距离

P3到P1的距离从图上也能看出来(勾股定理),是√10 = 3.16;P3到P2的距离√((3-1)2+(1-2)2 = √5 = 2.24,所以P3离P2更近,P3就跟P2混。同理,P4、P5、P6也这么算,如下:
image
P3到P6都跟P2更近,所以第一次站队的结果是:
·组A:P1
·组B:P2、P3、P4、P5、P6

第三步:人民代表大会

组A没啥可选的,大哥还是P1自己
组B有五个人,需要选新大哥,这里要注意选大哥的方法是每个人X坐标的平均值和Y坐标的平均值组成的新的点,为新大哥,也就是说这个大哥是“虚拟的”。
因此,B组选出新大哥的坐标为:P哥((1+3+8+9+10)/5,(2+1+8+10+7)/5)=(6.2,5.6)。
综合两组,新大哥为P1(0,0),P哥(6.2,5.6),而P2-P6重新成为小弟。

第四步:再次计算小弟到大哥的距离

image
这时可以看到P2、P3离P1更近,P4、P5、P6离P哥更近,所以第二次站队的结果是:
·组A:P1、P2、P3
·组B:P4、P5、P6(虚拟大哥这时候消失)

第五步:第二次人民代表大会

按照上一届大会的方法选出两个新的虚拟大哥:P哥1(1.33,1) P哥2(9,8.33),P1-P6都成为小弟。

第六步:第三次计算小弟到大哥的距离

image
这时可以看到P1、P2、P3离P哥1更近,P4、P5、P6离P哥2更近,所以第二次站队的结果是:
·组A:P1、P2、P3
·组B:P4、P5、P6
我们发现,这次站队的结果和上次没有任何变化了,说明已经收敛,聚类结束,聚类结果和我们最开始设想的结果完全一致。

3、模型评估 指标:精确度。。以及指标计算

查准率 查全率

查准率(准确率):描述检索到结果中有多少是正确的
查全率(召回率):描述所有正确的结果中有多少被检索出来了
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(TP),假反例(FN),假正例(FP),真反例(TN),具体分类结果如下 :
image
真阳性(TP)——正确的肯定
真阴性(TN)——正确的否定
假阳性(FP)——错误的肯定,假报警,第一类错误
假阴性(FN)——错误的否定,未命中,第二类错误
查准率P和查全率R分别定义为:
image image
查准率关心的是”预测出正例的正确率”即从正反例子中挑选出正例的问题。预测结果中真正的正例的比例。
查全率关心的是”预测出正例的保证性”即从正例中挑选出正例的问题。所有正例中被正确预测出来的比例。
imageimage

F1度量

image

Fβ度量

image

PR曲线

在linear model中,我们对各个特征线性组合,得到linear score,然后确定一个threshold,linear score ﹤threshold 判为负类,linear score ﹥threshold 判为正类。画PR曲线时, 我们可以想象threshold 是不断变化的。首先,threshold 特别大,这样木有一个是正类,我们计算出查全率与查准率; 然后 threshold 减小, 只有一个正类,我们计算出查全率与查准率;然后 threshold再减小,有2个正类,我们计算出查全率与查准率;threshold减小一次,多出一个正类,直到所有的类别都被判为正类。 然后以查全率为横坐标,查准率为纵坐标,画出图形即可。
PR曲线绘制前提:
image
image
image
image
image

Roc曲线 绘画 以及 计算

P-R图:
纵坐标:p查准率 P = TP/(TP+FP)
横坐标:r查全率 R = TP/(TP+FN)
若pr曲线A包住B则学习器A的性能优于学习器B的性能

ROC曲线
纵坐标:真正例率 TPR = TP/(TP+FN)
横坐标:假正例率 FPR = FP/(FP+TN)
若一个学习器的ROC曲线被另一个学习器的曲线完全包住,则后者的性能优于前者
若两者曲线发生交叉,则难以判断,合理判据是比较ROC曲线下的面积,即AUC
image
image

4、线性规划模型 带正则化 梯度下降法

线性规划模型

image
image
image
image
image

线性回归正则化的梯度下降和正规方程

imageimage
正则化后的梯度下降
image

梯度下降法

梯度下降法作用:能够找出cost function函数的最小值;
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
方法:
(1)先确定向下一步的步伐大小,我们称为Learning rate;
(2)任意给定一个初始值:;
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新;
(4)当下降的高度小于某个定义的值,则停止下降;
算法:
image

学习率的作用

学习率决定了下降的步伐大小,下降的步伐大小非常重要,因为如果太小则找到函数最小值的速度就很慢,如果太大,则可能会超过最小值,无法收敛甚至发散;

正规方程

采用矩阵运算能够直接求解出参数θ。假设一个数据集X有m个样本,n个特征。则假设函数为:image,数据集X的特征向量表示为:
image
image

梯度下降法和正规方程对比

image
image

正则化

image
image
正规
image

正则化参数的目标

λ在这里我们称做正则化参数。λ 要做的就是控制在两个不同的目标中的平衡关系。它的目标:
1、第一个目标就是我们想要训练,使假设更好地拟合训练数据。我们希望假设能够很好的适应训练集。
2、第二个目标是我们想要保持参数值较小。(通过正则化项)

在正则化线性回归中,如果正则化参数值λ被设定为非常大,那么将会发生什么呢?

我们将会非常大地惩罚参数θ1 θ2 θ3 θ4 … 也就是说,我们最终惩罚θ1 θ2 θ3 θ4 …在一个非常大的程度,那么我们会使所有这些参数接近于零。
如果我们这么做,那么就是我们的假设中相当于去掉了这些项,并且使我们只是留下了一个简单的假设,这个假设只能表明房屋价格等于θ0的值,那就是类似于拟合了一条水平直线,对于数据来说这就是一个欠拟合。这种情况下这一假设它是条失败的直线,对于训练集来说这只是一条平滑直线,它没有任何趋势,它不会去趋向大部分训练样本的任何值。
这句话的另一种方式来表达就是这种假设有过于强烈的"偏见"或者过高的偏差 (bias),认为预测的价格只是等于θ0。对于数据来说这只是一条水平线。
若 λ设置的非常大,则会使
1、算法依然正常运行,λ将破坏它。
2、算法无法消除过拟合。
3、算法将导致欠拟合。(不能很好地拟合训练数据)
4、梯度下降算法无法收敛。

调试误差

image
获取更多训练集----修正高方差(过拟合)
尝试更小的特征集----修正高方差
尝试获取更多的特征----修正高偏差(欠拟合)
尝试添加多项式特征----修正高偏差
尝试减小正则化参数----修正高偏差
尝试增加正则化参数----修正高方差

5、过拟合 欠拟合 判断 以及 解决方法

过拟合:(机器学习面临的关键障碍:过拟合无法彻底避免,只能缓解)学习得到的假设函数能够很好的拟合训练集,但不能很好的拟合测试集

1)原因:学习能力过于强大

2)解决方法:使用重采样来评价模型效能、保留一个验证数据集、减少特征维度、采用正则化方法(保留所有的特征,通过降低参数的值来影响模型,正则化参数不能太大,否则会导致欠拟合)

解决过拟合(高方差)的思路
过拟合问题,根本的原因则是特征维度过多,导致拟合的函数完美的经过训练集,但是对新数据的预测结果则较差。
1、使用重采样来评价模型效能。
2、保留一个验证数据集。
3、减少特征维度。
4、采用正则化方法,保留所有的特征,通过降低参数θ的值,来影响模型。

欠拟合:

1)原因:学习能力低下

2)解决方法:决策树学习中扩展分支、神经网络学习中增加训练轮数等

解决欠拟合(高偏差)的思路:
欠拟合问题,根本的原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大。
1、增加模型的参数维度。如利用线性回归预测房屋价格的例子中,增加“卧室数量”,“停车位数量”,“花园面积”等维度以解决欠拟合,或相应的减少维度去解决过拟合。
2、添加多项式特征,在线性回归模型中,可增加多项式维度,比如将加入高阶多项式来更好地拟合曲线,用以解决欠拟合。
3、减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

6、Bp 过拟合怎么解决

提出新型激活函数ReLU改进网络
image

7、决策树

基本思想

分而治之

停止条件 (导致递归返回)

1)当前节点包含的样本全属于同一类别,无需划分
2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
3)当前节点包含的样本集合为空,不能划分

划分选择

1)信息增益、熵
image
image
image
信息增益对可取值数目较多的属性有所偏好
2)增益率
image

3)基尼指数
image

划分选择VS剪枝处理

image

剪枝处理

image

1)预剪枝
image

2)后剪枝
image
3)两者对比
image

8、异常检测 算法

image
image
原始模型:
手动创建特征,捕捉异常值组合
计算成本更低(或者说,规模n越大计算成本越低)
即使m(训练集大小)很小也没关系
多变量高斯:
自动捕捉特征之间的相关性
计算成本更高
必须有m>n,否则image不可逆转

9、推荐系统的协同过滤

协同过滤推荐系统

协同过滤:根据用户-物品的打分矩阵,计算物品的相似度或者用户的相似度,基于相似物品和相似用户做推荐。这种推荐,是基于向量空间的计算,而非对内容的分析。
协同过滤推荐系统思路如下:
(1)从每个用户对商品的评级信息中构建用户档案;
(2)使用如余弦相似度、皮尔森相关系数或距离函数来识别和目标用户具有相似意向的用户,他们对商品有相似的评级;
(3)对来自具有相似意向用户的偏好评级取均值、加权和或调整后的加权和,推荐n个商品。

代价函数cost function

image
image
image
image
image

协同过滤算法

image
image
中文:
同时学习参数以及特征,下面我们来讨论一下协同过滤算法的构建过程
image

基于内容过滤推荐系统

基于内容的过滤:本质是对内容进行分析,建立特征;基于用户对什么特征的内容感兴趣、以及分析一个内容具备什么特征,来做推荐。
基于内容过滤推荐系统思路如下:
(1)通过在抓取每个商品的一系列特征来构建商品档案;
(2)通过用户购买的商品特征来构建基于内容的用户档案;
(3)通过特定的相似度方程计算用户档案和商品档案的相似度;
(4)推荐相似度最高的n个商品。所以,这种推荐基于与已购买商品的相似度来进行推荐。

协同过滤中的冷启动问题(新用户未进行过评分时系统无法进行推荐的问题)

冷启动问题又称第一评价问题(first- rater),或新物品问题(New-item),从一定角度可以看成是稀疏问题的极端情况。因为传统的协同过滤推荐是基于相似用户/物品计算来得到目标用户的推荐,在一个新的项目首次出现的时候,因为没有用户对它作过评价,因此单纯的协同过滤无法对其进行预测评分和推荐。而且,由于新项目出现早期,用户评价较少,推荐的准确性也比较差。相似的,推荐系统对于新用户的推荐效果也很差。冷启动问题的极端的案例是:当一个协同过滤推荐系统刚开始运行的时候,每个用户在每个项目上都面临冷启动问题。

在协同过滤时,冷启动问题怎么处理?

1.提供非个性化的推荐:热门排行榜,当用户数据收集到一定的时候,再切换为个性化推荐。
2.利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。
3.利用用户的社交网络帐号登录,导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。
4.要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。
5.对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。
6.在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。

10、在二分类的基础上实现多分类

一对多法(one-versus-rest,简称OVR SVMs)

  训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。
  假如我有四类要划分(也就是4个Label),他们是A、B、C、D。
  于是我在抽取训练集的时候,分别抽取
  (1)A所对应的向量作为正集,B,C,D所对应的向量作为负集;
  (2)B所对应的向量作为正集,A,C,D所对应的向量作为负集;
  (3)C所对应的向量作为正集,A,B,D所对应的向量作为负集;
  (4)D所对应的向量作为正集,A,B,C所对应的向量作为负集;
  使用这四个训练集分别进行训练,然后的得到四个训练结果文件。
  在测试的时候,把对应的测试向量分别利用这四个训练结果文件进行测试。
  最后每个测试都有一个结果f1(x),f2(x),f3(x),f4(x)。
  于是最终的结果便是这四个值中最大的一个作为分类结果。
评价:
  这种方法有种缺陷,因为训练集是1:M,这种情况下存在biased.因而不是很实用。可以在抽取数据集的时候,从完整的负集中再抽取三分之一作为训练负集。

一对一的投票策略(可能会考)

将A、 B、C、 D四类样本两类两类地组成训练集, 即(A,B)、(A.C)、(A,D)、(B,C)、(B,D)、(C,D), 得到6个(对于n类问题,为n(n-1)/2个)SVM二分器。在测试的时候,把测试样本又依次送入这6个二分类器, 采取投票形式, 最后得到一组结果。投票是以如下方式进行的。

  • 初始化:vote(A)= vote(B)= vote(C)= vote(D)=0。
  • 投票过程:如果使用训练集(A,B)得到的分类器将一个测试样本判定为A类,则vote(A)=vote(A)+1 ,否则vote(B)=vote(B)+ 1;如果使用(A,C)训练的分类器将又判定为A类,则vote(A)=vote(A)+1, 否则-vote(C)=vote(C)+1; ... ;如果使用(C,D)训练的分类器将又判定为C类,则vote(C)=vote(C)+ 1 , 否则vote(D)=vote(D)+ 1。
  • 最终判决:Max(vote(A), vote(B), vote(C), vote(D))。如有两个以上的最大值,则一般可简单地取第一个最大值所对应的类别。
posted @ 2024-11-28 17:03  无问夕故  阅读(7)  评论(0编辑  收藏  举报