本博文主要作为笔者准备2020届暑期实习面试笔试以及秋招的学习笔记。笔者主要通过CSDN、牛客网等途径搜集算法岗位面试题,通过做题的方式学习并积累。笔者现在上海某高校读应用统计专业硕士,两年的学习期让笔者感觉时间紧迫,感觉让入学半年,就要准备找工作了。目前人工智能、大数据行业非常火,该行业的高薪也吸引了很多毕业生,竞争也越来越激烈。笔者作为应用统计硕士,可以说进入人工智能行业做算法算是专业对口了,但是看到企业的招聘要求,对于真正接触ML、DL比较晚的笔者来说,真是感觉瑟瑟发抖。俗话说的好,笨鸟先飞早到林,鄙人是笨鸟,但是现在飞的也有点晚了,但还是希望努力一下,多学习积累,找到一份满意的工作。
本篇内容主要参考的是牛客网这篇面试常见问题,该文作者整理了面试算法岗位经常遇到的机器学习、深度学习等问题。尽管只有问题,但是很有价值。因此,我准备列出本人对这些问题的解答,作为对面试的准备和积累。问题的答案只是鄙人自己浅薄的理解,若有不当或者错误,希望读者能不吝赐教,共同进步!
14. 决策树将一个特征全部乘以2会有什么影响?
答:将一个特征特征全部乘以2对决策树最后的分类结果没有影响,因为对某个特征乘以一个数或者加减一个数,或者做单调变换,只是改变了特征的数值大小,并没有改变该特征上值的分布,因此不确定性没有改变,基于该特征进行分类的结果不会改变。
15. 反向传播算法的推导。
16. 贝叶斯定理。
贝叶斯原理描述的是在已知一些条件下,某事件的发生概率。即 信息出现后的A概率=A概率*新信息带来的调整。
17. L_BFGS,DFP推导。
这是几种优化算法。后面补充。
18. k-means算法,如何选择k的个数。
补充:原型聚类,又被称为“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式,将产生不同的算法。k-means算法就是其中一种。
K均值算法:
输入:样本集,聚类簇数
过程:(1)从样本集随机选择个样本作为初始均值向量{}
(2)
repeat
令,
for j = 1,2, ..., m do
计算样本和各均值向量的距离:
根据距离最近的均值向量确定的簇标记:
将样本划入相应的簇:
end for
for i = 1, 2, ..., k do
计算新均值向量:
if then
将当前均值向量更新为
else
保持当前的均值向量不变
end if
end for
until 当前均值向量未更新
输出:簇划分
------------------------------------------
对于如何选择k值:
1. 根据专家、行业经验进行主观判断
2. 基于变化的算法:即定义一个函数,随着K的改变,认为在正确的K时会产生极值。
3. 基于结构的算法:即比较类内距离,类间距离以确定K。这也是比较常用的方法,如使用平均轮廓系数,越趋近于1,聚类效果越好。
4. 基于一致性矩阵的算法:即认为在正确的K时,不同次聚类的结果会近似,以此确定K;
5. 基于层次聚类:即基于合并或分裂的思想,在一定情况下停止从而获得K
6. 使用BIC算法进行初始划分。
7. 基于采样的算法::即对样本采样,分别做聚类;根据这些结果的相似性确定K。如,将样本分为训练与测试样本;对训练样本训练分类器,用于预测测试样本类别,并与聚类的类别比较。
8. 使用Canopy Method算法进行初始划分
19. DBSCAN介绍
补充:密度聚类亦称为“基于密度的聚类”,此类算法假设聚类结构能通过样本分布的精密程度确定。通常情形下,密度聚类算法从样本密度的角度来考虑从样本间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。DBSCAN是一种著名的密度聚类算法。
DBSCAN基于一组“邻域”参数来刻画样本分布的紧密程度。
20. GMM(高斯混合模型)算法
21. GMM-UBM模型(通用背景模型-高斯混合模型)
GMM-UBM实际上是一种对GMM的改进方法。