机器学习实战——第四章:朴素贝叶斯

来源:互联网 发布:linux安卓 编辑:程序博客网 时间:2024/06/10 03:14

本系列目的在于总结每一个分类器的特点(优点、缺点、使用数据类型、使用时的注意事项等)。相关代码自己搜。


python:建议使用2.7

python常用函数库:NumPy、scikit-learn等

python集成环境:anaconda



优点:

1、可以处理多元分类问题

2、对异常值不敏感

3、训练数据较少也比较有效

4、简单高效


缺点:

1、文本分类,对于其他的特征数量较少的训练数据集,不宜使用NB

2、NB的两个假设:条件独立假设、每个特征的权重一样(同等重要)假设,往往不成立。(但效果还不错....)


使用数据类型:

1、连续型(先做离散化处理)

2、离散型


使用时注意事项:

0、注意计算过程中两个易错点:

分子有一项为零,造成整个概率为零:使用Laplace smooth

分子的每一项都很小,造成连乘的结果趋于0,甚至下溢出错:使用 log(x*y) = log(x) + log(y)

1、最常用的场景:文本分类,对于其他的特征数量较少的训练数据集,不宜使用NB

2、特征数量较多时,可以观察特征的直方图分布分析特征之间的关系

3、深刻理解NB的两个假设:条件独立假设、每个特征的权重一样(同等重要)假设

4、注意set-of-words model和bag-of-words model的区别(词袋模型一般较优):

每个word取值的区别

计算条件概率(模型参数)的区别

5、理解NB的两种实现方式(伯努利模型实现、多项式模型实现)在产生文章词汇过程中的区别

6、如何根据NB训练得到的模型解释数据集的内在知识(其实发现数据的内在知识才是我们希望做的):

1)在预测集上表现不错,说明训练得到的模型还不错

2)那么,训练得到的模型中,每个类别下的概率最大的一些词汇,就是最能表征该类别特征的词汇,分析这些词汇并得出数据集的内在知识

7、最后是一些文本建模中的注意点:

构建词汇表:分词、大小写转换 | 超链接合并 | 停用词去除 | 高频词去除 | 正则项匹配 | 长度限制 | 等等 --->得到词汇表、

语义分析:同义词合并、pLSA、LDA等

0 0
原创粉丝点击