【读书笔记】只有浅出没有深入的数据分析(六)

第六章主要讲解了贝叶斯公式,讲的比较易懂,也没有写复杂的公式。

在这章我们不幸得了蜥蜴流感,医院初次诊断结果为阳性。

我们查到该诊断实验  如若患病有90%概率为阳性,如若未患病10%概率为阳性。(这里不会介绍各个分类模型,以后有机会可能会介绍)。

我们这里假设2种情形:

1.100人中90人患病:

这表示有10人不患病,10人的10%等于1,这1人诊断结果为阳性且未患病。

2.100人中10人患病:

这表示有90人不患病,90人中10%约等于9,这9人诊断结果为阳性且未患病。

我们可以用饼状图来表示一下这两种假设的情形。

import matplotlib.pyplot as plt

X = [81, 9, 1, 9]
Y = [9, 9, 9, 81]
labels = ['TP', 'FN', 'FP', 'TN']

plt.figure(1)

plt.pie(X, labels=labels, autopct='%1.2f%%')

plt.figure(2)
plt.pie(Y, labels=labels, autopct='%1.2f%%')
plt.show()

我们这里要看的是FP的概率(诊断结果为阳性,实际结果为阴性)的概率。

前者为1%,后者为8.33%,由此可见,整体的患病率影响着我们诊断结果的正确率。

(书中对真阴性的描述有误,真阴性应为TN(真负例),而书中描述为,FN(假负例))(原书175页)

我们这里计算的为条件概率,条件概率是指在某一件事发生的前提下,另一件事发生的概率。这里是我们被诊断为阳性的前提下,被误诊的概率是多大。

这里又给我们了一个新的前提:

研究表明1%的人患有蜥蜴流感。 这里1%是基础概率,“在根据实验结果单独分析每个人的情况之前,你就已经知道患有蜥蜴流感的人口只有1%,因此基础概率又叫事前概率”。

我们现在可以重新来计算我们被误诊的概率了。假设总人数为1000人:

X = [9, 1, 90, 900]
labels = ['TP', 'FN', 'FP', 'TN']

plt.figure(1)
plt.pie(X, labels=labels, autopct='%1.2f%%')
plt.show()

通过生成的图像来看,FP的占比为9%,TP的占比为0.9%,这两个诊断结果都是阳性。

我们来看看我们被误诊的概率  FP/(FP+TP)= 0.9,也就是我们被误诊的概率为90%。

贝叶斯公式是一个重要的分析工具,它提供了一种把新信息整合到分析中的精确方法。

这时又给了我们新的条件:

1.第二次诊断结果为阴性。

2.第二次诊断实验 如果某人为阳性,诊断为阳性的概率为99%,未患病诊断为阳性为1%。

我们这里依旧假设总人数为1000人,这里的基础概率已经变了,TP/(FP+TP)=0.1(被诊断出来,且真患病的概率) ,也就是基础概率为10%。

X = [99, 1, 9, 891]
labels = ['TP', 'FN', 'FP', 'TN']

plt.figure(1)
plt.pie(X, labels=labels, autopct='%1.2f%%')
plt.show()

这里我们诊断为阴性,我们看下我们患病的概率  FN/(FN+TN) = 0.001 ,这回我们就可以放心多了。

贝叶斯公式并不难,但还是很重要的,我这里用了(TP,FN,FP,TN代替了原文中的 真阳性,假阴性,假阳性,真阴性)。这么改是有一定原因的,因为前者出现的次数会更多一些,比如一些分类阈值设定的问题。这里先给出TP,FN,FP,TN的概念

TP(True Positive)真正例:预测为1,真实值为1

FN(False Negative)假负例:预测值为0,真实值为1

FP(Flase Positive)假正例: 预测值为1,真实值为0

TN(True Negative)真负例:预测值为0,真实值为0

猜你喜欢

转载自blog.csdn.net/Canon__/article/details/82622445