数据科学笔记(对老师课件一些个人的理解和笔记)

一、数据搜集与准备

1.前提假设与数据构成

一个循环圈就是:提出假设后你既可以做设计数据方案的工作,又可以又可以做可行性分析的工作。最后这三者是可以彼此作用的。

用户问题的相关数据的说

有六种类型:

分类:类别划分嘛,最为典型的就是阳性阴性的分类

预测:根据已知得到未知结果(结果可以是连续值也可以是标签),最典型的是天气预测

排序/打分:对某些属性进行数量化排序,典型的是优秀员工的排序

(去)关联化:在多特征中找某特征以解释或数据降维,典型的是电影标签

特征提取:找出最有代表性的特征

聚类:据样本间相似度将样本分组

数据搜集

要了解一些基本概念:但总体、个体、样本、样本容量这些就不废话了。

样本的两个必要条件:

1.容量不能太小(>30)

2.无偏抽样(抽样的过程不受个体性质的影响)

实际上有一些常见的抽样偏差就是比如说幸存者偏差:长寿秘诀都是抽取长寿老人的生活习惯,那么是否有同样习惯的非长寿者呢?

辛普森悖论

现象描述:每个分组里面A的优势都明显,但是总体上B的优势更大。

原因:混杂因素

就是说,有些因素会对分组的总体造成影响,但是必须认识到这一点,只要适当剔除就可以了。比如书上的那个例子,很显然如果高学历和高学历相互比较、低学历彼此比较就没问题了;

2.混杂因素和A/B Testing

例题

某个汽车销售门店对过去三个月的销售业绩不满意,在找原因:

前提假设:促销方案的改变?

搜集数据:促销方案改变前、后的业绩

答:应该按照混杂因素分组:

  
品牌A车型A  
车型B  
车型C  
品牌B车型I  
车型II  
车型III  

A/B Testing

在主动搜集数据时,专门设计一些对比试验,即控制变量。

 

二、Python介绍

数据的导入与准备

那别的肯定不多讲了,就讲我不熟的了:数据的导入与准备

import numpy as np
import pandas as pd
my_data = pd.read_csv("C:/Users/86133/Desktop/titanic.csv")
#实际上吧,除了read_csv还有read_excel这种方法,后者是读xlsx文件的

my_data.info()
#这个是看数据概貌的

常规的数据操作 

分组groupby&平均值mean()

x = my_data.groupby(['Pclass']).mean()
#这是先按照Pclass分组,再求平均值

#部分会出现mean()后面加一个[0]的,原因是平均值结果未必是一个数值,

#可能是一个元组或者其他什么的
print(x['Fare'])
#打印Fare列的结果 

 删除空白行、列(axis)

 

my_fil_data1 = my_data.dropna(axis=0)
#axis=0时,删空值所在行
my_fil_data1.head(7)
#展示数据前七行,不写7则默认为5 

my_fil_data2 = my_data.dropna(axis=1)

#axis=1时,删空值所在列

 行、列基础操作

提取列与行是最起码的:

8df9de18418041fcb31b9f9c4871057f.png

 两种写法的不同,一层中括号提取的是序列,两层中括号提取的还是DataFrame! 

a68b4f3bcb5e4cdc907ec8213bc60be3.png

上面那个是添加新列 ,下面的是添加新行:

00fcda0be6004ea9945f6b8a4b4dc258.png

行与列的合并 

927acd7673614e80a1b57eadca4ccec5.png

可以看见,之前的表里面也是有a、b、c、d四个列的,合并之后对应不上的就直接NaN。

检测缺失值 isnull() 

缺失为TRUE;否则为FALSE

a992fd3f89754a02bc4f6d96207c20a8.png

引申应用:求共有多少缺失值?

9df7d4019b664be182bed2f953d84fb6.png

 

填充fillna

#这里就是打算用平均值去填充

mean_Age = int(my_data[['Age']].mean()[0])

