算法工程师(机器学习)面试题目3---机器学习算法

说明:这些是自己整理回答的答案 可以借鉴 也可能存在错误 欢迎指正

机器学习

  • 机器学习算法
    • 1、处理分类问题常用算法
      • 1.1、关于交叉熵
        • 交叉熵公式?
        • 交叉熵损失函数?
      • 1.2、LR--逻辑回归
      • 1.3 SVM问题
        • 1、SVM原理、推导过程?推导到对偶问题!
        • 4、SVM使用对偶计算的目的是什么?
        • 10、讲一讲SVM的损失函数?为什么要用Hinge Loss?
        • 14、常用核函数及核函数的条件?写出核函数公式?
        • 16、带核函数的SVM为什么能分类非线性问题?
        • 17、SVM和LR哪个更容易过拟合,当数据不平衡时SVM会发生什么情况?
        • 18、SVM和LR的区别?什么时候采用SVM,什么时候采用LR?
        • 19、SVM怎么防止过拟合?
        • 21、KKT条件有哪些?
        • 22、如何选择核函数:
        • 22、SVM的优缺点?
        • 23、SVM的分类间隔是多少?
        • 24、为什么SVM对缺失数据敏感?
        • 25、SVM处理多分类问题?
      • 1.4 其他
        • 监督学习和无监督学习的区别?
        • 机器学习中的距离计算方法?
        • 朴素贝叶斯(naive Bayes)法的要求是?
        • 朴素贝叶斯基本原理和预测过程
        • 如果给你一些数据集,你会如何分类?(我是分情况答的,从数据的大小,特征,是否有缺失,分情况分别答的)
        • 如果数据有问题,怎么处理?
        • 数据不均衡,怎么处理?
        • 标准化与归一化的区别?
        • 分层抽样的适用范围?
        • 生成模型和判别模型基本形式,有哪些?
        • 分类算法列一下有多少种?应用场景?
        • 给你一个检测的项目,检测罐装的可口可乐,瓶装的可口可乐作为负样本,怎么弄?
        • ID3,C4.5和CART三种决策树的区别
    • 2、处理回归问题常用算法
      • 1、L1和L2正则化的区别
      • 2、问题:Loss Function有哪些,怎么用?
      • 3、问题:线性回归的表达式,损失函数;
      • 4、机器学习:知道哪些传统机器学习模型
    • 3、处理聚类问题常用算法
      • 1、什么是DBSCAN
      • 2、k-means算法流程
      • 3、LDA的原理
      • 4、介绍几种机器学习的算法,我就结合我的项目经理介绍了些RF, Kmeans等算法。
      • 5、KMeans讲讲,KMeans有什么缺点,K怎么确定
      • 6、DBSCAN原理和算法伪代码,与kmeans,OPTICS区别
    • 4、推荐系统的常用算法
      • 1、 问推荐算法,fm,lr,embedding
      • 2、协同过滤的itemCF,userCF区别适用场景
      • 3、 推荐系统的大概步骤,解决冷启动。。。
      • 4、传统的机器学习算法了解吗
      • 5、用mapreduce实现10亿级以上数据的kmeans
      • 6、A/B test如何进行流量分流
      • 7、协同过滤中的算法怎么细分
      • 8、FM公式、FFM公式
    • 5、模型融合和提升的算法
      • 1、bagging和boosting的区别
      • 2、boosting和 bagging区别
      • 3、XGBOOST和GDBT的区别
      • 4、GDBT的原理,以及常用的调参参数
      • 6、AdaBoost和GBDT的区别,AdaBoost和GBDT的区别
      • 7、gbdt推导
      • 8、boosting和bagging在不同情况下的选用
      • 9、gbdt推导和适用场景
      • 10、说一下gbdt的全部算法过程
    • 6、其他重要算法
      • 1、HMM隐马尔可夫模型的参数估计方法是?
      • 2、Bootstrap方法是什么?
      • 3、如何防止过拟合?
      • 4、EM算法推导,jensen不等式确定的下界

机器学习算法

1、处理分类问题常用算法

1.1、关于交叉熵

交叉熵公式?

算法工程师(机器学习)面试题目3---机器学习算法_第1张图片

交叉熵损失函数?

Cross-Entropy LossFunction 交叉熵损失函数

  • 一般用于分类问题

