大厂常考机器学习面试题

1、熵、条件熵、互信息、相对熵

   

    熵是一个随机变量不确定性的度量。对于一个离散型变量,定义为:

    一个随机性变量的熵越大,就表示不确定性越大,也就是说随机变量包含的信息量越大。

熵只依赖于X的分布,与X的取值无关。

    条件熵

    条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性,H(Y|X) 定义为在给定条件 X 下,Y 的条件概率分布的熵对 X 的数学期望:

    公式为:

    互信息

    互信息表示在得知 Y 后,原来信息量减少了多少。

    如果X与Y相互独立,则互信息为0。

    KL散度(相对熵)与JS散度

    KL散度指的是相对熵,KL散度是两个概率分布P和Q差别的非对称性的度量。KL散度越小表示两个分布越接近。也就是说KL散度是不对称的,且KL散度的值是非负数。

    JS散度是基于KL散度的变种,度量了两个概率分布的相似度,解决了KL散度的非对称问题。如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

    三者关系

2、机器学习泛化能力评测指标

    泛化能力是模型对未知数据的预测能力。

    准确率:分类正确的样本占总样本的比例

    准确率的缺陷:当正负样本不平衡比例时,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。

    精确率:分类正确的正样本个数占分类器预测为正样本的样本个数的比例;

    召回率:分类正确的正样本个数占实际的正样本个数的比例。

    F1 score:是精确率和召回率的调和平均数,综合反应模型分类的性能。

    Precision值和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器需要尽量在“更有把握”时才把样本预测为正样本,但此时往往会因为过于保 守而漏掉很多“没有把握”的正样本,导致Recall值降低。

    ROC曲线的横坐标为假阳性率(False Positive Rate,FPR);纵坐标为真阳性 率(True Positive Rate,TPR)。FPR和TPR的计算方法分别为

    精确度(precision)/查准率:TP/(TP+FP)=TP/P 预测为真中,实际为正样本的概率

    召回率(recall)/查全率:TP/(TP+FN) 正样本中,被识别为真的概率

    假阳率(False positive rate):FPR = FP/(FP+TN) 负样本中,被识别为真的概率

    真阳率(True positive rate):TPR = TP/(TP+FN) 正样本中,能被识别为真的概率

    准确率(accuracy):ACC =(TP+TN)/(P+N) 所有样本中,能被正确识别的概率

    上式中,P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个数。

    AUC:AUC是ROC曲线下面的面积,AUC可以解读为从所有正例中随机选取一个样本A,再从所有负例中随机选取一个样本B,分类器将A判为正例的概率比将B判为正例的概率大的可能性。AUC反映的是分类器对样本的排序能力。AUC越大,自然排序能力越好,即分类器将越多的正例排在负例之前。

    回归问题

    RMSE

    RMSE经常被用来衡量回归模型的好坏。

    RMSE能够很好地反映回归模型预测值与真实值的偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点(Outlier)时,即使离群点 数量非常少,也会让RMSE指标变得很差。

    MAPE

    引入别的评价指标,MAPE,平均绝对百分比误差

   相比RMSE,MAPE相当于把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响。

    F1-score

    在多分类问题中,如果要计算模型的F1-score,则有两种计算方式,分别为微观micro-F1和宏观macro-F1,这两种计算方式在二分类中与F1-score的计算方式一样,所以在二分类问题中,计算micro-F1=macro-F1=F1-score,micro-F1和macro-F1都是多分类F1-score的两种计算方式。

    micro-F1:

    计算方法:先计算所有类别的总的Precision和Recall,然后计算出来的F1值即为micro-F1;

    使用场景:在计算公式中考虑到了每个类别的数量,所以适用于数据分布不平衡的情况;但同时因为考虑到数据的数量,所以在数据极度不平衡的情况下,数量较多数量的类会较大的影响到F1的值;

    marco-F1:

    计算方法:将所有类别的Precision和Recall求平均,然后计算F1值作为macro-F1;

    使用场景:没有考虑到数据的数量,所以会平等的看待每一类(因为每一类的precision和recall都在0-1之间),会相对受高precision和高recall类的影响较大。

3、过拟合和欠拟合

    过拟合:是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。

    欠拟合:模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。

    如何解决欠拟合?

    欠拟合基本上都会发生在训练刚开始的时候,经过不断训练之后欠拟合应该不怎么考虑了。但是如果真的还是存在的话,可以通过增加网络复杂度或者在模型中增加特征,这些都是很好解决欠拟合的方法。

    如何防止过拟合?

    数据的角度:获取和使用更多的数据(数据集增强);

    模型角度:降低模型复杂度、L1\\L2\\Dropout正则化、Early stopping(提前终止)

    模型融合的角度:使用bagging等模型融合方法。