#这里可以看到出现了我上面提到的可能是元组的平均值

#而且这里的平均值应该是取整的

my_dict = {'Age':mean_Age,'Cabin':'haha'}

#建立一个字典,键值如上
my_fil_data3 = my_data.fillna(my_dict)

#这个地方的就是用字典内容的关系来填充

#不得不说,这个fillna函数细节很多

#inplace参数、method参数、limit参数、axis参数

 

#不指定任何参数

#可以是常数填充、字典填充

#指定inplace参数

True:直接修改原对象

False:创建一个副本,修改副本,原对象不变(此为默认值)

method参数的取值 : ‘pad’、 ‘ffill’、‘backfill’、 ‘bfill’、 None

pad/ffill:用前一个非缺失值去填充该缺失值

backfill/bfill:用下一个非缺失值填充该缺失值

None:指定一个值去替换缺失值(默认值)

limit参数:限制填充个数

axis参数:修改填充方向

#注意!这和删除是相反的

0:按列

1:按行

特殊的DataFrame

一种特殊的数据结构;

创建:

#一般都是通过字典的形式创建

student_scores = pd.DataFrame({'姓名':['张三']*3+['李四']*3+['王五']*3,'成绩':[10,10,10,8,8,8,5,5,5]})

#我们分析一下就会发现键是列的头部,值则是一行行的内容

#运行结果如下:

 姓名成绩
0张三10
1张三10
2张三10
3李四8
4李四8
5李四8
6王五5
7王五5
8王五5

数组的创建目前没见到,见到了就回来删掉这句话,然后写上

然后因为这个东西的一些操作和内容实在是很重要,就放一个链接吧。十分的详细!

DataFrame的创建,读写,插入和删除

重复项duplicated()

懒得打字,就直接上链接:

检测是否重复 .duplicated()

举一下老师布置的实验题的例子:

先是去除重复项,要看一看前后的对比与代码:

d0205139dc594834835fddc107837ede.png

  最后三行都是重复的

64bbefd2632a49a194af768d4f9c0eac.png

 效果很好,那么接下来就是去除重复列了:

用另一个有现成代码和结果的例子

6ec60330a2b6441b99e80ac3cedac39e.png

 问题状况如上,名称那个是重复的

 ff7f034413f6415885dfaae42bd92bfb.png

 因为没有直接去除重复列的代码,所以要先转置成为行,行去重,再转回列就好了。技术上是利用drop_duplicates()与转置矩阵的做法。

这里列去重的效果是好的,我没有行去重。

隐秘的重复项

实际上,如果看到行和列不一样,不仔细检查的话,其实是看不出他们的重复关系的,比如他们之间的关系是线性关系。这样我们就需要一种方法来去重了:

线性相关分析:Dataframe.corr(method=’pearson’)求线性相关系数,当其接近1或-1,则说明两个数据存在强的线性相关或反相关,有较大冗余;等于0,则没有线性相关。

163408c45cd94dc8a25be16cf9b4ab3c.png

 值得注意的一点就是,转置是有可能会改变数值类型的,所以如果之前做过转置操作,最好用转置之前的原表来进行线性相关性分析。

描述性统计

位置性测度

常用的位置性测度有算术平均、中位数、p百分位数、众数等。

其他几个我是很容易理解的,这里细致讲解一下p百分位数:是将所有样本值按照从小到大排序好,排序在第p%的样本取值。若将第p百分位数记为gif.latex?V_%7Bp%7D,那么样本中有且仅有p%的样本观察值小于或等于gif.latex?V_%7Bp%7D。常用的有第10百分位数、第25百分位数(又称之为第1四分位数)、第75百分位数(又称之为第3四分位数)、第90百分位数。

 求解均值:

my_data[["Fare"]].mean()[0]

求解中位数:

 my_data[["Fare"]].median()[0]

 求解第25分位数:

 my_data[["Fare"]].quantile(q=0.25)[0]

 求解众数:

 my_data[["Fare"]].mode().values[0,0]

