机器学习基础知识

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站

Permmsion

你可能感兴趣的:(机器学习基础知识)