假设样本的标签 y ∈ 1 , . . , C y\in {1,..,C} y1,..,C为离散的类别,模型 f ( x ; θ ) ∈ [ 0 , 1 ] C f(x;\theta)\in [0,1]^C f(x;θ)[0,1]C的输出为类别标签的条件概率分布,即
p ( y = c ∣ x ; θ ) = f c ( x ; θ ) p(y=c|x;\theta)=f_c(x;\theta) p(y=cx;θ)=fc(x;θ)
同时满足
算法工程师(机器学习)面试题目3---机器学习算法_第2张图片

1.2、LR–逻辑回归

1.3 SVM问题

仔细讲解:SVM

1、SVM原理、推导过程?推导到对偶问题!

原理:

  • SVM 是一种二类分类模型。
  • 它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,

有三种情况:

  • 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
  • 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
  • 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

2、硬间隔和软间隔如何定义?软间隔中的惩罚系数表示?

3、SVM的硬间隔和软间隔表达式?

4、SVM使用对偶计算的目的是什么?

  1. 是对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。)
  2. 自然引入核函数,进而推广到非线性分类问题。

5、什么是KKT条件?

6、怎么理解SMO算法?

7、是不是所有的优化都可以转换成对偶关系?

8、SVM引入拉格朗日算子之后原问题其实就可以求解,为什么要转换成对偶问题,两者的适用情况分别是什么?

9、SVM和全部数据有关还是和局部数据有关?

10、讲一讲SVM的损失函数?为什么要用Hinge Loss?

  • Hinge 损失函数,作用是最小化经验分类错误

11、什么是支持向量?

12、什么是松弛变量?松弛变量提出的意义?

14、常用核函数及核函数的条件?写出核函数公式?

算法工程师(机器学习)面试题目3---机器学习算法_第3张图片
线性核:

  • 主要用于线性可分的情况,我们可以看到特征空间到输入空间的维度是一样的,其参数少速度快,对于线性可分数据,其分类效果很理想
  • 通常首先尝试用线性核函数来做分类,看看效果如何,如果不行再换别的
  • 优点:方案首选、简单、可解释性强:可以轻易知道哪些feature是重要的
  • 缺点:只能解决线性可分的问题

高斯核:

  • 通过调控参数,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。
  • 如果 σ \sigma σ选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;
  • 如果 σ \sigma σ选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。
  • 优点:可以映射到无限维、决策边界更为多维、只有一个参数
  • 缺点:可解释性差、计算速度慢、容易过拟合

多项式核

  • 多项式核函数可以实现将低维的输入空间映射到高纬的特征空间,
  • 但是多项式核函数的参数多
  • 当多项式的阶数比较高的时候,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度会大到无法计算。
  • 优点:可解决非线性问题、主观设置
  • 缺点:多参数选择、计算量大

sigmoid核

  • 采用sigmoid核函数,支持向量机实现的就是只包含一个隐层,激活函数为 Sigmoid 函数的神经网络。
  • 应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。
  • 而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。
    15、拉格朗日乘子法能否求解非凸的目标函数问题?

16、带核函数的SVM为什么能分类非线性问题?

  • 核函数将非线性数据映射到更高维空间,使得在此高维空间上的映射线性可分

17、SVM和LR哪个更容易过拟合,当数据不平衡时SVM会发生什么情况?

支持向量机(SVM)不平衡样本处理方法
在许多机器学习任务中经常出现样本不均衡问题,即某类样本在总样本占比极低。一般解决样本不平衡问题的方法有以下几种:

  1. 改变分类阈值,使分类结果更偏向于样本少的一类
  2. 改变样本类别的权重
  3. 过采样与欠采样(即对多数样本采用欠采样,或对少数样本采用过采样。)
  4. 采用数据合成方法进行过采样(SMOTE合成少数类过采样技术)
    本文使用支持向量机算法对不平衡样本的处理进行简单验证。本文主要观察改变样本权重以及使用随机过采样对分类结果的影响来判断该方法对少数样本的重视程度。

18、SVM和LR的区别?什么时候采用SVM,什么时候采用LR?

相同点:

  • LR和SVM都是分类算法。
  • 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
  • LR和SVM都是监督学习算法。
  • LR和SVM都是判别模型。

不同点:

  • 本质上是其loss function不同。
  • 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
  • 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
  • ​线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。
  • LR可以给出每个点属于每一类的概率,而SVM是非概率的。

19、SVM怎么防止过拟合?

过拟合主要是因为训练数据中的异常点,这些点严重偏离正常位置。

