Machine Learning: Interview Questions

重点机器学习相关面试问题

Posted by Yingfan on April 30, 2022

线性回归

  1. 如何判断是否符合正态分布?如果不符合正态分布要怎么办?
    • 计算数据分布的偏度和峰度值
      • 偏度是一种用来表示数据分布非对称程度的指标,为样本的三阶标准化矩,根据尾部可以判断是左偏(负)还是右偏(正);
      • 峰度是描述总体中所有取值分布形态陡缓程度的指标;
      • 如果,偏度=0是为正态,峰度=3为正态分布
    • 不符合正态分布时可以对数据进行转换,如Log,sqrt
  2. 线性回归的前提假设有哪些
    • 线性性:自变量x和因变量y之间存在线性关系,若不符合,可进行下列操作
      • 对自变量和/或因变量应用非线性变换
      • 向模型中添加另一个自变量,如原自变量的多项式项
    • 独立性:误差项相互独立;自变量之间相互独立
      • 若自变量之间不相互独立,则有多重共线性,会导致标准差偏大,置信区间变宽
      • 可以采用引入正则项处理(lasso,ridge,elastic net)
    • 同方差性:残差在 x 的每个水平上都具有恒定的方差,
      • 不符合时称有异方差性
    • 正态性:残差服从正态分布
  3. 如果线性回归模型效果不好,原因是什么?
    • 自变量和因变量不是线性关系
    • 自变量之间不是相互独立
    • 模型过拟合

决策树

  1. 信息增益率(C4.5算法)有什么优点
    • 信息增益率是信息增益的一种改进,对属性值多的样本做一下惩罚,避免分类的时候偏向于优先划分属性值多的特征。
  2. C4.5与CART的区别
    • C4.5可以是多叉树,而CART只能是二叉树
    • C4.5的特征在每个层级之间不会复用,CART的每个特征可以复用
    • C4.5只能做分类,CART既可以做分类也可以做回归,分类的时候用Gini指数,回归的时候用平方差。
  3. 为什么要进行剪枝?如何对决策树进行剪枝?
    • 剪枝是为了防止过拟合
    • 剪枝的方法分为预剪枝和后剪枝
      • 预剪枝:训练树时,设置一个阈值(样本个数小于预定阈值或GINI指数小于预定阈值),使得当在当前分裂节点中分裂前和分裂后的误差超过这个阈值则分列,否则不进行分裂操作。
      • 后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
  4. 如何避免决策树的过拟合
    • 剪枝,减少特征,增加样本

降维算法

  1. 为什么要进行降维?
  2. PCA降维有什么优点和缺点?
  3. 有什么方法可以自动学习PCA降维的维数?
  4. 都有哪些常用的降维算法?
  5. LE算法的特点和优点

XGBoost

  1. xgboost如何处理缺失值?
  2. xgboost为什么要进行泰勒二阶展开?
  3. xgboost支持自定义损失函数吗?有什么要求?
  4. XGBoost为什么可以并行训练?
  5. XGBoost为什么要加入正则项?
  6. XGBoost都有哪些防止过拟合的设计?
  7. XGBoost如何评价特征的重要性?