百面机器学习

看完了人工智能基础(高中生版)后,我们对人工智能和机器学习的理解有了简单的轮廓。现在可以从《白面机器学习》中学到更多基础和进阶的知识。
在这里插入图片描述
作者葫芦娃在引言里谈到:

想要成为一名优秀的算法工程师,更重要的是对算法模型有着发自心底的热忱,对研究工作有一种匠心精神。这种匠心精神,直白来讲,可以概括为:发现问题的眼光、解决问题的探索精神,以及对问题究原竟委的执着追求。

在翻过目录之后,映入眼帘的是问题索引。带着问题去理解书中内容,对机器学习的理解应该会有很大的提升!同时,有助于帮我们面试刷题哈哈哈

特征工程
  • 为什么要对数值类型的特征做归一化?
    为了消除特征之间的量纲影响。比如身高1.68m,体重50kg。归一化使得特征处于同一数量级,在学习速率相同的情况下,特征的更新速度变为一致,容易更快地通过梯度下降找到最优解。

  • 怎样处理类别型特征?
    类别型特征指的是离散的特征。除了决策树等少数模型可以直接处理字符串形式的输入,其他模型的类别特征必须转换为数值型特征才能工作。处理方法是:序号编码、独热编码、二进制编码等。

  • 什么是组合特征?如何处理高纬度特征?
    为了提高复杂关系的拟合能力,经常会把一阶离散特征两两组合,构成高阶组合特征。如果是ID类型的特征,组合特征维度会很高。一种行之有效的方法是将用户和物品分别用k维的低维向量表示。 m x n => m x k + n x k

  • 怎样有效地找到组合特征?
    基于决策树的特征组合寻找方法。原始输入用梯度提升决策树来构造决策树,从根结点到叶子结点都可以看做是一种特征组合的方式。

  • 有哪些文本表示模型?它们各有什么优缺点?
    1.词袋模型和词组N-gram模型
    2.主题模型
    3.词嵌入与深度学习模型

  • Word2Vec是如何工作的?它和隐狄利克雷模型(LDA)有什么区别和联系?
    Word2Vec是目前最常用的词嵌入模型之一,实际是一种浅层的神经网络。它有两种网络结构:CBOW和Skip-gram。CBOW是根据上下文出现的词语来预测当前词的生成概率,而Skip-gram是根据当前词来预测上下文中各词的生成概率。主题模型是一种基于概率图模型的生成式模型,词嵌入模型一般表达为神经网络形式。

模型评估
  • 准确率的局限性?
    当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。比如99%的负样本,即使分类器将所有样本都预测为负样本也有99%的准确率。(每个类别下的样本准确率的算术平均)
  • 准确率和召回率的权衡。
    F1 score = 2 * precision * recall / precision + recall
  • 平方根误差的“意外”。
    RMSE能够很好地反应回归模型中预测值和真实值的偏离程度。但在实际问题中,如果存在个别偏离程度很大的离群点,也会让RMSE指标变得很差。处理方法:
    1.把噪声点过滤掉
    2.将离群点产生的机制建模进去。
    3.可以用MAPE指标来评估。
  • 什么是ROC曲线?
    受试者工作特征曲线。横坐标是假阳性率,纵坐标是真阳性率。
  • 如何绘制ROC曲线?
    不断移动分类器的“截断点“来生成曲线上的一组关键点。一般位于y=x这条直线上方,如果不是,把模型预测的概率反转成1-p可以得到一个更好的分类器。
  • 如何计算AUC?
    ROC曲线下的面积。取值在0.5到1之间,越大说明分类器越有可能把正样本排在前面,分类性能越好。
  • ROC曲线比P-R曲线有什么特点?
    当正负样本点额分布发生变化时,ROC曲线基本不变,P-R曲线发生剧烈变化。因此ROC曲线应用更广泛。
  • 为什么在一些场景要使用余弦相似度而不是欧式距离?
    如何评估样本距离也是定义优化目标和训练方法的基础。余弦相似度在高维情况下依然保持“相同时为1,正交时为0,相反时为-1”的性质。体现的是方向上的差异(偏好,相似度等),而欧式距离体现数值上的绝对差异(活跃度等)
  • 余弦距离是否是一个严格定义的距离?
    距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性、对称性和三角不等式)成立,则该实数可称为这对元素之间的距离。同样,还有KL距离,相对熵,用于计算两个分布之间的差异,但不满足对称性和三角不等式。
  • 为什么要进行在线A/B测试?
    1.离线评估无法完全消除模型过拟合的影响。
    2.离线评估无法完全还原线上的工程环境。如线上环境延迟,数据丢失,标签数据缺失等。
    3.离线评估无法计算商业指标。
  • 如何进行线上A/B测试
    主要是进行用户分桶,将用户分为实验组和对照组。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到一个桶中。在分桶的过程中所选取的user_id是一个随机数,这样才能保证桶中的样本是无偏的。
  • 如何划分实验组和对照组
    如果针对“美国用户”研发了一套全新的视频推荐模型A,正在使用的针对全体用户的推荐模型是B,正式上线前该怎么划分对照组和实验组?

