写给自己——卡方检测
2015-09-13 16:56
316 查看
卡方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。偏差越大,我们认为原假设越有问题,从而接收原假设的反面。
那如何计算偏差程度?假设变量X,所有的观测值为X1,X2,...,Xn,理论值就是E(X)了(可以是其他合理的假设),那么偏差就是 sigma:i(1-n){ (Xi-E(x))^2 / E(x) }。
所谓“理论”,就是指我们的原假设。对(以DF视角分析)文本分类而言,实际值是指“某个词汇在某个类别下出现的真实DF值”,理论值是指“某个词汇在原假设的情况下应该在某个类别下出现的DF值”。
对(以DF视角分析)文本分类而言,我们原假设为“假设某个词汇与类别Ci无关”,这样的原假设使得我们在计算“该词汇在某个类别下的理论DF值”时可以使用最简单的概率公式,即数量=总数*概率,因为对于“无关”假设我们可以简单地使用{观察到的频率/观察到的总数}来表示概率。(现在知道为什么不假设“假设某个词汇与类别Ci相关”了吧。)
但我还是不知道上面说的是什么,举例:
有如下观测值:
假设“词汇T与性别无关”,则对于情况“词汇T出现 并且属于 男性文档”,实际值就是A,理论值应该是:E=(A+B)/(A+B+C+D) * (A+C),即词汇T在总语料库的出现概率 乘 男性文档总数。(注意,由于假设“词汇T与性别无关”,所以词汇T在总语料库的出现概率~=词汇T在男性语料库的出现概率,所以上面的计算公式还是说得过去的。)
所以有D11 = (A-E)^2 / E = (AD-BC)^2 / (A+B)(A+C)N,其中N=A+B+C+D。
同理可计算D12、D21、D22,最终卡方值为:
K^2 = N*(AD-BC)^2 / (A+B)(C+D)(A+C)(B+D)。
我们筛选特征时,想找出卡方值最大的topn个词汇,这些词汇的卡方值离理论值偏差最远,与原假设“词汇T与性别无关”相悖,所以这些词汇是与性别最相关的词汇。
由于选特征时,只关注相对值,而不考虑具体卡方值是多少,那么对于给定的语料库,不同词汇T对应的N、(A+C)、(B+D)都一样,所以最终计算时,只需要如下公式:
/K^2 = (AD-BC)^2
/ (A+B)(C+D)。
那如何计算偏差程度?假设变量X,所有的观测值为X1,X2,...,Xn,理论值就是E(X)了(可以是其他合理的假设),那么偏差就是 sigma:i(1-n){ (Xi-E(x))^2 / E(x) }。
所谓“理论”,就是指我们的原假设。对(以DF视角分析)文本分类而言,实际值是指“某个词汇在某个类别下出现的真实DF值”,理论值是指“某个词汇在原假设的情况下应该在某个类别下出现的DF值”。
对(以DF视角分析)文本分类而言,我们原假设为“假设某个词汇与类别Ci无关”,这样的原假设使得我们在计算“该词汇在某个类别下的理论DF值”时可以使用最简单的概率公式,即数量=总数*概率,因为对于“无关”假设我们可以简单地使用{观察到的频率/观察到的总数}来表示概率。(现在知道为什么不假设“假设某个词汇与类别Ci相关”了吧。)
但我还是不知道上面说的是什么,举例:
有如下观测值:
男性文档 | 女性文档 | |
词汇T出现 | A | B |
词汇T不出现 | C | D |
所以有D11 = (A-E)^2 / E = (AD-BC)^2 / (A+B)(A+C)N,其中N=A+B+C+D。
同理可计算D12、D21、D22,最终卡方值为:
K^2 = N*(AD-BC)^2 / (A+B)(C+D)(A+C)(B+D)。
我们筛选特征时,想找出卡方值最大的topn个词汇,这些词汇的卡方值离理论值偏差最远,与原假设“词汇T与性别无关”相悖,所以这些词汇是与性别最相关的词汇。
由于选特征时,只关注相对值,而不考虑具体卡方值是多少,那么对于给定的语料库,不同词汇T对应的N、(A+C)、(B+D)都一样,所以最终计算时,只需要如下公式:
/K^2 = (AD-BC)^2
/ (A+B)(C+D)。
相关文章推荐
- 重建二叉树
- javascript中字符串的常用方法
- 循环
- Linux字符设备驱动之异步通知
- AWS Region 相关问题
- 比较全的正则表达式
- 数据库存储过程
- ios 生成随机数
- Linux 安装两个mysql服务
- Android源码调试方法
- Android Studio和Eclipse的有关安卓项目的版本号的修改
- 查看服务器 慢 卡 原因 Linux
- 设计原则和设计模式回顾
- Hadoop学习笔记1
- c++stl之逆向迭代器 Reverse Iterators
- 【英语】Bingo口语笔记(80) - 记忆、忘记的表达
- Linux驱动之poll机制
- Oracle数据库 sqlplus命令下 使用backspace键乱码问题!
- 关于继承的新认识
- 10 个免费的服务器监控工具