【ML面试题目】1-

1.为什么需要对数值类型的特征做归一化

为了消除数据特征之间的量纲影响,我们需要对特征做归一化(Normalization)处理,使得不同的指标之间具有可比性。

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法有以下两种:

(1) 线性函数归一化(Min-Max Scaling)

它对原始数据进行线性变换,使结果映射到[0,1] 的范围,实现对原始数据的等比缩放。归一化公式如下:
X n o r m = X − X m i n X m a x − X m i n X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=XmaxXminXXmin

(2) 零均值归一化(Z-Score Normalization)

它会将原始数据映射到均值为0,标准差为1的分布上。具体来说。假设原始特征的均值为 μ \mu μ,标准差为 σ \sigma σ。那么归一化公式为:
z = x − μ σ z=\frac{x-\mu}{\sigma} z=σxμ

为什么需要对数值型特征做归一化呢?不妨借助SGD的实例来说明归一化重要性。假设两种数值型特征, x 1 x_1 x1取值范围[0,10], x 2 x_2 x2取值范围是[0,3]。在学习速率相同的情况下, x 1 x_1 x1的更新速度大于 x 2 x_2 x2,需要较多迭代才能找到最优解。将 x 1 x_1 x1 x 2 x_2 x2归一化到相同数值区间后,更新速度变得一致,更快找到最优解。
【ML面试题目】1-_第1张图片
当然数值归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常需要归一化。包括线性回归、逻辑回归、支持向量机、神经网络等。但是并不适用于决策树模型。以C4.5为例,决策树在进行节点分裂的主要依据数据集D关于特征x的信息增益比。而信息增益比与特征是否经过归一化无关。

2.准确率的局限性

问题背景

hulu的奢侈品广告主希望把广告定向投放到奢侈品用户。该模型线下分类准确率超过95%,但在实际投放广告过程中还是将大部分广告投给了非奢侈品用户,这可能是什么原因造成的?

解答

首先回顾一下分类准确率的定义。准确率是指分类正确的样本占总样本个数的比例。
A c c u r a c y = n c o r r e c t n t o t a l Accuracy=\frac{n_{correct}}{n_total} Accuracy=ntotalncorrect

准确率是分类问题中最简单也是最直观的评价标准,但也存在明显的缺陷。比如当负样本占99%,分类器把所有的样本都预测为负样本也有99%的准确率。所以当不同类别的样本比例非常不平衡的时候,占比大的样本往往成为影响准确率最主要的因素。

奢侈品用户只占hulu全体用户的一小部分,虽然模型分类效果好,但不代表对奢侈品用户分类效果好。而线上投放时,只会对模型判定的奢侈品用户进行投放,放大了对奢侈品用户分类不够准确这一问题。

为了解决这个问题,可以使用更为有效的平均准确率(每个类别下的样本准确率的算术平均)做为模型评估的指标。

即使评估指标选对了,也会存在模型过拟合或欠拟合,测试集和训练集划分不合理,线下评估和线上测试的样本分布存在差异等一系列问题,但评估指标是最容易发现,也是最可能影响评估结果的因素

3. 精确率和召回率的权衡

问题背景

hulu提供的视频模糊搜索功能,搜索排序模型返回的Top 5的精确率非常高,但在实际使用过程中,用户还是经常找不到想要的模型,特别是一些冷门的剧情,这可能是哪个环节出问题了呢?

分析与解答

首先明确两个概念:精确率(precision)和召回率(recall)。
通常以关注的类为正类,其他类为负类。分类器在测试数据集上的预测或正确或不正确。4种情况下出现的总数分别记做:
TP – 将正类预测为正类的数量
FN – 将正类预测为负类的数量
FP – 将负类预测为正类的数量
TN – 将负类预测为负类的数量

精准率定义为预测为正类中原本为正类的比例。

P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP

召回率定义为原本为正类中预测为正类的比例。

R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

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

为了综合评估模型的好坏,最好绘制出模型的P-R曲线。P-R曲线的横轴是召回率,纵轴是精确率。

