机器学习面试知识点总结

方法=模型+策略+方法

看到一句话很经典:这里监督学习的过程就是:"minimize your error while regularizing your parameters"

最小化误差就是让了让我们的模型拟合我们的训练数据,正则化的作用就是为了防止模型过于拟合训练数据,参数过多,容易让模型变的过于复杂,容易过拟合,我们最终的目标是为了在测试数据上更准确一点,正则化就是为了让模型变得简单一点,这样才能更好的具有泛化能力。规则项的使用还可以约束我们的模型的特性,这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、平滑等等

奥卡姆剃刀(Occam's razor)原理:模型越简单越好。

从贝叶斯的角度来看正则化,正则化对应的是模型的先验概率;L1:对应的是拉普拉斯分布,L2:对应的是高斯分布。其实正则化就是对参数W的先验分布。

统计学习方法中这样说的:正则化等价于结构风险最小化,结构风险指的是在经验风险上加上表示模型复杂度的正则化项。经验风险指的是在训练数据集上的损失最小,

//无监督学习的一些问题

如何确定K聚类中的K值?

优点:

简单

缺点:

(1)计算量大(K-dtree)来进行优化

(2)异常点存在,会影响聚类效果,数据进行预处理

(3)只能收敛到局部最优

(4) 聚类中K的选择,需要提前设定,影响聚类的效果,如何估计K???

第一种方法:轮廓系数,K值一般不会太大,可以通过枚举,另K从2到一个固定的值N,在每一个取值上重复运行数次,计算当前K的轮廓系数,选取轮廓系数最大的K来作为标准。轮廓系数越接近1,聚类结果越靠谱,轮廓系数

1.朴素贝叶斯,拉普拉斯校准

朴素贝叶斯:典型的生成式学习方法。

朴素贝叶斯对条件概率分布做了条件独立性的假设,分类的特征在类确定的条件下都是条件独立的。

后验概率最大化根据期望风险最小化准则得到的。

拉普拉斯平滑解决概率为0的情形。

优点:生成式模型,通过计算概率来进行分类,可以用来处理多分类问题

对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。

缺点:

对输入数据的表达形式很敏感

由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失

需要计算先验概率,分类决策存在错误率。

2.决策树

ID3:信息增益,缺点:偏向于选择取值较多的特征

C4.5:信息增益比

CART:基尼指数

步骤:特征选择,决策树生成,决策树修剪

优点:模型具有可读性,分类速度快,

缺点:容易过拟合

3.SVM

4. L0,L1 L2的区别

L0是指非0参数的个数

L1可以让参数变得更稀疏,

一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解

L2可以得到更平滑的权值,L2在回归里面有两个外号:有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。

L1,L2分布:

L1,L2范式来自于对数据的先验知识.如果你认为,你现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验P(x),一般由于推导和计算方便会加入对数似然,也就是log(P(x)),然后再去优化,这样最终的结果是,由于你的模型参数考虑了数据先验,模型效果当然就更好.
哦对了,如果 你去看看高斯分布的概率密度函数P(x),你会发现取对数后的log(P(x))就剩下一个平方项了,这就是L2范式的由来--高斯先验.

L1和L2的区别:

1.下降速速:L1以绝对值下降,L2是平方的形式下降,L1下降更快。

2.模型空间的限制:一个矩形,一个圆形。矩形的相交处更容易在坐标轴上。

3.L1假设的是模型的参数取值满足拉普拉斯分布,L2假设的模型参数是满足高斯分布。

5.SVM

SVM为什么在优化的过程中将原始的最优化问题,应用拉格朗日对偶性,通过求解对偶问题最优解来得到原始问题的最优解来解决?

1.对偶问题更容易解决。

2.为了自然地引入核函数。

5.1 感知机

感知机的损失函数是:误分类点到超平面S的总距离。

训练方法:梯度下降,感知机误分类的次数K是有上界的,感知机算法存在无穷多个解。如果初值不同或者不同的迭代顺序都有可能不同。

6.牛顿迭代和梯度下降

牛顿迭代是二阶收敛,梯度下降是一阶收敛,牛顿迭代收敛的更快。

牛顿迭代法不需要手动选择步长,梯度下降法需要。

链接

7.LRM

为什么采用sigmod函数??

(1)它的输入范围是负无穷到正无穷,而它的输出范围是0到1,正好满足概率分布为(0,1) 的要求,用概率去描述分类器,比用阈值好的多。

(2)它是一个单调函数,具有良好的连续性,不存在不连续不可导的点。

逻辑回归估计参数时的目标函数 :

最大似然函数:


8.随机梯度下降与批量梯度下降的区别:

随机梯度下降通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,求到的解一般在全局最优解附近。

批量梯度下降求得是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,速度比较慢。

随机梯度下降方法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

9.线性SVM与LR的区别

损失函数不同,LR的损失函数是cross entropy loss,SVM的损失函数是hinge loss function

数据分布影响不一样,SVM只和部分数据有关系,LR和所有的数据都有关系。

LR使用极大似然函数法,方便求解,无需事先假设数据分布,输入和输出含非线性函数的映射

SVM基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。可以解决高维、非线性问题,可以提高泛化性能,适合小样本,但对缺失数据敏感,训练时间长。

链接


10.SVM中线性核与高斯核的区别:

高斯核:feature<样本数

线性核:feature ==样本数目

一般情况下,越复杂的系统,过拟合的可能性就越高,一般模型相对简单的话泛化能力会更好一点。SVM的核函数中,使用高斯核比使用线性核的复杂性更高,所以可能会造成过拟合。 高斯核函数可以将原始空间映射到无穷维空间。对于参数 ,如果选的很大,高次特征上的权重实际上衰减得非常快,实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调整参数 ,高斯核实际上具有相当高的灵活性,也是 使用最广泛的核函数 之一。

11:卷积与池化

卷积向下取整,池化向上取整

12:概念性问题

  1. PDF:概率密度函数(probability density function), 在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。

  2. PMF : 概率质量函数(probability mass function), 在概率论中,概率质量函数是离散随机变量在各特定取值上的概率。

  3. CDF : 累积分布函数 (cumulative distribution function),又叫分布函数,是概率密度函数的积分,能完整描述一个实随机变量X的概率分布。

13:牛客网笔试题目记录

1、SVM对噪声(如来自其他分布的噪声样本)鲁棒
      SVM本身对噪声具有一定的鲁棒性,但实验证明,是当噪声率低于一定水平的噪声对SVM没有太大影响,但随着噪声率的不断增加,分类器的识别率会降低。
2、在AdaBoost算法中所有被分错的样本的权重更新比例相同
       AdaBoost算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,即其中n为样本个数,在此样本分布下训练出一弱分类器。对于分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被凸显出来,从而得到一个新的样本分布。在新的样本分布下,再次对样本进行训练,得到弱分类器。以此类推,将所有的弱分类器重叠加起来,得到强分类器。
      Adaboost的目的是从训练数据中学习一系列弱分类器,然后将其按一定权重累加起来得到强分类器。
刚开始每个样本对应的权重是相等的,在此样本分布下训练一个基本分类器c1.对于c1错分的样本增加其权重,
对正确分类的样本降低其权重。这样使得错分的样本突出出来,并得到一个新的样本分布。
同时根据分类情况赋予c1一个权重,表示其重要程度,分类正确率越高权重越大。
然后在新的样本分布下对分类器进行训练,得到c2及其权重。依此类推,得到M个基本分类器及其权重。
将这些弱分类器按照权重累加起来就是所期望的强分类器。
  Bagging是对训练样本多次抽样训练多个分类器,然后对测试集进行投票所得到的优胜结果就是最终的分类结果。
在投票时每个分类器的权重是相等的。
 
3、Boost和Bagging都是组合多个分类器投票的方法,二者均是根据单个分类器的正确率决定其权重。
      Bagging与Boosting的区别:取样方式不同。Bagging采用均匀取样,而Boosting根据错误率取样。Bagging的各个预测函数没有权重,而Boosting是由权重的,Bagging的各个预测函数可以并行生成,而Boosing的哥哥预测函数只能顺序生成。

14.处理数据缺失值的方法:

估算,整例删除,变量删除,成对删除

15:batch noramlization

1.转换到相同的尺度,更容易反映数据之间的相关性。()

2.BN解决了反向传播过程中的梯度问题(梯度消失和爆炸)

16:过拟合的原因

过拟合的原因 
1. 我们得到的模型g 太复杂。f很小,g 太大,会过拟合 
2. 原本的模型(目标函数) f 太复杂 。g达不到f的形式,也会产生过拟合。模型f太复杂,其实也是一种噪声。 
3. 数据的 noise 太大。(所以,有问题的数据一定要删除掉,不然模型就会严重错误。就像那次 仓库优化的项目一样) 这种情况下2做的比10好 

4. 数据量受限。

过拟合现象解释:

1.bias-variance decomposition:偏置方差分解:答案

偏置-方差分解(Bias-Variance Decomposition)是统计学派看待模型复杂度的观点。

假设我们有K个数据集,每个数据集都是从一个分布p(t,x)中独立的抽取出来的(t代表要预测的变量,x代表特征变量)。对于每个数据集D,我们都可以在其基础上根据学习算法来训练出一个模型y(x;D)来。在不同的数据集上进行训练可以得到不同的模型。学习算法的性能是根据在这K个数据集上训练得到的K个模型的平均性能来衡量的。

给定学习算法在多个数据集上学到的模型的和真实函数h(x)之间的误差,是由偏置(Bias)和方差(Variance)两部分构成的。其中偏置描述的是学到的多个模型和真实的函数之间的平均误差,而方差描述的是学到的某个模型和多个模型的平均之间的平均误差。若扩大我们搜索的分类函数的范围,bias这一部分会减小,但一般说来我们搜索到可能性会下降,这样就增大了variance。所以在搜索范围上我们需要做一种权衡,这种权衡就是bias-variance trade-off。

过拟合解决的方法

1. 从简单的模型开始 
2. 数据清洗(修改 或者 删除) 
3. 增 大数据 N 
3. 数据提示data hinting,(人工合成数据,来增大N) 
4. 规范化 (下节课讲解)(其实就是加上 惩罚函数比如 L2 ) 
5. 验证 (下下节课讲)

17.随机森林和GDBT

18.异常值检测


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值