发布时间:2023-12-05 14:30
准确率是指分类正确的样本个数占总样本个数的比例,即 A c c u r a c y = T P + T N T P + F N + F P + T N Accuracy=\\frac{TP+TN}{TP+FN+FP+TN} Accuracy=TP+FN+FP+TNTP+TN
精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例,即 P r e c i s i o n = T P T P + F P Precision=\\frac{TP}{TP+FP} Precision=TP+FPTP
召回率是指分类正确的正样本个数占真正的正样本个数的比例,即 R e c a l l = T P T P + F N Recall=\\frac{TP}{TP+FN} Recall=TP+FNTP
F1值综合了精确率和召回率,F1越高说明模型越有效, 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+Recall2∗Precision∗Recall
ROC曲线的横坐标为假阳性率(False Positive Rate,FPR);纵坐标为真阳性率(True Positive Rate,TPR)。FPR和TPR的计算方法分别为
F P R = = F P F P + T N = F P N T P R = T P T P + F N = T P P FPR==\\frac{FP}{FP+TN}=\\frac{FP}{N}\\\\TPR=\\frac{TP}{TP+FN}=\\frac{TP}{P} FPR==FP+TNFP=NFPTPR=TP+FNTP=PTP
其中,P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个数。
举个例子就是假如十个人去医院检查是否患癌(已知其中3位患癌,7位没有患癌),检查诊断出3位患癌,但是2位是真的患癌,1位是被误诊为患癌。那么真阳性率 T P R = T P P = 2 3 TPR=\\frac{TP}{P}=\\frac{2}{3} TPR=PTP=32(其中 T P = 2 , P = 3 TP=2,P=3 TP=2,P=3),假阳性率 F P R = F P N = 1 7 FPR=\\frac{FP}{N}=\\frac{1}{7} FPR=NFP=71(其中 F P = 1 , N = 7 FP=1,N=7 FP=1,N=7)。
评价二值分类器的指标很多,比如上面说的Precision、Recall、F1 score、P-R曲线等,但这些指标或多或少只能反映模型在某一方面的性能。相比而言,ROC曲线则有很多优点,经常作为评估二值分类器最重要的指标之一。ROC曲线下面的面积就是AUC值,AUC值越大说明模型性能越好。
给定向量 A A A, B B B,定义两个向量的夹角余弦为余弦相似度,公式为 c o s ( A , B ) = A ∗ B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 , ∣ ∣ A ∣ ∣ 2 ∣ cos(A,B)=\\frac{A*B}{||A||_2||B||_2},||A||_2| cos(A,B)=∣∣A∣∣2∣∣B∣∣2A∗B,∣∣A∣∣2∣表示欧氏距离,取值范围 [ − 1 , 1 ] [-1,1] [−1,1],相同的两个向量余弦相似度为1。余弦相似度只关心向量的夹角,不关心向量的长度如何,这与以距离度量相似性的欧氏距离有很大的区别。此外,在文本和图像等领域,研究对象的特征维度往往很高,余弦相似度在高维情况下保持“相同时为1,正交时为0,相反时为−1”的性质,而欧氏距离的数值受维度的影响较大。
余弦距离:1减余弦相似度,即 1 − c o s ( A , B ) 1-cos(A,B) 1−cos(A,B),取值范围 [ 0 , 2 ] [0,2] [0,2],相同的两个向量余弦距离为0。
A/B 测试是验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B 测试是验证模型最终效果的主要手段。
对模型进行过充分的离线评估之后,还需要进行在线A/B测试的原因如下:
(1)离线评估无法完全消除模型过拟合的影响,因此,得出的离线评估结果无法完全替代线上评估结果。
(2)离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往不会 考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果 是理想工程环境下的结果。
(3)线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV 访问量等的变化。
如何进行线上A/B测试?
进行A/B测试的主要手段是进行用户分桶,即将用户分成实验组和对照组,对 实验组的用户施以新模型,对对照组的用户施以旧模型。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中,在分桶过程中所选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的。
Holdout检验:将原始的样本集合随机划分成训练集和验证集两部分,常见的是70%的样本为训练集;30% 的样本为验证集。
k折交叉验证:将数据集划分为k个相等的子集,每次取一个子集作为验证集,其余k-1个作为训练集,最后将k次结果取平均,实际中,k常取10。
自助法(Bootstrap):当数据集规模比较小时再划分训练集和测试集会影响模型训练效果。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证,这就是自助法的验证过程。
网格搜索:通过查找搜索范围内的所有的点来确定最优值。实际应用中,网格搜索法一般会先使用较广的搜索范围和较大的步长,来寻找全局最优值可能的位置;然后会逐渐缩小搜索范围和步长,来寻找更精确的最优值。这种操作方案可以降低所需的时间和计算量,但由于目标函数一般是非凸的,所以很可能会错过全局最优值。
随机搜索:随机搜索的思想与网格搜索比较相似,只是不再测试上界和下界之间的所有值,而是在搜索范围中随机选取样本点。它的理论依据是,如果样本点集足够大,那么通过随机采样也能大概率地找到全局最优值,或其近似值。
贝叶斯优化算法:网格搜索和随机搜索在测试一个新点时,会忽略前一个点的信息; 而贝叶斯优化算法则充分利用了之前的信息。贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设一个搜集函数;然后,每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。对于贝叶斯优化算法,有一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,“探索”就是在还未取样的区域获取采样点; 而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。
过拟合:指模型对于训练数据拟合过当,导致模型在训练集上的表现很好,但在测试集和新数据上的表现较差。
欠拟合:指模型在训练和预测时表现都不好的情况。
过拟合说明模型过于复杂,把噪声数据的特征也学习到模型中,导致模型泛化能力下降。降低“过拟合”,可以通过以下方法:
1)使用更多的训练数据让模型学习到更多更有效的特征,减小噪声的影响。
2)降低模型复杂度以避免模型拟合过多的采样噪声。
3)正则化,如L1正则化 L = L 0 + λ ∣ ∣ w ∣ ∣ 1 L=L_0+\\lambda||w||_1 L=L0+λ∣∣w∣∣1,L2正则化 L = L 0 + λ 2 ∣ ∣ w ∣ ∣ 2 2 L=L_0+\\frac{\\lambda}{2}||w||^2_2 L=L0+2λ∣∣w∣∣22。
4)集成学习,如基于Bagging的算法和基于Boosting的算法。
降低“欠拟合”,可以通过以下方法:
1)添加新特征,当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。
2)增加模型复杂度。
3)减小正则化系数。