离散性测度

常用的离散性测度有极差、方差、或标准差、变异系数等

这里详细解释一下,避免忘记:

极差:数据集中最大值减最小值

 my_data[["Fare"]].max()[0]- my_data[["Fare"]].min()[0]

方差:每个样本值和平均值相减后平方,再一起相加,最后求得的平均

即:gif.latex?Var%3D%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%28x_%7Bi%7D-%5Coverline%7Bx%7D%29%5E%7B2%7D%7D%7Bn-1%7D

 my_data[["Fare"]].var()[0] 

标准差就是方差开平方:gif.latex?s%3D%5Csqrt%7BVar%7D

 my_data[["Fare"]].std()[0] 

变异系数我平时也没怎么见到过,所以这里说一下:

是标准差除以均值再乘100%的结果:

gif.latex?CV%3D%5Cfrac%7Bs%7D%7B%5Coverline%7Bx%7D%7D%5Ctimes%20100%25

 my_data[["Fare"]].std()[0]/ my_data[["Fare"]].mean()[0]

由于没有直接的代码,所以要自己记住公式

图形化描述统计

直方图:

 my_data[["Fare"]].hist(bins=40,figsize=(18,5),xlabelsize=16,ylabelsize=16)

 

bins的参数的是将数据范围分为多少等分,可以看作X轴上有多少个柱子

figsize单位是英寸,表示要创建的图的大小

xlabelsize、ylabelsize:如果指定了这个值,则可以改变标记尺寸

grid:是否显示坐标线

箱式图不好懂,就写一下代码吧,估计也不会怎么用上去。

 my_data[["Fare"]].boxplot()

相比之下,散点图就是一个很重要的图形化描述了:

核心语句是:

scatterplot=pd.plotting.scatter_matrix(my_data,alpha=0.3,figsize=(10,10),diagonal='hist',color=colors,maker='o',grid=True)

 

三、建模与性能评价

统计建模

概率密度函数

概率密度函数f(x)

连续随机变量X落在横轴上各值附近的可能性( X落在a点附近的无穷小邻域内的概率)

a95a8df3ebfb4a1ea49adf89da0897f7.png

Y轴是概率密度,x轴是随机事件的取值(如大学生身高)。f(x)即概率密度是非负的,积分的面积是概率,所以曲线下积分面积总和为1(全体事件的概率之和为1) 

质量密度不表示质量,而表示质量分布的密集程度

概率密度不表示概率,而表示概率分布的密集程度

概率分布函数F(x):给出取值小于某个值的概率,是概率的累加形式

概率密度函数f(x):给出了变量落在某值xi邻域内(或者某个区间内)的概率变化快慢,概率密度函数的值不是概率,而是概率的变化率,概率密度函数下面的面积才是概率

f(x=a)的物理意义:x落在a点附近的无穷小邻域内的概率,但不是落在a点的概率

正态分布

是一种比较特殊的概率分布:它是许多分布在数据集足够大之后的趋向(中心极限定理)。

其函数曲线表现为以gif.latex?x%3D%5Cmu为对称轴的钟形曲线。

92052678a2ae4750831151b9b35b7bfa.png

 性质:

gif.latex?%5Cbigstar均值就是期望

gif.latex?%5Cbigstar极端值很少

