通俗易懂解释一类和二类错误(Type I Error Type II Error)
通俗易懂解释一类和二类错误(Type I Error Type II Error)作者 KULDEEP PATEL翻译自False Positive (Type I Error) and False Negative (Type II Error)本文涵盖以下与“误报False Positive和漏报False Negative”及其在机器学习领域中的意义有关的主题:解释3个案例Python代码(
通俗易懂解释一类和二类错误(Type I Error Type II Error)
翻译自False Positive (Type I Error) and False Negative (Type II Error)
本文涵盖以下与“误报False Positive和漏报False Negative”及其在机器学习领域中的意义有关的主题:
- 解释
- 3个案例
- Python代码(Scikit-Learn)
- 我们如何衡量分类问题中的错误?
- 还想获得更多相关内容?:有关医学检验假阳性和假阴性的新闻
解释
▲I型错误(误报 False Positive)和II型错误(漏报 False Negative)
通过查看该图,您对I型和II型错误有了解了吗?让我们探索一下它。
这张图表示年龄(在X轴上,自变量)与已婚(在Y轴上,因变量)之间的关系。Y取决于X的值,即某人已婚(Y = 1或Yes)或未婚(Y = NO 获0)的决定取决于人的年龄。
误报 (False Postive),也称Type I Error
蓝色十字标记→红色十字标记(实际→预测)
就是那个25到30之间的一蓝一红的2个点
注意图中的十字标记符号,其中蓝色十字标记表示实际值,红色十字标记表示预测值。在25至30岁左右的年龄,一个名叫A先生的人实际上并未结婚。但是,预测说A先生已结婚,这是一个错误的预测(即False),并且预测值是Yes或1(即Positive)。因此,它被称为“误报False Postive”或“ I类错误”。
漏报(False Negative),也称Type II Error
蓝色圆圈标记→红色圆圈标记(实际→预测) 即20-25之间的两个点
在此方案中,蓝色圆圈标记和红色圆圈标记分别表示实际值和预测值。实际上,一个名为B先生的人已婚,年龄约为20-25岁。但是,预测值表明B先生尚未结婚。因此,在这种情况下,预测也是错误的(即False),并且预测值为No或0(即Negative)。这被称为“漏报False Negative”或II型错误。
解释说明 Interpretation
误报-当预测错误且预测值是真时
漏报-当预测错误且预测值为假时
False Positive- when a prediction is wrong & predicted value is positive
False Negative- when a prediction is wrong & predicted value is Negative
混淆矩阵中的I型和II型错误表示:
▲混淆矩阵 Confusion Matrix
案例
第一个案例:火灾报警
▲类型I错误(误报):当没有火警时,火警会响起[Sources:Gifer(火警)]
▲类型II错误(漏报) :发生火灾时,火警警报无法响起 [Sources:Gifer(FireAlarm),tenor(Fire)]
第二个案例:男人怀孕
I型错误(误报):医生说男人怀孕了…
II型错误(漏报):医生说孕妇没有怀孕…
[来源:pinterest(医生),fotosearch(男人)和deviantart(女士)]
Python Code解释(用Sklearn)
# Assume we have a dataset which contains the information on pregnancy tests
# 0- Represents Lady is not pregnant 女士没怀孕
# 1- Represents Lady is pregnant 女士怀孕了
# y- Output/Target/Dependent Variable 因变量
# y_actual - In reality 真实值
# y_predicted - Predicted by Machine Learning algorithm 机器学习预测值
y_actual = [1,0,0,0,0,0,1,1,1,0]
y_predicted = [1,1,1,0,0,0,1,1,0,0]
from sklearn. metrics import confusion_ matrix
print( confusion_matrix(y_actual, y_predicted))
# 输出
# [[4 2]
# [1 3]]
▲混淆矩阵Confusion Matrix
# False Positive and False Negative
FP=confusion_ matrix(y. actual,y_predicted)[0][1]
FN=confusion_ matrix(y_ actual,y_predicted)[1][0]
print("False Positive (Type I Error) :",FP)
print("False Negative (Type II Error):",FN)
# Accuracy 准确度 = 1-(漏报的个数+误报的个数)/总数据个数
accuracy=100-((FP+FN)*100/len(y_predicted))
print( ." Accuracy : " , accuracy,' %')
# 输出
# False Positive (Type I Error) : 2
# False Negative (Type II Error): 1
# Accuracy : 70.0 %
▲误报和漏报 False Positive and False Negative
▲与混淆矩阵相关的结果
▲3个错误(2个误报 蓝色箭头+ 1个漏报 红色箭头)
如何衡量分类问题中的错误
I型错误(误报)和II型错误(漏报)可帮助我们确定模型的准确性,可以借助混淆矩阵来确定模型的准确性。
如果我们将类型I和类型II错误的值相加,则总错误=误报+漏报,精准程度=1-总错误数/总个数。
如果错误较小,则准确度会更高,反之亦然。更好的准确性,更好的性能,这正是我们想要的。。
我们来解释下在Python代码中获得的结果
误报数= 2,表示2位女士实际上并未怀孕,但模型预测表明他们已怀孕。
漏报数= 1,表示1位女士实际情况下怀孕,但根据预测她没有怀孕。
因此,由于孕妇怀孕且模型预测说她没有怀孕,这种情况更加危险。
因此,这里的Type II Error比Type I Error更危险。
我们可以得出结论,在10个预测中,我们的模型做出了3个错误预测(1个假阴性+ 2个假阳性)和7个正确预测(4个真阳性+3个真阴性)。
因此我们可以说模型的准确性为70%,误差为30%。
还想获得更多相关内容?:有关医学检验假阳性和假阴性的新闻
请点击查看 医学测试当中的预测价值
非常感谢您的阅读!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)