概率与统计推断第二讲homework
作业目的: 体会条件独立
1、现需要设计一个根据一个人是否是学生$S$(布尔变量)和其体重$W$(连续变量)判断该人的性别$G$(布尔变量)。假设在给定$G$的情况下$S$和$W$独立,且假设概率分布 $p(W|G=female)$和$p(W|G=male)$为高斯分布且二者的方差相等。
(a)可以用朴素贝叶斯分类器实现吗?
(b)如果可以用朴素贝叶斯分类器的话,需要估计从训练数据中估计哪些分布的哪些参数。
(a)、
由条件独立性假设可是,可以用朴素贝叶斯分类,并且有:
$ p(G | S, W) \propto p(S, W | G)\cdot p(G)$
给定$G$的情况下$S$和$W$独立可得,
$p(G | S, W) \propto p(S | G)\cdot p(W | G)\cdot p(G)$
(b)、
$p(G = female | S, W) \propto p(S | G = female)\cdot p(W | G = female)\cdot p(G = female)$
$p(G = male | S, W) \propto p(S | G = male)\cdot p(W | G = male)\cdot p(G = male)$
其中,
$p(G) = Ber(\theta _{1})$ (伯努利分布)
$p(S | G = female) = Ber(\theta _{2}), p(S | G = male) = Ber(\theta _{3})$
$p(W | G = female) = N(\theta _{4}, \theta _{5}), p(W | G = female) = N(\theta _{6}, \theta _{5})$ (均满足正态分布,且具有相同的方差)
$\theta _{1}$到$\theta _{6}$就是需要估计的参数。
2、体会条件独立带来模型参数的减少考虑一个$C$个类别的产生式分类器,其中类条件概率密度为$p(x|y) $,假设类先验$p(y)$为均匀分布。假设$D$维特征均为二值变量,即$x_{j} \epsilon \left \{ 0, 1 \right \}$。假设在给定类别的条件下,各个特征独立(朴素贝叶斯假设),我们可以记$p(X|y=c,\theta ) = \prod_{j=1}^{D}Ber(x_{j}|\theta_{jc})$,模型共需要$DC$个参数。
(a) 考虑一个不同的“全”模型,即所有变量都相关。则条件概率$p(X|y = c)$应该是什么样子?表示$p(X|y = c)$需要多少个参数?
(b) 当样本数目N较小时,条件独立模型和全模型哪个模型的性能会更好?
(c) 当样本数目N较大时,上述两个模型哪个模型的性能更好?
(a)、
将$D$维随机变量$X$表示为$(X_{1}, X_{2}, \cdots , X_{D})$
$p(X|y=c) = p(X_{1}|y=c)\cdot p(X_{2}|X_{1},y=c)\cdot p(X_{3}|X_{1},X_{2},y=c)\cdots p(X_{D}|X_{1},X_{2},\cdots ,X_{D-1},y=c)$
其中,$p(X_{1}|y=c)$服从伯努利分布,需要1个参数。$p(X_{2}|X_{1},y=c)$需要估计$p(X_{2}|X_{1}=0,y=c)$,$p(X_{2}|X_{1}=1,y=c)$两个伯努利分布,因此需要2个参数。
同理有$p(X_{3}|X_{1},X_{2},y=c)$需要4个参数,$p(X_{D}|X_{1},X_{2},\cdots ,X_{D-1},y=c)$需要$2^{D-1}$的参数
为表示$p(X|y=c)$,所需参数个数:$1+2+4+\cdots +2^{D-1} = 2^{D}-1$
(b)、(c)、
当样本数目很小时,由于全模型考虑到了更多的样本信息,应该会好一些吧。如果样本数不小时,全概率模型由于需要估计太多参数,难以计算。
概率与统计推断第二讲homework的更多相关文章
- 概率与统计推断第一讲homework
1. 假设在考试的多项选择中,考生知道正确答案的概率为$p$,猜测答案的概率为$1-p$,并且假设考生知道正确答案答对题的概率为1,猜中正确答案的概率为$\frac{1}{m}$,其中$m$为多选项的 ...
- 【题解】歌唱王国(概率生成函数+KMP)+伦讲的求方差
[题解]歌唱王国(概率生成函数+KMP)+伦讲的求方差 生成函数的本质是什么呀!为什么和It-st一样神 设\(f_i\)表示填了\(i\)个时候停下来的概率,\(g_i\)是填了\(i\)个的时候不 ...
- POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取
第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- 【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的
[军哥谈CI框架]之入门教程之第二讲:分析CI结构和CI是怎么工作的 之入门教程之第二讲:分析CI结构和CI是如何工作的大家好!上一节,我们共同部署了一个CI网站,做到这一点非常简单,但是,亲们, ...
- 《ArcGIS Engine+C#实例开发教程》第二讲 菜单的添加及其实现
原文:<ArcGIS Engine+C#实例开发教程>第二讲 菜单的添加及其实现 摘要:在上一讲中,我们实现了应用程序基本框架,其中有个小错误,在此先跟大家说明下.在“属性”选项卡中,我们 ...
- 基于微信公众平台的开发(清华大学第二讲)_Alien的笔记
基于微信公众平台的开发(清华大学第二讲)_Alien的笔记 基于微信公众平台的开发(清华大学第二讲)
- 32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...
- 常见注入手法第二讲,APC注入
常见注入手法第二讲,APC注入 转载注明出处 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSDN中的解释,异步过程调用,属于是同步对象中的函数,所以去同步对 ...
随机推荐
- StarUML配置Word生成文档模板
来源:fasiondog 许多UML建模工具可以自动生成文档,让需求人员.开发人员专心于需求.设计的建模.当然为了能够生成符合自己要求的模板,需对建模时的目录结构(模型和包)有所规划和要求,否则很难生 ...
- infiniDB在linux(centos系统)下的安装使用
tar包的安装过程:http://www.docin.com/p-166891856.html 另一种方法,也可以编译安装(Debian X86_64):http://tech.it168.com/a ...
- DH密钥交换非对称加密
迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称"D–H") 是一种安全协议. 它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起 ...
- VS2010 / MFC + OpenCV 2.4.9打开图片
原文地址:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=30832 第一部分,参考http://jingyan.baidu.com ...
- 关于GPL329A添加摄像头驱动需要更改的配置脚本
我今天要添加一个ov2685的驱动进Digogo这部机子,当然要让它开机自动启动,就要想办法让它的.ko在启动文件系统的时候要自动被装载,这样上层打开摄像头才能加载摄像头驱动. 我找到源码工程对应添加 ...
- rails中select不能响应多选的解决办法
在rails4.2中如果你写如下代码,post的select无法传回多选内容,即使你select设置为多选: <select id='id_size' name='name_size' mult ...
- rails项目编写中的一些小技巧小心得
1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...
- python snownlp情感分析简易demo
SnowNLP是国人开发的python类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和T ...
- Python的lambda
if else 可以用简单的三元运算符表示 if 1 == 1: name = 'wupeiqi' else: name = 'alex' --> name = 'wupeiqi' if 1 = ...
- 使用可变对象作为python函数默认参数引发的问题
写python的都知道,python函数或者方法可以使用默认参数,比如 1 def foo(arg=None): 2 print(arg) 3 4 foo() 5 6 foo("hello ...