关于模型评估和优化的问题记录

1 准确率的缺陷和解决办法

准确率的缺陷:当负样本占99%时分类器将所有样本都预测为负样本也可以获得99%的准确率。即当不同类别的样本比例非常不均衡时,占比大的类别往往称为影响准确率的主因素。

解决办法:可以使用更为有效的平均准确率,即每一个类别下的样本准确率的算术平均,作为模型评估的指标。

2 准确率和召回率

Precision值和Recall值是既统一有矛盾的两个指标,为了提高precision值,分类器需要尽量在“更有把握”时才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall值降低。
P-R曲线能够更全面地反映模型在Precision值和Recall值两方面的指标。其横轴是召回率,纵轴是精确率。
除此之外,F1分数和ROC曲线也能综合地反映一个排序模型的性能,F1分数是精确率和召回率的调和平均数,它的定义为:
F1=2×precision×recallprecision+recall F_1=\frac{2\times precision \times recall}{precision+recall}

3 平均根误差RMSE

RMSE经常用来衡量回归模型的好坏,其计算公式为
RMSE=i=1n(yiyi^)2n RMSE=\sqrt{\frac{\sum_{i=1}^{n}(y_i-\hat{y_i})^2}{n}}
其中yiy_i是第ii个样本点的真实值,yi^\hat{y_i}是第ii个样本点的预测值,nn是样本点的个数。
RMSE一般是能很好的反映回归模型预测值和真实值的偏离程度的。但在实际的问题中,如果存在个别偏离程度非常大的离群点时,即使离群点数量非常少,也会让RMSE指标变得很差。即可能存在模型在大部分的情况下预测误差近乎完美,但就是在小部分的情况下存在非常严重的离群点,导致RMSE特别大。

解决办法:

  • 如果认定这些离群点是噪声点的话,在预处理的时候直接将这部分数据过滤掉;
  • 如果不是噪声点,那么需要进一步提高模型的预测能力,将离群点产生的机制建模进去;
  • 找一个更适合的指标来评估模型,其中平均绝对百分比误差(MAPE)就比RMSE更具鲁棒性。
    MAPE=i=1nyiyi^yi×100n MAPE=\sum_{i=1}^{n}|\frac{y_i-\hat{y_i}}{y_i}|\times\frac{100}{n}
    相比于RMSE,MAPE相当于把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响。

4 ROC曲线

ROC曲线的横坐标为假阳性率(False Positive Rate, FPR);纵坐标为真阳性率(True Positive Rate, TPR)。FPR和TPR的计算方法分别为:
FPR=FPNTPR=TPP FPR=\frac{FP}{N} \\ TPR=\frac{TP}{P}
其中PP是真实的正样本的数量,NN是真实的负样本的数量,TPTPPP个正样本中被分类器预测为正样本的个数,FPFPNN个负样本中被分类器预测为正样本的个数。

如何绘制ROC曲线?
在二分类任务中,假定有一个阈值,大于该阈值判定为正样本,小于该阈值判定为负样本,该阈值称为截断点,每一个截断点均可得到一对FPR和TPR值,动态调整该值,即可得到ROC曲线。

AUC:AUC是ROC曲线下的面积大小,一般其取值在0-1之间,但因ROC曲线一般都在y=x的上方,因此AUC的通常取值在0.5-1之间,AUC越大说明分类器越可能把真正的正样本排在前面,分类性能越好。

5 ROC曲线相比P-R曲线有什么特点?

特点:相比P-R曲线(准确率-召回率曲线),ROC曲线有一个特点,就是在样本分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线一般会发生比较剧烈的变化。

意义:这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观的衡量模型本身的性能。其实在实际的问题中,都存在样本类别不平衡的问题,如果切换不同的测试集P-R曲线的变化就会非常大,而ROC曲线则能够更加准确的反映模型本身的好坏,所以ROC曲线适用范围更广。但如果想要得到模型在具体数据集上的表现,那么P-R曲线更适合。

6 余弦相似度/距离的使用场景

