在之前的文章中介绍了经典的机器学习算法,深度学习算法等等,但是在这些算法的应用中有几个非常关键又很容易混淆的概念必须要强调一下。
1、数据分组
机器学习的数据一般会分为 train(训练), development(验证) 和 test(测试) 三个组。有时候可以将development 和 test 合并统称为dev/test set。
train 和 dev/test 在数据量较小的时候可以遵循70%和30%的分组原则,在数据量特别大的情况下dev/test 组比例可以减小。但最重要的是train 和 dev/test sets 的数据分布要尽可能一致。
2、Precision(准确率)和 Recall(召回率)
中文中“准确率”“精确率”经常混用来表示英文中的Precision 和 Accuracy ,然而这两个概念在数学上这两个词是不同的,为了避免歧义,这里统一用英文表达。Precison和Recall都有相应的数学公式,可以很容易google得到。在这里通过实例和图形直观理解这两个概念的含义。
如上图,比如在测试火灾报警器的性能的时候,左边淡绿色的方框是真实发生火灾的事件,右边方框是没有发生火灾的事件。左半边圆圈是发生火灾并报警的事件,右边圆圈是没有发生火灾而误报的情况。
如图所示,
Precision :所有报警的事件中真实发生火灾的比例。它的反义词更好理解就是误报率
Recall:所有发生火灾的事件中报警的比例。它的反义词更好理解就是漏报率
当然还有一个容易与Precision 混淆的概念,Accuracy (准确率)—就是所有正确报警的事件除以所有事件,错误率(Error)就是准确率的反义词。
Precision 和 Recall 是两个矛盾的参数,这个也很好理解,提高报警器的敏感度必然会减少漏报率,但是同时误报率也会增加。所以在评价一个模型的好坏的时候,往往这两个参数都要考虑,当然也有F1参数将Precision和Recall 统一起来了。
3、Bias(方差) 和 Variance(偏差)
我发现这两个概念的英文也更好理解,所以我也会直接用Bias 和 Variance 来解释这两个概念。
同样的,如上图以打靶为例,Bias 就是弹孔偏离靶心的距离,偏得越远Bias 就越高。Variance 就是弹孔发散程度,越发散,Variance 就越高。
一般来说,在机器学习中
Bias 是指模型在Train set(训练集)中的错误率。
Variance是在Dev set(验证集)中的错误率减去Train set(训练集)中的错误率
在机器学习中,Bias 和Variance 的分析非常重要,因为直接关系到训练的模型是overfitting(过拟合) 还是underfiting(欠拟合)。
4、 Overfitting (过拟合) 和Underfiting(欠拟合)
比如理想状况下一个模型的错误率是(Optimal error rate (“unavoidable bias”))是5%。那我们来分析一下下面的例子。
Train Set 错误率 = 6%
Dev Set 错误率 = 7%
这是接近理想的状况,模型既没有Overfitting 也没有Underfitting. Bias 是6%接近unavoidable bias,Variance是1%(7%-6%)。
Train Set 错误率 = 3%
Dev Set 错误率 = 16%
这种情况Variance 非常高(16%-3% =13%), 是典型的Overfitting的情况。
Train Set 错误率 = 15%
Dev Set 错误率 = 16%
这种情况Bias 非常高,是典型的Underfitting的情况。
Train Set 错误率 = 15%
Dev Set 错误率 = 30%
Bias 和 Variance 都非常高,同时Overfitting 和 Underfitting.
以上的几个概念是非常重要又容易混淆的概念,通过举例而不是罗列公式从感性上理解这些概念对于理解机器学习,优化机器学习模型非常有用。
————
相关文章
AI学习笔记——循环神经网络(RNN)的基本概念
AI学习笔记——神经网络和深度学习
AI学习笔记——卷积神经网络1(CNN)
————
文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页