除此之外,F1-score和ROC曲线也能综合地反映一个排序模型的性能。F1 score是精确率和召回率的调和平均值,它定义为

F 1 = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F1 = \frac{2*precision*recall}{precision+recall} F1=precision+recall2precisionrecall

4. 平方根误差的意外

问题背景

Hulu构建一个回归模型来预测美剧的流量趋势。但无论哪种回归模型得到的RMSE都非常高。事实上在95%的时间区间内的预测误差都小于1%,取得了相当不错的预测效果,那RMSE居高不下的原因是什么

分析解答

RMSE经常用于衡量回归模型的好坏,计算公式如下:
【ML面试题目】1-_第2张图片
一般情况下,RMSE能够很好反映预测和真实值的偏离程度。但实际问题中,如果存在个别偏离程度非常大的离群点(Outlier),即使离群点数量非常少,也会使RMSE指标变得很差。

在该问题上,该模型在95%的时间空间上预测误差都小于1%,说明在大部分区间的预测效果还是优秀的,可能在剩余的5%区间存在非常严重的离群点。

有什么解决方案呢?

  1. 如果认为是离群点,在预处理阶段处理掉
  2. 如果不认为是离群点,进一步提升模型建模能力
  3. 换一个更加合适的指标来评价

下面介绍一个比RMSE更加鲁棒的指标:比如平均绝对百分比误差(Mean Absolute Percent Error,MAPE)

【ML面试题目】1-_第3张图片
相比RMSE,MAPE相当于把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响

5.什么是ROC曲线?

场景描述

二值分类器是机器学习领域中最常见的分类器。上面提到的precision、recall、F1-score、P-R曲线这些指标只能或多或少反映出模型在某一方面的性能。相比之下:ROC曲线有很多优点,经常作为评估二值分类器最重要的指标之一。

ROC曲线是Receiver Operating Characteristic Curve的简称,中文名为"受试者工作特征曲线"。

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

F P R = F P N FPR = \frac{FP}{N} FPR=NFP
T P R = T P P TPR = \frac{TP}{P} TPR=PTP

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

举一个直观的例子。假设有10个患者,其中有3个疑似患了癌症(P=3),另外7个不是疑似癌症患者(N=7)。医院对这10个疑似患者做了诊断。3为疑似患者中,其中2个确实是真正的患者(TP=2),那么真阳性率TPR=TP/P = 2/3。
对于7位非疑似患者,有一个很不幸被误诊为癌症(FP=1)。那么假阳性率 FPR=FP/N=1/7。这组分类结果对应于ROC曲线上的的(1/7, 2/3)

6. 如何绘制ROC曲线?

ROC曲线通过不断移动分类器的"截断点"来生成曲线上的一组关键点的。

截断点指的是区分正负预测结果的阈值。对于预测结果,按照预测概率从高到低排序。指定一个阈值,大于该阈值的判定为正例,小于该阈值的定义为负例。

通过动态地调整截断点,从最高的得分开始,逐渐调整到最低得分,每一个截断点都会对应一个FPR和TPR,在ROC图上绘制出每个截断点对应的位置,再连接所有点就得到最终的ROC曲线

7. 如何计算AUC

AUC指的是ROC曲线下的面积大小。能够量化地反映基于ROC曲线衡量出的模型性能。计算AUC值只需要沿着ROC横轴做积分就可以了。由于ROC曲线一般都处于y=x这条直线的上方(如果不是的话,只要把模型预测的概率反转成1-p就可以得到一个更好的分类器)。所以AUC的分类器一般在0.5~1之间。

AUC越大,说明该分类器越可能把真正的正样本排在前面,分类性能越好

8. ROC曲线相比P-R曲线有什么特点

相比P-R曲线,ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较激烈的变化。
【ML面试题目】1-_第4张图片
可以看出P-R曲线发生了明显的变化,而ROC曲线基本不变,这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能。

你可能感兴趣的:(机器学习)