4、生成式模型和判别式模型

    生成模型:学习得到联合概率分布P(x,y),即特征x,共同出现的概率

    常见的生成模型:朴素贝叶斯模型,混合高斯模型,HMM模型。

    判别模型:学习得到条件概率分布P(y|x),即在特征x出现的情况下标记y出现的概率。

    常见的判别模型:感知机,决策树,逻辑回归,SVM,CRF等。

5、L1和L2区别

    L1是模型各个参数的绝对值之和。

    L2是模型各个参数的平方和的开方值。

    L1会趋向于产生少量的特征,而其他的特征都是0。 因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0 ,产生稀疏权重矩阵。

    L2会选择更多的特征,这些特征都会接近于0。 最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化||w||时,就会使每一项趋近于0。

    L1的作用是为了矩阵稀疏化。假设的是模型的参数取值满足拉普拉斯分布。

    L2的作用是为了使模型更平滑,得到更好的泛化能力。假设的是参数是满足高斯分布。

6、常见的特征选择方法

    参考:【机器学习】特征选择(Feature Selection)方法汇总 - 知乎

    三种:过滤法,包装法和嵌入法。

    Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。

  • Pearson相关系数
  • 卡方验证
  • 互信息和最大信息系数
  • 距离相关系数
  • 方差选择法

    Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。(缺点:训练次数多,复杂度高,但效果好)

  • 前向搜索:逐渐增加特征
  • 后向搜索:逐渐减少特征
  • 递归特征消除法:使用基模型多轮训练,每轮训练后根据得到的权值系数或者特征重要性消除系数较低的特征,再基于新的特征集进行下一轮训练。

    Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。通常会使用sklearn中的feature_selection库来进行特征选择。

  • 基于惩罚项的特征选择法 通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性。

    基于学习模型的特征排序:使用机器学习算法建立预测模型,得到打分,根据打分选择模型。

7、方差与偏差的区别

    偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据.

    方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。

8、bagging、boosting、stacking 的异同

    Bagging算法(套袋发)

    bagging的算法过程如下:

    从原始样本集中使用Bootstraping 方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集(k个训练集之间相互独立,元素可以有重复)。

    对于n个训练集,我们训练k个模型,(这个模型可根据具体的情况而定,可以是决策树,knn等)

    对于分类问题:由投票表决产生的分类结果;对于回归问题,由k个模型预测结果的均值作为最后预测的结果(所有模型的重要性相同)。

    Boosting(提升法)

    boosting的算法过程如下:

    对于训练集中的每个样本建立权值wi,表示对每个样本的权重, 其关键在与对于被错误分类的样本权重会在下一轮的分类中获得更大的权重(错误分类的样本的权重增加)。

    同时加大分类 误差概率小的弱分类器的权值,使其在表决中起到更大的作用,减小分类误差率较大弱分类器的权值,使其在表决中起到较小的作用。每一次迭代都得到一个弱分类器,需要使用某种策略将其组合,最为最终模型,(adaboost给每个迭代之后的弱分类器一个权值,将其线性组合作为最终的分类器,误差小的分类器权值越大。)

    Bagging和Boosting 的主要区别

    样本选择上: Bagging采取Bootstraping的是随机有放回的取样,Boosting的每一轮训练的样本是固定的,改变的是买个样的权重。

    样本权重上:Bagging采取的是均匀取样,且每个样本的权重相同,Boosting根据错误率调整样本权重,错误率越大的样本权重会变大

    预测函数上:Bagging所以的预测函数权值相同,Boosting中误差越小的预测函数其权值越大。

并行计算: Bagging 的各个预测函数可以并行生成;Boosting的各个预测函数必须按照顺序迭代生成。

9、样本不平衡的解决办法

    欠采样:从样本较多的类中再抽取,仅保留这些样本点的一部分;

    (先对负样本做一个聚类,然后每个类中按一定的比例做采样。也可以用其他方式或者规则从负样本中筛选区分度高的样本用于模型训练,至于哪种效果好,还是要验证的,很多时候,直接暴力一点,直接按比例负采样效果就很好。)

    过采样:复制少数类中的一些点,以增加其基数;

    通过数据增强扩增类别少的样本;

    Focal loss:针对类别不平衡问题,用预测概率对不同类别的loss进行加权。Focal loss对CE loss增加了一个调制系数来降低容易样本的权重值,使得训练过程更加关注困难样本。

10、余弦相似度、欧式距离与曼哈顿距离

    余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。

    相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

    欧式距离,即欧几里得距离,是最常见的两点之间的距离表示法,它定义在欧几里得空间中,

    例如x = (x1,x2,...,xn)和y = (y1,y2,...,yn)的欧式距离可表示为:

    曼哈顿距离:是欧几里得空间中两点之间的线段在坐标轴上的投影的距离的和,

    例如x = (x1,x2) y = (y1,y2)则两点的曼哈顿距离可表示为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月在线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值