logo资料库

面试题答案-40万年薪岗位面试到底问些什么?.pdf

第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
资料共41页,剩余部分请下载后查看
开课吧-人工智能学院 80 道面试题参考答案: 机器学习理论类: 1.写出全概率公式&贝叶斯公式 全概率公式: 贝叶斯公式: 2.模型训练为什么要引入偏差(bias)和方差(variance)? 优化监督学习=优化模型的泛化误差,模型的泛化误差可分解为偏差、方差与噪声之 和 Err = bias + var + irreducible error,以回归任务为例,其实更准确的公式为: Err = bias^2 + var + irreducible error^2 符号的定义:一个真实的任务可以理解为 Y=f(x)+e,其中 f(x)为规律部分,e 为噪声部 分 • 训练数据 D 训练的模型称之为 ,当我们使用相同的算法,但使用不同的训练数 据 D 时就会得到多个 。则 代表了这个模型的期望,即使用某一算法训练 模型所能得到的稳定的平均水平。 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 • 方差:模型的稳定性: • 偏差:模型的准确性: • Err(x) = Err(f, )+Err(f,Y) o Err(f, )为可解释规则误差 o Err(f,Y) 为噪声 e 部分,即为 o 可推导如 下: o f 为真实值,固定; 代表了这个模型不同数据预测结果的期望,固 定;所以 f- 固定 o o Err(x) = 为常数。所以 中 = = 0 3.CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型 这几个模型中都有概率计算的过程,不像 knn,svm 等都是距离计算一看就知道是判别模 型。 • 生成式模型:朴素贝叶斯,混合高斯模型,马尔科夫随机场,EM o 仔细看过这些模型细节的朋友都应该知道,他们最后都是判断 x 属于拟合一 个正负样本分布,然后对比属于正负样本的概率 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 • 判别式模型:最大熵模型,CRF 4.如何解决过拟合问题? l 加到数据量 l 解决数据不平衡的问题 l 加大正则化 l 减小模型复杂度 5.One-hot 的作用是什么?为什么不直接使用数字作为表示 主要是为了解决 categorcial 的数据在做模型搭建的时候它的数字表征对函数引起波动 6.决策树和随机森林的区别是什么? 随机森林大家可以看做是为了增强模型的稳定性,由若干个决策树组合成的集合型模型, 随机森林中的每个决策树,只使用部分 features 进行预测,然后做投票,这样增强了模 型的稳定性。 7.朴素贝叶斯为什么“朴素 naive”? 朴素贝叶斯模型,全称为:Naive Bayesian Model,Naive 翻译为朴素。朴素贝叶斯模型 假设样本特征彼此独立,没有相关关系。这个假设在现实世界中是很不真实的,因此说朴 素贝叶斯真的很“朴素”。 8.kmeans 初始点除了随机选取之外的方法 先层次聚类,再在不同层次上选取初始点进行 kmeans 聚类。 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 9.LR 明明是分类模型为什么叫回归 观测样本中该特征在正负类中出现概率的比值满足线性条件,用的是线性拟合比率值,所 以叫回归。 10.梯度下降如何并行化 首先需要理解梯度下降的更新公式:θj+1=θj-η1mi=1mhθxi-yixi; 处的并行,不同样本在不同机器上进行计算,计算完再进行合并; 同一条样本不同特征维度进行拆分,hθxi-yixi 处并行,把 hθxi 内的 xi 和 wi 拆分成 块分别计算后合并,再把外层 hθxi-yixi 同样拆分成若干块进行计算。 11.LR 中的 L1/L2 正则项是啥 L1 正则项:为模型加了一个先验知识,未知参数 w 满足拉普拉斯分布,fw=12λe-|w- u|λ,u 为 0 在 lr 模型损失函数中新增了|wj|2λ2 项。 fw|u,σ=12πσexp⁡(-(w-u)22σ2),u 为 0。在 lr 模型损失函数中新增了 wwT2σ2 项。 L2 正则项:为模型加了一个先验知识,未知参数 w 满足 0 均值正太分布, 12.简述决策树构建过程 l 构建根节点,将所有训练数据都放在根节点 l 选择一个最优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在 当前条件下最好的分类 l 如果子集非空,或子集容量未小于最少数量,递归 1,2 步骤,直到所有训练数据子 集都被正确分类或没有合适的特征为止 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 13.解释 Gini 系数 Gini 系数二分情况下:GiniP=Pk1-Pk=2p(1-p) l 对于决策树样本 D 来说,Ginip=CkD1-CkD=1-(|Ck||D|)2 l 对于样本 D,如果根据特征 A 的某个值,把 D 分成 D1 和 D2,则在特征 A 的条件下,D 的基尼系数为:GiniD,A=D1DGiniD1+D2DGiniD2 14.决策树的优缺点 优点: l 缺失值不敏感,对特征的宽容程度高,可缺失可连续可离散 l 可解释性强 l 算法对数据没有强假设 l 可以解决线性及非线性问题 l 有特征选择等辅助功能 缺点: l 处理关联性数据比较薄弱 l 正负量级有偏样本的样本效果较差 l 单棵树的拟合效果欠佳,容易过拟合 15.出现估计概率值为 0 怎么处理 拉普拉斯平滑 16.随机森林的生成过程 l 生成单棵决策树 l 随机选取样本 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 l 从 M 个输入特征里随机选择 m 个输入特征,然后从这 m 个输入特征里选择一个最好的 进行分裂 l 不需要剪枝,直到该节点的所有训练样例都属于同一类 l 生成若干个决策树 17.介绍一下 Boosting 的思想 l 初始化训练一个弱学习器,初始化下的各条样本的权重一致 l 根据上一个弱学习器的结果,调整权重,使得错分的样本的权重变得更高 l 基于调整后的样本及样本权重训练下一个弱学习器 l 预测时直接串联综合各学习器的加权结果 18.gbdt 的中的 tree 是什么 tree?有什么特征 Cart tree,但是都是回归树 19.xgboost 对比 gbdt/boosting Tree 有了哪些方向上的优化 1. 显示的把树模型复杂度作为正则项加到优化目标中 2. 优化目标计算中用到二阶泰勒展开代替一阶,更加准确 3. 实现了分裂点寻找近似算法 4. 暴力枚举 5. 近似算法(分桶) 6. 更加高效和快速 7. 数据事先排序并且以 block 形式存储,有利于并行计算 8. 基于分布式通信框架 rabit,可以运行在 MPI 和 yarn 上 9. 实现做了面向体系结构的优化,针对 cache 和内存做了性能优化 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 20.什么叫最优超平面 两类样本分别分割在该超平面的两侧 超平面两侧的点离超平面尽可能的远 21.什么是支持向量 在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。换 句话说,就是超平面附近决定超平面位置的那些参与计算锁定平面位置的点。 22.SVM 如何解决多分类问题 对训练器进行组合。其中比较典型的有一对一,和一对多。 23.核函数的作用是啥 核函数能够将特征从低维空间映射到高维空间, 这个映射可以把低维空间中不可分的两 类点变成高维线性可分的。 特征工程类: 开课吧“人工智能学院”https://www.kaikeba.com
开课吧-人工智能学院 1.怎么去除 DataFrame 里的缺失值? 1) DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) 函数作用:删除含有空值的行或列 2) axis:维度,axis=0 表示 index 行,axis=1 表示 columns 列,默认为 0 3) how:"all"表示这一行或列中的元素全部缺失(为 nan)才删除这一行或列,"any"表 示这一行或列中只要有元素缺失,就删除这一行或列 4) thresh:一行或一列中至少出现了 thresh 个才删除。 5) subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得 列或行不会删除(有 axis 决定是行还是列) 6) inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。 2.特征无量纲化的常见操作方法 无量纲化:即 nondimensionalize 或者 dimensionless,是指通过一个合适的变量替代, 将一个涉及物理量的方程的部分或全部的单位移除,以求简化实验或者计算的目的。 常见操作方法(基于 sklearn): 1) 标准化,返回值为标准化后的数据 from sklearn.preprocessing import StandardScaler StandardScaler().fit_transform(data) 2) 区间缩放,返回值为缩放到[0, 1]区间的数据 from sklearn.preprocessing import MinMaxScaler MinMaxScaler().fit_transform(data) 3) 归一化,返回值为归一化后的数据 from sklearn.preprocessing import Normalizer Normalizer().fit_transform(data) 开课吧“人工智能学院”https://www.kaikeba.com
分享到:
收藏