A Programmer's Guide to Data
Chapter 6 Naïve Bayes and Probability Density Functions
This chapter introduces the Naïve Bayes Classifier.
Contents
- lazy and eager learners
- a probability refresher
- Conditional probabilities: a shopping cart example
- Bayes Theorem
- P ython code for Naïve Bayes
- The Congressional Voting Records data set
- Gaussian distributions and the probability density function.
- Probability density function: the Python implementation
- How a recommendation system works.
Python code
- p31: basic Naive Bayes Classifier: naiveBayes.py
- p63: code it challenge: naiveBayesDensityFunctionTraining.py
- p64: code it solution: naiveBayesDensityFunctionTrainingSolution.py
- p66: complete solution using Probability Density Function: naiveBayesDensityFunction.py
Data
- p34: iHealth data: iHealth.zip
- p35: Republicans or Democrats: house-votes.zip
- p63 : Pima Indian Diabetes Small Data Set pimaSmall.zip
- p67: Pima Indian Diabetes Small Data Set pima.zip
- p71: Final Code It challenge: mpgData.zip
朴素贝叶斯和概率密度函数
朴素贝叶斯
我们再次回顾下之前的运动员那个例子. 假设我现在问你身高6.8inch, 体重207pds的Brittney Griner 应该是练习什么项目的, 体操,马拉松, 还是篮球?我想你可能会脱口而出"篮球", 如果我继续问, 你有多大把握?我猜你会给出百分之八九十的肯定吧.
现在我再问你身高6.1inch, 体重176pds的Heather Zurich(图6.1)是玩啥的? 反正我自己是不能给出个肯定的答案.你可能会回答, 篮球.然后你自己也不太肯定, 也许是个跑马拉松的高个子呢!这也不无可能.
Heather Zurich.jpg
最后我再问你5.4inch高, 95pds重的Yumiko Hara是练什么的?你会大概会说, 体操.但是你不太确定,因为这样的身材跑马拉松也是可以.
只是用最近邻算法是很难量化一个分类的确定性或者说可能性(得到概率).但是贝叶斯分类方法就可以做到不但能完成分类工作,还能同时得到对应分类的概率.这个运动员有80%可能是打篮球, 这个病人有40%的可能性会在未来5年内患糖尿病,Las Cruces24小时内会下雨的概率是10%,等等.
最近邻理论又叫"惰性学习".当我们给基于该算法的分类器一个训练数据集, 它仅仅是做基本的特征保存处理.在遍历整个训练数据集时,每一次分类都是相互独立的一个实例.如果我们给一个有100,000音乐信息的训练数据,它要做100,000相互独立的分类处理.
贝叶斯方法又叫"期望学习".当"期望学习"得到一个训练数据,它会立即分析整个数据,并建立一个模型.要分类一个实例数据时,它会用这个模型来做出分类判断."期望学习"一般都会笔"惰性学习"处理得快些.
贝叶斯方法的两个特性或者优点就是,能够量化分类的可能性(概率)和是"期望学习".
概率
假设你已经对概率的基础知识有所了解.抛一枚硬币,正面朝上的概率是多少?六面体的骰子,摇出"1"的概率又是多大呢?这些都是比较简单的事件.再举个个例子,如果我告诉你最近我交了个19岁朋友,请问是女生的概率多大?毫不犹豫,你会回答50%.这些都是先验概率的例子.事件h的概率记作---P(h).
- 抛硬币:
P(正面朝上) = 0.5 - 抛骰子正面数字:
P(1) = 1/6 - 新交的朋友
P(女生) = 0.5
如果我再给你一条关于这个19岁少年的信息:Frank Lloyd Wright School of Architecture 学校的学生.你马上到Google上去搜索,发现这所学校的女生占86%,现在你应该会修改你的答案为86%.