决定SVM最优分类超平面的恰恰是那些占少数的支持向量,如果支持向量中碰巧存在异常点,那么我们傻傻地让SVM去拟合这样的数据,最后的超平面就不是最优的。

方法:

  • 引入松弛变量(硬间隔—>软间隔)

20、SVM如何做回归?

21、KKT条件有哪些?

KKT条件就是说:如果一个点x是满足所有约束的极值点,那么该点x就要满足一下所有条件,即KKT条件:

算法工程师(机器学习)面试题目3---机器学习算法_第4张图片
KKT条件:
算法工程师(机器学习)面试题目3---机器学习算法_第5张图片

22、如何选择核函数:

  • 如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
  • 如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
  • 如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况。

22、SVM的优缺点?

优点:

  • 强分类器,能保证最大化区分两个类别

缺点:

  • 对大规模训练样本难以实施
  • 解决多分类问题存在困难
  • 对缺失数据敏感,对参数和核函数的选择敏感

23、SVM的分类间隔是多少?

  • 间隔应该是2/||w||,||w||代表向量的模,向量的模通常指的就是其二范数

24、为什么SVM对缺失数据敏感?

  • 这里说的缺失数据是指缺失某些特征数据,向量数据不完整。
  • SVM没有处理缺失值的策略(决策树有)。
  • SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。
  • 缺失特征数据将影响训练结果的好坏。

25、SVM处理多分类问题?

一般有两种做法:

  • 一种是直接法,直接在目标函数上修改,将多个分类面的参数求解合并到一个最优化问题里面。看似简单但是计算量却非常的大。

  • 另外一种做法是间接法:对训练器进行组合。其中比较典型的有一对一,和一对多。

一对多: 就是对每个类都训练出一个分类器,由svm是二分类,所以将此而分类器的两类设定为目标类为一类,其余类为另外一类。这样针对k个类可以训练出k个分类器,当有一个新的样本来的时候,用这k个分类器来测试,那个分类器的概率高,那么这个样本就属于哪一类。这种方法效果不太好,bias比较高。

svm一对一法(one-vs-one):针对任意两个类训练出一个分类器,如果有k类,一共训练出C(2,k) 个分类器,这样当有一个新的样本要来的时候,用这C(2,k) 个分类器来测试,每当被判定属于某一类的时候,该类就加一,最后票数最多的类别被认定为该样本的类。

1.4 其他

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

有监督学习

  • 具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。
  • 所有的标记(分类)是已知的。—成本高
  • 训练样本的岐义性低。

无监督学习

  • 没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。
  • 这里,所有的标记(分类)是未知的。
  • 训练样本的岐义性高。聚类就是典型的无监督学习

机器学习中的距离计算方法?

详细说明
1. 欧式距离

欧氏距离是一个通常采用的距离定义,指两个点之间的真实距离
在这里插入图片描述
2. 曼哈顿距离
我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是:

  • 在欧几里德空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。

在平面上,坐标点(x1,y1)与坐标点(x2,y2)的曼哈顿距离为:
d ( i , j ) = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d(i,j)=|x_1 - x_2|+|y_1 - y_2| d(i,j)=x1x2+y1y2

3.余弦距离

  • 一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小
  • 余弦值接近1,夹角趋于O,表明两个向量越相似
  • 余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
    c o s = x 1 ∗ x 2 + y 1 ∗ y 2 x 1 2 + y 1 2 ∗ x 2 2 + y 2 ∗ 2 cos = \frac{x_1*x_2+y_1*y_2}{\sqrt{x_1^2+y_1^2}* \sqrt{x_2^2+y_2*2}} cos=x12+y12 x22+y22 x1x2+y1y2

4.切比雪夫距离

切比雪夫距离是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值.
m a x { ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ } max\{{|x_1-x_2|,|y_1-y_2|}\} max{x1x2,y1y2}

朴素贝叶斯(naive Bayes)法的要求是?

  • 假设每个输入变量是独立的

朴素贝叶斯基本原理和预测过程

详细说明

如果给你一些数据集,你会如何分类?(我是分情况答的,从数据的大小,特征,是否有缺失,分情况分别答的)

如果数据有问题,怎么处理?

  • 上下采样平衡正负样例比例,考虑缺失值,数据归一化。

数据不均衡,怎么处理?

  • 较少类别数据的数据增强
  • 数据合成(重新生成)、重采样,
  • 选择合适的损失函数,加强对数据样本比较少的类别做损失。

