什么是分类?
找出描述和区分数据类或概念的模型,以便能够使用模型预测类标号未知的对象的类标号
一般过程
- 学习阶段建立描述预先定义的数据类或概念集的分类器训练集提供了每个训练元组的类标号,分类的学习过程也称为监督学习(supervised learning)
- 分类阶段使用定义好的分类器进行分类的过程
概念区分
分类与预测:分类是预测分类(离散、无序)标号,预测建立连续值函数模型预测数值
分类与聚类:分类是有监督学习,提供了训练元组的类标号,聚类是无监督学习,不依赖有类标号的训练实例
先验概率:根据以往的经验分析得到的概率,不需要样本数据
后验概率:根据具体样本数据得到的概率
贝叶斯算法
P(A∣B)=P(B∣A)⋅P(A)P(B) P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)⋅P(A)
- P(A∣B)**:后验概率(已知B发生时A的概率)
- P(B∣A)**:似然度(已知A发生时B的概率)
- P(A):先验概率(A的初始概率)
- P(B):证据概率(B发生的总概率,可通过全概率公式计算)
贝叶斯算法的核心思想是通过考虑特征概率(后验结果概率)来预测分类(先验),即对于给出的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。
朴素贝叶斯分类
贝叶斯分类本质上是同时考虑了先验概率和似然概率的重要性
假设D的属性aia_iai之间相互独立,转化成求多个条件概率,即朴素贝叶斯分类。
hMAP=maxh∈HP(h∣<a1,a2,…,an>)=maxh∈HP(<a1,a2,…,an>∣h)P(h)=maxh∈H∏iP(ai∣h)P(h)
h_{MAP}=\max_{h\in H}P(h|\lt a_1,a_2,\ldots,a_n\gt) = \max_{h\in H}P(\lt a_1,a_2,\ldots,a_n\gt|h)P(h) = \max_{h\in H}\prod_{i}P(a_i|h)P(h)
hMAP=h∈HmaxP(h∣<a1,a2,…,an>)=h∈HmaxP(<a1,a2,…,an>∣h)P(h)=h∈Hmaxi∏P(ai∣h)P(h)
朴素贝叶斯方法的条件独立假设看上去过于天真,为什么预测结果却相当准确呢?在文本中,词汇之间的相关性并没有想象的那么大。有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的,所以对于似然的相对大小不产生影响
例1
现有样本集:
| id | 年龄段 | 收入状况 | 爱好 | 信用度 | 购买电脑 |
|---|---|---|---|---|---|
| 3 | 中 | 高 | 否 | 中 | 是 |
| 4 | 老 | 中 | 否 | 中 | 是 |
| 5 | 老 | 低 | 是 | 中 | 是 |
| 7 | 中 | 低 | 是 | 优 | 是 |
| 9 | 青 | 低 | 是 | 中 | 是 |
| 10 | 老 | 中 | 是 | 中 | 是 |
| 11 | 青 | 中 | 是 | 优 | 是 |
| 12 | 中 | 中 | 否 | 优 | 是 |
| 13 | 中 | 高 | 是 | 中 | 是 |
希望预测一个收入中等、信用度良好的青年爱好游戏顾客是否购买电脑
分别算出各项的条件概率:
P(青年 |购买) = 2/9 = 0.222
P(收入中等 |购买) = 4/9 = 0.444
P(爱好 |购买) = 6/9 = 0.667
P(信用中 | 购买) =6/9 = 0.667
然后将各项条件概率累乘即得最终的预测概率:P(X | 购买) = 0.222 ×0.444 ×0.667 ×0.667=0.044
例2——邮件分类
给定一封邮件,判定它是否属于垃圾邮件。按照先例,用 D 来表示邮件(注意 D 由 n个单词的属性合取<a1,a2,…,an><a_1,a_2,…,a_n><a1,a2,…,an>组成)。用 h+ 来表示垃圾邮件,h- 表示正常邮件,即目标空间H=<h+,h->。
已知:训练集合中垃圾邮件的比例为P(ℎ+)=0.2;训练集合中正常邮件的比例为P(ℎ−)=0.8
单词出现频率表
| 分词 | 在垃圾邮件中出现的比例 | 在正常邮件中出现的比例 |
|---|---|---|
| 免费 | 0.3 | 0.01 |
| 奖励 | 0.2 | 0.01 |
| 网站 | 0.2 | 0.2 |
判断一封邮件D=<“免费”,”奖励”,“网站”>是否是垃圾邮件
P(h+│D)=P(h+)∗P(D∣h+)P(D)=0.2∗(0.3∗0.2∗0.2)P(D)=0.0096P(D)
P(ℎ+│D)=\frac{P(ℎ+)∗P(D|ℎ+)}{P(D)}=\frac{0.2∗(0.3∗0.2∗0.2)}{P(D)}=\frac{0.0096}{P(D)}
P(h+│D)=P(D)P(h+)∗P(D∣h+)=P(D)0.2∗(0.3∗0.2∗0.2)=P(D)0.0096
P(h−│D)=P(h−)∗P(D│h−)P(D)=0.8∗(0.01∗0.01∗0.2)P(D)=0.000016P(D) P(ℎ−│D)=\frac{P(ℎ−)∗P(D│ℎ−)}{P(D)}=\frac{0.8∗(0.01∗0.01∗0.2)}{P(D)}=\frac{0.000016}{P(D)} P(h−│D)=P(D)P(h−)∗P(D│h−)=P(D)0.8∗(0.01∗0.01∗0.2)=P(D)0.000016
发现P(ℎ+│D) > P(h−|D),由此判定:邮件D=<“免费”,”奖励”,“网站”>是垃圾邮件
朴素贝叶斯分类 —— 连续数据如何求概率
假设不同类别收入分别服从不同正态分布。
依据训练数据可求得各类别在不同特征上的均值和方差。
依据概率密度函数:
f(x)=12πσij2e−(x−μij)22σij2
f(x) = \frac{1}{\sqrt{2\pi\sigma_{ij}^2}} e^{-\frac{(x-\mu_{ij})^2}{2\sigma_{ij}^2}}
f(x)=2πσij21e−2σij2(x−μij)2
求出类似
贝叶斯分类特点
- 数学基础坚实、分类效率稳定
- 属性可以离散、也可以连续
- 对缺失和噪声数据不太敏感
- 属性如果不相关,分类效果更好
贝叶斯分类编程实践
Sklearn目前提供3个朴素贝叶斯分类算法:
- 高斯朴素贝叶斯(GaussianNB):特征变量是连续变量。
- 多项式朴素贝叶斯(MultinomialNB):特征变量是离散变量。
- 伯努利朴素贝叶斯(BernoulliNB):特征变量是布尔变量。

被折叠的 条评论
为什么被折叠?