余弦相似度:
cos(A,B)=A.BA2B2 cos(A,B)=\frac{A.B}{||A||_2||B||_2}
余弦相似度即两个向量AABB的夹角的余弦,关注的是向量之间的角度关系,并不关系绝对大小,其取值为[1,1][-1,1],1表示完全相似,0表示正交,-1表示完全不相似。
余弦距离:
1cos(A,B) 1-cos(A,B)
当一对文本相似度的长度差距很大,但内容接近时,如果使用词频或词向量作为特征,它在特征空间中的欧式距离通常会很大,而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度较高。
在一些场景中,例如Word2Vec中,其向量的模长是经过归一化的,此时欧式距离与余弦距离具有单调的关系,即:
AB2=2(1cos(A,B)) ||A-B||_2=\sqrt{2(1-cos(A,B))}
其中AB2||A-B||_2表示欧式距离。在此场景下,如果选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧式距离的结果是相同的。
总之,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B的观看向量为(1,0);此时二者之间的余弦距离很大,而欧式距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应该使用余弦距离。而当分析用户活跃度时,以登录次数,和平均观看时长作为特征时,余弦距离会认为(1,10)、(10,100),两个用户距离很近;但显然这两个也难怪乎的活跃度是拥有巨大差异的,此时我们更关注数值的局对差异,应当使用欧式距离。

7 什么是距离?余弦距离是严格的距离吗?

距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性、对称性、三角不等式)成立,那该试数可以称为这对元素之间的距离。

判定余弦距离是否是严格距离的证明:

  • 正定性
    余弦距离定义:
    dist(A,B)=1cosθ=A2B2A.BA2B2 dist(A,B)=1-cos\theta=\frac{||A||_2||B||_2-A.B}{||A||_2||B||_2}
    因为A2B2cosθ=A.B||A||_2||B||_2cos\theta=A.B,所以一定有A2B2A.B>0||A||_2||B||_2-A.B \gt 0,因此有dist(A,B) geq0dist(A,B) \ geq 0恒成立。
  • 对称性
    dist(A,B)=A2B2A.BA2B2=B2A2A.BB2A2=dist(A,B) dist(A,B)=\frac{||A||_2||B||_2-A.B}{||A||_2||B||_2}=\frac{||B||_2||A||_2-A.B}{||B||_2||A||_2}=dist(A,B)
    满足对称性。
  • 三角不等式
    三角不等式:任何三角形中,任意两边之和大于第三边。
    方法一
    反例法
    给定三个向量A(1,0)A(1,0)B(1,1)B(1,1)C(0,1)C(0,1),则有:
    dist(A,B)=122dist(B,C)=122dist(A,C)=1 dist(A,B)=1-\frac{\sqrt{2}}{2} \\ dist(B,C) = 1-\frac{\sqrt{2}}{2} \\ dist(A,C)=1
    那么有:
    dist(A,B)+dist(B,C)=22<1=dist(A,C) dist(A,B)+dist(B,C)=2-\sqrt{2}\lt 1 = dist(A,C)
    显然不满足三角不等式。
    方法二
    单位圆上欧式距离和余弦距离满足:
    AB2=2(1cos(A,B))=2dist(A,B) ||A-B||_2=\sqrt{2(1-cos(A,B))}=\sqrt{2dist(A,B)}
    即:
    dist(A,B)=12AB22 dist(A,B)=\frac{1}{2}||A-B||_2^2

显然,在单位圆上面,余弦距离和欧式距离的范围都是[0,2]。而已知欧式距离是满足严格的距离定义的,但余弦距离和欧式距离存在二次关系,因此余弦距离一定不是一个严格满足距离定义的距离。

8 A/B测试

什么是A/B测试?为什么要进行A/B测试?怎么进行A/B测试?
A/B测试:为同一个目标,设计两种方案,将两种方案随机投放市场中,让组成成分相同(相似)用户去随机体验两种方案之一,根据观测结果,判断哪个方案效果更好。

