Cross Validation
交叉验证(Cross Validation)是指从样本中取出一部分数据作为训练数据集(training data),即建立模型,然后用一部分数据作为验证数据集(testing data),即验证模型。
通常选择75%的数据training,25%的数据testing。一般有一下几种数据划分方式:
Four-Fold Cross Validation,将样本划分为4个单元;
Ten-Fold Cross Validation,将样本划分为10个单元;
Leave One Out Cross Validation,以每一个样本为一个单元。
如何判断选择哪几部分数据作为training data,哪几部分数据作为testing data呢?
不用担心!
Cross Validation会遍历这些拆分出来的数据,每次用一种组合数据作训练,再用其余数据作测试;然后选择另外一种组合数据做训练……最后用多次测试的结果综合评估。
https://www.youtube.com/watch?v=fSytzGwwBVw&feature=youtu.be
Confusion Matrix
混淆矩阵(Confusion Matrix),适用于分类模型(如逻辑回归、决策树、朴素贝叶斯和支持向量机等)的性能评价。
在分类问题中,每一个样本都存在两种角度的标签: 一个是样本真实的标签,一个是模型预测的标签。根据每一个样本的两种角度的标签,可以得到一个混淆矩阵。
对于二分类问题,每一个样本可以划分到以下四种类中:
True Positive (TP): 样本真实类别是正向的,模型预测的类别也是正向的。
True Negative (TN): 样本真实类别是负向的,模型预测的类别也是负向的。
False Positive (FP): 样本真实类别是负向的,模型预测的类别是正向的。
False Negative (FN): 样本真实类别是正向的,模型预测的类别是负向的。
如上图所示,True Positive的样本有139个,True Negative的样本有112个,
False Positive的样本有20个,False Negative的样本有32个
https://www.youtube.com/watch?v=Kdsp6soqA7o&feature=youtu.be
https://zhuanlan.zhihu.com/p/22068313
Sensitivity and Specificity
继续使用上面的那个图片示例,
敏感性(Sensitivity)告诉我们有多少个心脏病人被正确鉴定,
特异性(Specificity)告诉我们有多少没有心脏病的人被正确鉴定,
所以这个案例中敏感性为139/(139+32)=0.813,特异性为112/(112+20)=0.848
对于更多维的数据,如下面这个案例图片,需要对每一种样本分别计算Sensitivity和Specificity,
即
SensitivityTroll2=12/(12+112+83)=0.058
SpecificityTroll2=(23+77+92+17)/(23+77+92+17+102+93)=0.517
https://www.youtube.com/watch?v=sunUKFXMHGk&feature=youtu.be
有时候也会说到精确性(Precision)这个概念,精确性告诉我们阳性预测结果中有多少是正确的
Bias and Variance
偏差(Bias)反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,主要是针对training data。
方差(Variance)反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性,主要针对testing data。
可以用所有样本到模型距离的平方和来表示bias或variance的大小。
例如下图中,蓝色数据集(training data)用来建立模型,其距离平方和表示bias;绿色数据集(testing data)用来验证模型,其距离平方和表示variance。
https://www.youtube.com/watch?v=EuBBz3bI-aA&feature=youtu.be
https://www.zhihu.com/question/27068705
申明
本文是根据StatQuest系列视频整理而来
已获得Josh Starmer授权说明
感谢久久琼殷不辞辛苦将视频转载至B站