将所有美国用户根据user_id个位数划分为实验和对照组,分别使用模型A和B,才是正确、无偏的划分方案。

  • 模型评估过程中的验证方法及其优缺点?
    1.Holdout检验。70%当训练集,30%当测试集。在测试集上计算的评估指标和原始数据划分有很大的关系。
    2.交叉验证。分成K个大小相同的样本子集,一次遍历,把当前子集作为验证集,其余子集作为训练集。最后把K次评估的平均值最为最终评估指标,K常常取10。
    3.自助法。样本数为N,进行N次有放回的随机抽样,得到大小为N的训练集。将没有被抽出的样本为验证集。

  • 自助法采样在极限情况下会有多少数据从未被选择过?
    大约36.8%

  • 超参数有哪些调优方法?
    有网格搜索、随机搜索、贝叶斯优化等算法。超参数搜索算法有三个要素:
    1.目标函数
    2.搜索范围
    3.搜索步长

  • 过拟合和欠拟合具体是指什么现象?
    过拟合:模型较复杂,过多拟合训练数据而在新数据上表现很差;欠拟合:在训练数据和新数据上的表现都不能让人满意。

  • 能否说出几种降低过拟合和欠拟合风险的方法?
    降低过拟合:
    1.直接或通过一定规则扩充获得更多的训练数据,如图像的平移旋转和缩放;生成对抗网络来合成新训练数据。
    2.降低模型复杂度。如减少网络层数、神经元个数;降低树的深度、进行剪枝等。
    3.正则化方法。给模型的参数加上一定的正则约束。如L1/L2正则化。
    4.集成学习方法。多个模型集成在一起来降低单个模型的过拟合风险。如bagging方法。
    降低欠拟合方法:
    1.添加新特征。“上下文特征”,“ID类特征”,组合特征。
    2.增加模型复杂度。线性模型增加高次项,神经网络模型中增加网络层数或神经元个数。
    3.减少正则化系数。

经典算法
  • 逻辑回归和线性回归有何异同?
    逻辑回归处理的是分类问题,线性回归处理的是回归问题。逻辑回归的因变量是离散的,线性回归的因变量是连续的。二者在求解超参数的过程中,都可以使用梯度下降的方法。

  • 用逻辑回归处理多标签分类任务的一些相关问题。
    样本同时拥有多个标签,训练k个二分类的逻辑回归分类器。

  • 决策树有哪些常用的启发函数?
    从若干不同的决策树中选取最优的决策树是一个NP完全问题,实际我们会用启发式学习的方法构建一颗满足启发式条件的决策树。ID3:最大信息增益;C4.5:最大信息增益比;CART:最大基尼指数

  • 如何对决策树进行剪枝?
    提升模型的泛化能力,剪枝比树的生成过程更关键。包括预剪枝、后剪枝。

  • 线性可分的两类点在SVM分类超平面上的投影依然线性可分吗?
    不可分

  • 证明存在一组参数使得高斯核SVM的训练误差为0。

  • 加入松弛变量的SVM的训练误差可以为0吗?
    不一定

  • 训练误差为0的SVM分类器一定存在吗?

降维
  • 从最大方差的角度定义PCA的目标函数并诶出求解的方法
  • 从回归的角度定义PCA的目标函数并给出相应的求解方法
  • 线性判别分析的目标函数以及求解方法
  • 线性判别分析与主成成分分析的区别和联系
非监督学习
概率图模型
优化算法
采样
集成学习
  • 集成学习分为哪几种?它们有何异同?
    Boosting:基分类器串行叠加,每一层在训练时,对前一层基分类器分错的样本,给与更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。
    Bagging:各基分类器之间无依赖,可以并行进行训练。集体投票决策。
  • 常用的基分类器是什么?
  • 集成学习有哪些基本步骤?
  • 可否将随机森林中的基分类器由决策树替换为线性分类器或K-邻近?
  • 什么是偏差和方差?
  • GBDT的基本原理是什么?
  • 梯度提升和梯度下降的区别和联系是什么?
  • GBDT的优点和局限性有哪些?
  • 如何从减小方差和偏差的角度解释Boosting和Bagging的原理?
  • XGBoost和GBDT的联系和区别有哪些?
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值