面试 | 机器学习常见面试知识点梳理 第一期

转载自微信公众号:LeetCode力扣,原文文章地址:点击这里

机器学习与数据挖掘的区别

机器学习是指在没有明确的程序指令的情况下,给予计算机学习能力,使它能自主的学习、设计和扩展相关算法。数据挖掘则是一种非结构化数据里面提取知识或者未知的、人们感兴趣的图片。在这个过程中应用了机器学习算法。

有监督学习和无监督学习的区别

有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。
无监督学习:对未标记的样本进行训练学习,以发现这样样本中的结构知识。

简要介绍下 SVM

SVM,全称是 support vector machine,中文名叫支持向量机,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。

这里写图片描述

过拟合

如果一味的去提高训练数据的预测能力,所选模型的复杂度往往会很高,这种现象称为过拟合。所表现的就是模型训练时候的误差很小,但在测试的时候误差很大。

一般过拟合产生的原因是:

  • 因为参数太多,会导致我们的模型复杂度上升,容易过拟合。
  • 权值学习迭代次数足够多,拟合了训练数据中的噪声和训练样本样例中没有代表的特征。

正则化

正则化是针对过拟合而提出的,以前在求解模型最优的是一般只优化最小经验风险,现在在该经验风险上加入模型复杂度这一项(正则化项是模型参数向量的范数),并使用一个 rate 比率经验来权衡模型复杂度与以往经验风险的权重,如果模型复杂度越高,结构化的经验风险会越大,现在的目标就变为了结构经验风险的最优化,可以防止模型训练过度复杂,有效的降低拟合的风险。

GBDT 和 XGBoost 的区别

XGBoost 类似于 GBDT 的优化版,不论是精度还是效率上都有了提升。与 GBDT 相比,具体的优点有:

  • 损失函数是用泰勒展式二项逼近的,而不是像 GBDT 里的就是一阶导数
  • 对树的结构进行了正则化的约束,防止模型过度复杂,降低了过拟合的可能性
  • 节点分裂的方式不同,GBDT 是用的 GINI 系数,XGBoost 是经过优化推导后的

这里写图片描述

生成模型和判别模型

  • 生成模型:由数据学习联合概率分布 P(X, Y),然后求出条件概率分布 P(Y|X) 作为预测的模型,即生成模型:P(Y|X) = P(X,Y) / P(X)。生成模型可以还原联合概率分布 P(X, Y),并且有较快的学习收敛速度,还可以用于隐变量的学习。

  • 判别模型:由数据直接学习决策函数 Y = f(X) 或者条件概率分布 P(Y|X) 作为预测的模型,即判别模型,如 k 近邻、决策树。直接面对预测,往往准确率较高,直接对数据在各种程度上的抽象,所以可以简化模型。

L1 和 L2 正则的区别,如何选择 L1 和 L2 正则

  • L1 是在损失函数后面加上模型参数的1范数(也就是 |Xi|)
  • L2 是在损失函数后面加上模型参数的2范数(也就是 sigma(Xi^2) ),注意 L2 范数的定义是 sqrt(sigma(Xi^2)),在正则项上没有添加sqrt根号是为了更加容易优化
  • L1 会产生稀疏的特征
  • L2 会产生更多的特征但是都会接近于 0
  • L1 会趋向于产生少量的特征,而其他的特征都是 0,而 L2 会选择更多的特征,这些特征都会接近于 0。L1 在特征选择时候非常有用,而 L2 就只是一种规则化而已。

协方差和相关性的区别

相关性是协方差的标准化格式。协方差本身是很难做比较的。例如:如果我们计算工资和年龄的协方差,因为这两个变量有不同的度量,所以他们会得到不能做比较的不同协方差。为了解决这个问题,我们计算相关性来得到一个介于 -1 和 1 之间的值,就可以忽略它们各自不同的度量。

Gradient Boosting 算法(GBM)和随机森林都是基于树的算法,它们有什么区别

最根本的区别是,随机森林算法使用 bagging 技术做出预测;而 GBM 是采用 boosting 技术做预测的。在 bagging 技术中,数据集用随机采样的方法被划分成 n 个样本。然后,使用单一的学习算法,在所有样本上建模。接着利用投票或者求平均来组合所得到的预测。bagging 是平行进行的,而 boosting 是在第一轮的预测之后,算法将分类出错的预测加高权重,使得它们可以在后续一轮中得到校正。这种给予分类出错的预测高权重的顺序过程持续进行,一直达到停止标准为止。随机森林通过减少方差(主要方式)提高模型的精度。生成树之间是不相关的,以把方差的减少最大化。在另一方面,GBM 提高了精度,同时减少了模型的偏差和方差。

这里写图片描述

在 k-means 或 kNN ,我们是用欧式距离来计算最近的邻居之间的距离,为什么不使用曼哈顿距离

我们不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧式距离可用于任何空间的距离计算问题。因为,数据点可以存在与任何空间,欧式距离是更可行的选择。例如:想象一下国际象棋棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各自的水平和垂直方向做的运动。

为什么朴素贝叶斯如此“朴素”

因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。

谈谈 LR 和 SVM 的联系与区别

相同点:

  • LR 和 SVM 都可以处理分类问题,且一般都用于处理线性二分类问题
  • 两个方法都可以增加不同的正则化项如 L1、L2 等等。所以在很多实验中,两种算法的结果是很接近的。

不同点:

  • LR 是参数模型,SVM 是非参数模型。
  • 从目标函数来看,区别在与逻辑回归采用的是 logistical loss,SVM 采用的是 hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  • SVM 的处理方法是只考虑 support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
  • 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而 SVM 的理解和优化相对来说复杂一些,SVM 转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  • logic 能做的 SVM 能做,但可能在准确率上有问题,SVM 能做的 logic 有的做不了。
    这里写图片描述

线性分类器与非线性分类器的区别以及优劣

如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。
常见的线性分类器有:LR、贝叶斯分类、单层感知机、线性回归
常见的非线性分类器有:决策树、RF、GBDT、多层感知机

  • 性分类器速度快、编程方便,但是可能拟合效果不会很好
  • 非线性分类器编程复杂,但是效果拟合能力强
  • 当特征比数据量还大时,选择线性分类器,因为维度高的时候数据一般在维度空间里面会比较稀疏,很有可能线性可分
  • 对于维度极低的特征,选择非线性分类器,因为低纬空间可能很多特征都跑到一起了,导致线性不可分
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值