今年找工作整理了一份机器学习岗的面经,在3月中旬拿到了某大厂的暑期实习offer,整理一下发出来和小伙伴们一起学习。这个面经分为多个部分,会不断更新。除此之外,还有几本参考书:
特征
特征的选择方法以及特征处理的技巧
训练预测
为什么会过拟合,解决办法
常见的损失函数
ROC曲线
recall和precision
范数的区别
LR
LR的推导
lr和svm的区别
为什么lr模型损失函数使用交叉熵而不用均方差
LR如果多了一维冗余特征,其权重和AUC会怎样变化
SVM
SVM 的推导
From https://blog.csdn.net/gxq1221/article/details/81113346
主要是结合产品需求,以及做实验看核心指标。
传统机器学习中特征选择主要有两个原因:
一是减少特征数量、降维,减小模型复杂度;二是增强对特征和特征值之间的理解,有利于模型做出更好的预测
常见的特征选择方式:
参考
From https://zhuanlan.zhihu.com/p/31725691 七月在线机器学习面试
From https://blog.csdn.net/gxq1221/article/details/81113346 腾讯18年数据挖掘
机器学习中发生过拟合的主要原因有:
(1)使用过于复杂的模型;比如使用复杂的核函数,高斯核等
(2)数据噪声较大;
(3)训练数据少。
由此对应的降低过拟合的方法有:
(1)简化模型假设,或者使用惩罚项限制模型复杂度;
(2)进行数据清洗,减少噪声;
(3)收集更多训练数据。
y是目标值(1或-1),hinge损失函数表示如果被分类正确,损失为0,否则损失就为
。对异常点、噪声不敏感
判定是否为真值则看该概率值是否大于设定的阈值(Threshold)。例如如果阈值设定为0.5则所有概率值大于0.5的均为正例,其余为反例。因此对于不同的阈值我们可以得到一系列相应的FPR和TPR,从而绘制出ROC曲线。我们目标是达到更高的TP和更低的FP。
以智能运维里面异常点检测为例
召回recall就是所有异常点有多少被预测出来
精度precision就是所有检测出来的异常点有多少是真正的异常点
https://www.kanzhun.com/gsmsh10932992.html CDG 2018推荐算法
L0范数,向量中非零元素的个数。很少用
L1范数,为绝对值之和,
。
L2范数,向量元素绝对值的平方和再开方,
起到正则化,L1还起到稀疏解的作用。从数学角度将解决了一个原问题求解没有逆的问题,非病态
参考:
0 范数、1 范数、2 范数有什么区别? - 凌空的回答 - 知乎 https://www.zhihu.com/question/20473040/answer/175915374
https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc
线性+sigmoid+交叉熵+梯度下降
参考:统计学习方法
相同点
不同点
阿里算法暑期 https://www.nowcoder.com/discuss/373146?type=2&order=3&pos=7&page=1
LR的基本形式是,g是sigmoid
交叉熵:极大似然估计下概率的连乘然后求对数
对w求导
w的梯度是和当前的预测值与实际值的差有关的,没有受到sigmoid函数导数的影响
如果是用MSE作为loss function的话,求导结果是
,受到sigmoid导数梯度消失的影响。
参考:https://blog.csdn.net/dpengwang/article/details/96597606
来自字节2020算法 https://www.nowcoder.com/discuss/383086?type=2
权重变为1/2, AUC不会变化。因为多出来的一维特征并不会提供新的信息,而权重会和原来已有的特征列对半分
From https://blog.csdn.net/gxq1221/article/details/81113346 腾讯18年数据挖掘
超平面函数(sign(wx-b)) + 最大化间隔的目标函数