为什么要进行A/B测试:
主要有三点:
第一点:离线评估无法完全消除模型过拟合的影响,因此其评估结果无法完全替代线上评估结果;
第二点:离线评估无法完全还原线上的工程环境。
第三点:离线评估环境中无法计算某些真实的业务指标。离线评估更关注的是ROC、P-R等指标的提升,而线上评估更关注实战效果和用户体验。

怎么进行A/B测试:
首先是要对用户进行分组,分为实验组和对照组,在分组时一定注意样本的独立性和采样方式的无偏性;然后对对实验组实施新模型,对对照组实施旧模型;最后完成相关技术和业务指标的对比评估。

9 模型验证方法及其优缺点

关于模型评估和优化的问题记录

10 有规模为n的样本集,在自助法的采用过程中,对n个样本进行n次抽样,当n无穷大时,最终有多少数据未被选择?

在每一次的采样中,一个样本未被选中的概率是11n1-\frac{1}{n},由于是有放回的采样,因此某样本nn次采样均未被选中的概率为(11n)n(1-\frac{1}{n})^n,当nn无穷大时,有概率PP
P=limn(11n)n=limn1(1+1n)n P=\lim\limits_{n\rightarrow \infty}(1-\frac{1}{n})^n=\lim\limits_{n\rightarrow \infty}\frac{1}{ (1+\frac{1}{n})^n }
t=1nt=\frac{1}{n}t0t\rightarrow 0,则上式转换为:
P=limn01(1+t)1t P=\lim\limits_{n\rightarrow 0}\frac{1}{(1+t)^{\frac{1}{t}}}
根据重要极限定理:P=limn0(1+t)t=eP=\lim\limits_{n\rightarrow 0}(1+t)^t=e,那么:
P=limn01(1+t)1t=1e0.368 P=\lim\limits_{n\rightarrow 0}\frac{1}{(1+t)^{\frac{1}{t}}}=\frac{1}{e} \approx 0.368
即经过nn次有放回的采样后,大约有36.8%的样本未被选中,这些样本可以作为验证集。

11 超参数调优有哪些方法?

超参数调优的基本要素:一是目标函数,即算法需要最大化/最小化的目标;二是搜索范围,一般通过上限和下限来确定;三是算法的其他参数,例如搜索步长。在实际工作中一般采用网格搜索、随机搜索、贝叶斯优化等算法。

  • 网格搜索
    通过查找搜索范围内的所有点来确定最优值。在实际的应用中,网格搜索一般会使用较广的范围和较大的步长,来寻找全局最优值可能的位置;然后会逐步缩小搜索范围和步长,来寻找更精确的最优值。
  • 随机搜索
    与网格思想较相似,只是不在测试上界和下界之间的所有值,而是在搜索范围中随机选取样本点。
  • 贝叶斯优化
    与上述两种方法在测试一个新点时会忽略前一个点的信息;而贝叶斯优化算法则充分利用之前的信息。它对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体讲,它首先时根据鲜艳分布,假设一个搜集函数;然后每次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后算法测试由后验分布给出的全局最值最可能出现的位置的点。但贝叶斯优化算法一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。

12 降低过拟合和欠拟合风险的方法

降低过拟合风险的方法

  • 增加训练数据集规模,让模型学习到更多更有效的特征,减小噪声影响;
  • 降低模型复杂度,如减少神经网络层数,神经元个数,降低决策树深度,剪枝等;
  • 正则化方法,能优化原来的目标函数,并且也能避免权值过大带来的过拟合风险;
  • 集成学习方法,将多个模型集成在一起,降低单一模型过拟合的风险。

降低欠拟合风险的方法

  • 添加新的特征,可以通过如因子分解机、梯度提升决策树、Deep-crossing等方法丰富特征;
  • 增加模型复杂度,出现过拟合可能是因为模型过于简单;
  • 减小正则化系数,正则化是用以防止过拟合的,但当模型出现欠拟合时,则需要减小正则化系数。

感谢阅读。

如果觉得文章对你有所帮助,欢迎打赏哦~
关于模型评估和优化的问题记录
关于模型评估和优化的问题记录