gif.latex?%5Cbigstar  标准差gif.latex?%5Csigma决定胖瘦(gif.latex?%5Csigma矮胖gif.latex?%5Csigma瘦高

相关公式也写一下:

gif.latex?f%28x%29%3D%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%20%7D%5Csigma%20%7Dexp%5Cleft%20%28%20-%5Cfrac%7B%28x-%5Cmu%20%29%5E%7B2%7D%7D%7B2%5Csigma%20%5E%7B2%7D%7D%20%5Cright%20%29

gif.latex?P%28%5Calpha%20-%5Cdelta%20%3C%20x%3C%5Calpha%20+%5Cdelta%20%29%3D%5Cint_%7B%5Calpha%20-%5Cdelta%7D%5E%7B%5Calpha%20+%5Cdelta%7Df%28x%29dx

泊松分布是最重要的离散分布之一,它多出现在当X表示在一定的时间或空间内出现的事件个数这种场合 

随着单位时间内随机事件发生次数的增加,泊松分布会逐渐近似于均值和方差都等于λ的正态分布。因此,只要单位时间内,随机事件的平均发生次数λ足够大(λ至少大于5,严格就是大于10),就可以将泊松分布看作是均值和方差都等于λ的正态分布 

python 中的statistic模块,和scipy中的stats模块提供了大量的统计学常用函数。中心极限定理对总体的分布没有要求,我们这里从两个不同均值的泊松分布中产生随机数作为我们的数据。stats模块中poisson函数的rvs可产生服从泊松分布的随机数,其均值由loc参数加上mu参数决定,size参数则指定了产生随机数的个数

通过直方图,可明显看出,这个总体呈现一个双峰模式分布,而不是一个正态分布。但是这只是一次选取的结果,从统计学角度来说,还是不太好。所以我们将随机抽取100个样本的行为重复500次,每次都能得到一个样本的统计平均,对500个统计平均我们再求均值,发现其更接近总体的均值了。这就是我们所说的样本统计平均是总体均值的无偏估计。

059fe09c30ec4c09aa50fbb21bf0ea11.png

2a23a937bc64417daf8fd5f119e6abe8.png

图像更加接近钟形曲线。 

t分布

根据中心极限定理,从总体中抽样,每组样本容量大于等于30时,样本的均值符合正态分布的,以此可以做均值的点估计和样本的区间估计

但如果样本容量小于30时,样本的均值就不符合正态分布,我们可以将均值标准化后构造一个统计量t,统计量t是符合t分布的,在t分布中就可以做均值估计和区间估计了

标准化:

%5Csqrt%7Bn%20%7D%7D

解释一下参数:

gif.latex?%5Cbar%7Bx%7D是样本的均值

gif.latex?%5Cmu是总体均值

s是标准差

n是样本容量

t分布曲线也是一个关于0对称的类似钟形曲线,样本容量越小,则越平坦,样本容量越大,则越接近正态分布

0af328034c0445acbd9255998d626fcc.png

均值的区间估计:

 

(1)抽样出一组样本,求出这组样本的均值gif.latex?%5Cbar%7Bx%7D(1个)和标准差s(1个)。 


(2)将求出的样本标准差s进行标准化,得到sigma(σ)=%5Csqrt%7Bn%7D


(3)通过gif.latex?%5Cmu(mydata中9000个总体的均值)、gif.latex?%5Cbar%7Bx%7D、σ和t分布的自由度(样本容量n-1)这三者,可以构造t统计量和t分布曲线(t分布概率密度函数曲线)(因为gif.latex?%5Cbar%7Bx%7D、σ无论原来是什么值后来都标准化了,所以不会再影响t分布曲线,只有自由度会影响t分布曲线的形态(n越小曲线越矮胖,n越大曲线越高瘦,n趋近于无穷大时) 


(4)通过t统计量的值和曲线的形态就可以求出在一定的置信度水平(alpha参数,比如95%)下,包含潜在总体均值的区间(因为有了95%,就可以算出曲线上的边界值(左区间到右区间)的位置,t统计量将以不低于95%的概率落在这个区间内,又因为t统计量由样本均值构造而成,样本均值可以代表总体均值,所以“t统计量将以不低于95%的概率落在这个区间内”就代表“总体均值也将以不低于95%的概率落在这个区间内”?

卡方分布

8701dbe543524715a34c2d34afcd3de4.png

假设那些gif.latex?u_%7Bi%7D来源于服从标准正态分布(gif.latex?%5Cmu%20%3D0%2C%5Csigma%20%3D1的正态分布) 潜在总体的n个独立随机抽样,则统计量gif.latex?%5Cchi%20%5E%7B2%7D服从自由度为n的卡方分布。

也就是说,当我们的考察量出现平方和的形式时,就可以考虑是否能够构造卡方分布了。

方差点估计

gif.latex?X_%7B1%7D,…,gif.latex?X_%7Bn%7D是某一个均值μ,标准差为σ的总体的一组随机样本,在样本量为n的所有随机样本中,样本方差 是 的无偏估计;

即   gif.latex?E%28s%5E%7B2%7D%29%3D%5Csigma%20%5E%7B2%7D

其中,样本方差gif.latex?s%5E%7B2%7D%3D%5Cfrac%7B1%7D%7Bn-1%7D%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%28x_%7Bi%7D-%5Cbar%7Bx%7D%29%5E%7B2%7D

如果方差要做区间估计,可以怎么做呢?样本方差的定义,呈现出平方和形式,平方和形式的统计量有可能服从卡方分布。所以,当样本是来源于标准正态分布的独立随机抽样时,样本方差是n-1个独立随机变量的平方和,所以服从n-1自由度的卡方分布,从而可以借助于卡方分布来做区间估计

假设检验

定义:先提出一个假设,然后验证是否可以接受该假设

基本思想:反证法

应用:

在假定某个假设是正确的情况下,构造一个小概率事件,如果在一次试验里小概率事件竟然发生了,我们就怀疑这个假设的正确性,从而拒绝这个假设

例:

根据所考察问题的要求提出原假设H0和备择假设H1,为了检验原假设是否正确,先假定原假设是正确的情况下(比如假定女士不能分辨加奶加茶的顺序,即把女士不能分辨作为H0),构造一个小概率(设要小到5%以下才算小概率,即显著性水平为5%)事件(在假定女士不能分辨的情况下,连对5杯就是小概率事件(注意,如果是假定女士能分辨,连对5杯就不是小概率事件了,反而是连错5杯是小概率事件),然后根据抽取的样本去检验这个小概率事件是否发生。如果在一次试验里小概率事件竟然发生了(比如女士真的连对5杯),我们就怀疑原假设H0(女士不能分辨)的正确性,从而拒绝原假设(拒绝女士不能,反而认为女士有能力分辨)。如果在一次试验里小概率事件没有发生,则没有理由怀疑原假设的正确性,因此接受原假设

零假设:H0,一般是事物的惯常态,概率较大

备择假设:H1,与H0相反的假设,往往是需要努力去证明其正确性的命题,概率较小

  真实性
  H0H1
判定接受H0 II型错误
拒绝H0I型错误 

93262656d47b489aac49e019f290a327.png

紫色面积α(例如0.05)是显著性水平,也是第一类错误(拒真)发生的概率上限;红色面积β(不一定是1-α)是第二类错误(取伪)发生的概率上限(统计量落到红色β这一段时,真实情况是H1,但我们却接受了假设H0(注意H0是假设,H1是真实情况不是假设),所以属于取伪错误)。
改变分界点,会发现α和β是跷跷板的关系,一个变大,另一个就缩小。
如果加大样本,H0和H1的标准差都缩小,个钟形曲线彻底分开,那么α还在,但就不存在β了,也就是加大样本,可以同时减小第一类错误和第二类错误发生的概率(上限) 

3114c1039adf425597535566235f9381.png

注意,这里看的是曲线下面积,0.025+0.025=0.05 

 关于显著性水平alpha的设置:

gif.latex?p%5Cleq%20alpha       拒绝H0,即认为H0不对,错误拒绝的概率小;

gif.latex?p%3E%20alpha       接受H0,即认为H0正确,错误拒绝的概率大;

P值是错误拒绝H0的概率

举个例子,之前的例子中有两个泊松分布,均值分别为70和25,那么他们合起来的均值会是47.5吗?这就需要做假设来验证了。

1d1cd72175a647c2a04ac98bdc1ecca3.png

代码: 

47e876ee80ec479189c67823a8248324.png

 7599d9ac59984c69be767bbcf01be124.png

接下来详细解释一下那些代码的作用:

为验证该假设,我从总体中随机抽取100个数构成样本集,用这个样本集构造出t统计量,根据我们上一节课所介绍,这个t统计量服从自由度为99的t分布。scipy库中stats模块的ttest_1samp函数可以返回t统计量,我们结合t分布曲线,看看这个t统计量在曲线上所处的位置 

np.linspace(start,stop,num)这个函数是用来分成等间距的数组的。

num是等间距的数量,默认为50 

这个例子是为了t分布的概率密度曲线图,先生成曲线图的x坐标范围(概率从0.00000001到0.99999999)序列

plt.plot(x,y)就是一个画图的函数

x、y的取值可以是元组,也可以是列表;

同索引位置的x,y组合起来就对应相关位点;

也可以有多个plot,就是一个画图板上有多个线;

plt.plot((t_statistic,t_statistic),(-0.01,0.4),'-.r')中(-0.01,0.4)是红线端点y轴坐标

 ppf是百分比点函数(Percent Point Function),此函数可以累计概率(概率密度曲线下面积分位点(x轴上的值

Cdf是累积分布函数(Cumulative Distribution Function),可以分位点(x轴上的值累计概率(概率密度曲线下面积),例如在t分布曲线中分位点为0时,累积概率应该是0.5

双样本t检验 

911114a29abf4d898622f35492969cdb.png

 

独立t检验:是针对两组不相关样本(各样本量可以相等也可以不相等),检验它们在均值之间的差异,如一个班级中男生和女生的成绩是否有差异
配对t检验:针对同一组样本在不同场景下均值之间的差异,如一个班级中的女生第一次月考和第二次月考的成绩是否有差异 

实例+代码:

01a44402e1cb400a80f054856a16814e.png

9aaab15e99e2485484ca5afdecb9ebce.png

P值是错误拒绝H0的概率!
在这里,也是抽样误差造成两组均值有差异的概率,由于这个概率高,所以认为两组间均值的差异是由抽样误差引起的,而不是两组来源于不同总体引起的 

p-hacking

即便gif.latex?p%3Calpha,我们拒绝空假设也还是存在着错误拒绝的风险,错误拒绝的概率 p 

避免过度挖掘 -- p-hacking

回归

建立因变量y和自变量x之间的函数关系:

gif.latex?%5Cwidehat%7By_%7Bk%7D%7D%3Df%28x%29

y -- 目标、响应

x -- 预测变量

若f是线性函数,则线性回归;

若f是非线性函数,则非线性回归;

若x包含一个特征,则一元回归

若x包含多个特征,则多元回归

线性回归

 建立响应y与预测变量x之间的线性关系

8fea8e47cbfe4bc4be24cdcb6146ef80.png

4d2c67f0f64c4f349f26360963de4818.png

a40fba7af23046fbb19f6517c9cb1e03.png

可以借助于这幅图来理解一下线性回归的几何意义。我们以样本的x和y分别作为横坐标和纵坐标,绘制出二维散点图。一元线性回归就是企图找到一条直线,能够最好的反映y与x之间的联动关系。那么,问题来了,很显然我们可以轻易地在这堆散点中画出很多条直线,可到底哪条才是最好的呢?
解决这个问题,我们需要先引入一个叫残差概念。我们把模型得到的y值为预测值,而对y观测得到的值称为观测值预测值和观测值之间的差异就叫做残差 

66ba6049edbb420aa59ecb115932a0a2.png

代码与实例:

2c3e4798b41f42568dca3728b8059677.png

Sepal萼片   Petal花瓣  
Intercept 截距
coef 回归系数 

r*代表红色五角星
ms代表尺寸大小
metrics.mean_squared_error可以求出残差平方和的平均值,但开根号要另外求

上图的第四行才是散点的绘制;

倒数第五行是那条回归线的绘制 ;

倒数第五行是回归线上的红五角星的绘制;

 c8daf0db65c34ec080413991d38e2974.png

 值得注意的是,不是所有的回归线都是有意义的!

见下图:

64b40d4acc7a4d57a49d6ba9be70eb7c.png 

上图的前者就没什么意义,后者则效果十分明显! 

那么问题来了,该如何判断一个回归线是否有意义?

这就需要我们引入一个叫做决定系数(gif.latex?r%5E%7B2%7D)的概念:

 240672d21eb945ef9da72719eaa61dff.png9ffea392edd543bf87134a1cf1783750.png

 残差平方和越小越好,所以可以认为gif.latex?%7B%5Ccolor%7BBlue%7D%20r%5E%7B2%7D%7D越接近1越好

 线性回归与线性相关

这是一组相当容易让人难以区分的概念:

线性相关系数r取值范围是[-1,1]:

标明的是两个变量的耦合程度,两个变量的地位平等,不可用其中一个去预测另一个

线性回归:

强调回归函数的确定, 建立两个变量之间的关系,期望得到用x预测y这样的效果

样本回归系数gif.latex?%5Cbeta与样本回归系数r的关系之间的关系: 

gif.latex?%5Cbeta%20%3Dr%5Ctimes%20%5Cfrac%7Bs_%7By%7D%7D%7Bs_%7Bx%7D%7D

s表示的是标准差;

 Logistic函数

如果不要输出连续区间的取值,只要分类结果呢?

解决方法有两种:

1.设置一个阈值,然后分类

2.放弃线性函数,采用输出概率的函数。即基于多个特征直接预测一件事情的发生概率。

1082deb9166d412bb2f343bfb38b551b.png 

7be72793f13f4e81bc95ccb94b74fa1b.png 

一图小总结

 a4cd02f47f054a8399b3f0c263e9fd64.png

 朴素贝叶斯

c026333019ec4ddfae5cc6ccc0e75287.png

X代表我们能观察到的属性,即观察变量;C代表一个潜在特性,比如说分类的类别。我们希望通过能观察的属性X,来给出潜在特性C取某值的概率。当引入条件概率后,观察到X时,取C类的概率就被记为符号P(C|X),又称为C的后验概率。
由贝叶斯定理有C的后验概率等于在C类中观察到X的条件概率,乘以总体中C类发生的概率,再除以在总体中观察到X的概率。这里,我们还常常把总体中C类发生的概率P(C)称为C的先验概率,在C类中观察到X的条件概率称为似然性likelihood。 

举例:

91b4b476332941749756d34dc3427333.png 

千万注意!不是说张三检测为阳性那他患病概率是99%! 

正确的计算应该如下:

 91a34d0766aa4926a9374c831f755dfd.png

上图是有一个公式的(条件概率公式):

gif.latex?P%28A%7CB%29%3D%5Cfrac%7BP%28AB%29%7D%7BP%28B%29%7D

所以可以理解为:

P(x+|患病)P(患病)=又患病又检测为阳性的概率 

P(x+|不患病)P(不患病)=又不患病又检测为阳性的概率 

二者相加就是检测为阳性的概率

 X检验的正确率从表格看起来都是99%的啊,可为什么张三在检验为阳性后患病的概率却依然这么小呢?

这是因为K疾病在该地区的发生率本来就很小啊(0.1%),没做X检验时,张三患K疾病的概率只有千分之一,当我们给出X检验结果阳性后,张三患病概率9%,已经提高到原来的90倍了,这个提高正是因为X检验结果阳性这一信息的加入而带来的

如果实践中真的出现这样的情况,那么,医生就应该补充独立检查,即不受x检验的影响

 01557e8292e84e97bcaccf4460c7fcad.png

值得注意的是,这里患病的概率发生了改变! 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值