标准化与归一化的区别?

  • 标准化是依照特征矩阵的列处理数据,其通过求z-score 的方法,将样本的特征值转换到同一量纲下。
  • 归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为单位向量

分层抽样的适用范围?

  • 适用于层间有较大的异质性,
  • 每层内的个体具有同质性的总体;

生成模型和判别模型基本形式,有哪些?

生成模型:

  • 朴素贝叶斯,
  • 隐马尔可夫等,
  • HMM等。

判别模型:

  • k近邻,
  • 感知机,
  • 决策树,
  • SVM,
  • 逻辑回归等

分类算法列一下有多少种?应用场景?

分类算法
常用的分类算法包括:

 NBC(Naive Bayesian Classifier,朴素贝叶斯分类)算法、
 LR(Logistic Regress,逻辑回归)算法、
 决策树类算法(ID3;Iterative Dichotomiser 3 迭代二叉树3 代、C4.5 决策树算法、C5.0 决策树算法)
 SVM(Support Vector Machine,支持向量机)算法、
 KNN(K-Nearest Neighbor,K 最近邻近)算法、
 ANN(Artificial Neural Network,人工神经网络)算法等。

给你一个检测的项目,检测罐装的可口可乐,瓶装的可口可乐作为负样本,怎么弄?

ID3,C4.5和CART三种决策树的区别

参考
参考2
决策树笔记

ID3、C4.5、CART的区别

ID3 使用信息增益作为选择特征的准则;
C4.5 使用信息增益比作为选择特征的准则;
CART 使用 Gini 指数作为选择特征的准则

2、处理回归问题常用算法

1、L1和L2正则化的区别

  • L1范数是指向量中各个元素绝对值之和。
  • L2范数是指向量各元素的平方和然后求平方根。
  • 相对于L1正则化,L2正则化收敛的更加快一点

2、问题:Loss Function有哪些,怎么用?

详细笔记

logLoss (对数损失函数,LR)

hinge loss (合页损失函数,SVM)

exp-loss (指数损失函数,AdaBoost)

cross-entropy loss (交叉熵损失函数,Softmax)

quadratic loss (平方误差损失函数,线性回归)

absolution loss (绝对值损失函数, )

0-1 loss (0-1损失函数)

3、问题:线性回归的表达式,损失函数;

算法工程师(机器学习)面试题目3---机器学习算法_第6张图片

4、机器学习:知道哪些传统机器学习模型

线性回归
逻辑回归
SVM
决策树
朴素贝叶斯

3、处理聚类问题常用算法

1、什么是DBSCAN

2、k-means算法流程

3、LDA的原理

4、介绍几种机器学习的算法,我就结合我的项目经理介绍了些RF, Kmeans等算法。

5、KMeans讲讲,KMeans有什么缺点,K怎么确定

6、DBSCAN原理和算法伪代码,与kmeans,OPTICS区别

4、推荐系统的常用算法

1、 问推荐算法,fm,lr,embedding

2、协同过滤的itemCF,userCF区别适用场景

3、 推荐系统的大概步骤,解决冷启动。。。

4、传统的机器学习算法了解吗

5、用mapreduce实现10亿级以上数据的kmeans

6、A/B test如何进行流量分流

7、协同过滤中的算法怎么细分

8、FM公式、FFM公式

5、模型融合和提升的算法

1、bagging和boosting的区别

2、boosting和 bagging区别

3、XGBOOST和GDBT的区别

4、GDBT的原理,以及常用的调参参数

6、AdaBoost和GBDT的区别,AdaBoost和GBDT的区别

7、gbdt推导

8、boosting和bagging在不同情况下的选用

9、gbdt推导和适用场景

10、说一下gbdt的全部算法过程

11、rf和gbdt基分类器区别,里面的决策树分别长啥样,怎么剪枝

12、随机森林和 GBDT 的区别

13、xgboost的特征重要性计算

14、xgboost的正则项表达式

15、xgboost原理,怎么防过拟合

16、xgboost,rf,lr优缺点场景。。。

17、xgboost特征并行化怎么做的

18、xgboost和lightgbm的区别和适用场景

6、其他重要算法

1、HMM隐马尔可夫模型的参数估计方法是?

2、Bootstrap方法是什么?

3、如何防止过拟合?

过拟合:(Overfitting)表现为在训练数据上模型的预测很准,在未知数据上预测很差。

4、EM算法推导,jensen不等式确定的下界

你可能感兴趣的:(算法工程师,matlab,线性代数,算法)