朴素贝叶斯模型结合 Tf-idf 算法进行文本分类

news/2024/5/19 5:22:51 标签: tfidf, 贝叶斯

一、朴素贝叶斯的原理


基于朴素贝叶斯公式,比较出后验概率的最大值来进行分类,后验概率的计算是由先验概率与类条件概率的乘积得出,先验概率和类条件概率要通过训练数据集得出,即为朴素贝叶斯分类模型,将其保存为中间结果,测试文档进行分类时调用这个中间结果得出后验概率。

二、朴素贝叶斯应用场景


需要一个比较容易解释,而且不同维度之间相关性较小的模型的时候。
可以高效处理高维数据,虽然结果可能不尽如人意。

三、朴素贝叶斯优缺点


朴素贝叶斯的主要优点有:
1)朴素贝叶斯模型有稳定的分类效率。
2)对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。
3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

朴素贝叶斯的主要缺点有:   
1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
4)对输入数据的表达形式很敏感。

四、朴素贝叶斯 sklearn 参数学习


朴素贝叶斯一共有三种方法,分别是高斯朴素贝叶斯、多项式分布贝叶斯、伯努利朴素贝叶斯
多项式模型(multinomial model)即为词频型。
伯努利模型(Bernoulli model)即为文档型。

高斯朴素贝叶斯
高斯朴素贝叶斯算法是假设特征的可能性(即概率)为高斯分布。

class sklearn.naive_bayes.GaussianNB(priors=None)
priors:先验概率大小,如果没有给定,模型则根据样本数据自己计算(利用极大似然法)。

对象
class_prior_:每个样本的概率

class_count:每个类别的样本数量

theta_:每个类别中每个特征的均值

sigma_:每个类别中每个特征的方差

多项式分布贝叶斯
适用于服从多项分布的特征数据。

class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
alpha:先验平滑因子,默认等于1,当等于1时表示拉普拉斯平滑。

fit_prior:是否去学习类的先验概率,默认是True

class_prior:各个类别的先验概率,如果没有指定,则模型会根据数据自动学习, 每个类别的先验概率相同,等于类标记总个数N分之一。

对象
class_log_prior_:每个类别平滑后的先验概率

intercept_:是朴素贝叶斯对应的线性模型,其值和class_log_prior_相同feature_log_prob_:给定特征类别的对数概率(条件概率)。 特征的条件概率=(指定类下指定特征出现的次数+alpha)/(指定类下所有特征出现次数之和+类的可能取值个数*alpha)coef_: 是朴素贝叶斯对应的线性模型,其值和feature_log_prob相同

class_count_: 训练样本中各类别对应的样本数

feature_count_: 每个类别中各个特征出现的次数

伯努利朴素贝叶斯
用于多重伯努利分布的数据,即有多个特征,但每个特征都假设是一个二元 (Bernoulli, boolean) 变量。

class sklearn.naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
alpha:平滑因子,与多项式中的alpha一致。

binarize:样本特征二值化的阈值,默认是0。如果不输入,则模型会认为所有特征都已经是二值化形式了;如果输入具体的值,则模型会把大于该值的部分归为一类,小于的归为另一类。

fit_prior:是否去学习类的先验概率,默认是True

class_prior:各个类别的先验概率,如果没有指定,则模型会根据数据自动学习, 每个类别的先验概率相同,等于类标记总个数N分之一。

对象
class_log_prior_:每个类别平滑后的先验对数概率。

feature_log_prob_:给定特征类别的经验对数概率。

class_count_:拟合过程中每个样本的数量。

feature_count_:拟合过程中每个特征的数量。

五.利用朴素贝叶斯模型结合 Tf-idf 算法进行文本分类


 


http://www.niftyadmin.cn/n/1224092.html

相关文章

svm文本分类

1.SVM应用场景 文本分类、图像识别、主要二分类领域 2.SVM的优缺点 SVM优点 1、解决小样本下机器学习问题。 2、解决非线性问题。 3、无局部极小值问题。(相对于神经网络等算法) 4、可以很好的处理高维数据集。 5、泛化能力比较强。 SVM缺点 1、对于…

LDA文本分类

PLSA与LDA对⽐ pLSA跟LDA的本质区别就在于它们去估计未知参数所采⽤的思想不 同,前者⽤的是频率派思想,后者⽤的是⻉叶斯派思想。 pLSA pLSA 模型是有向图模型,将主题作为隐变量,构建了一个简单的贝叶斯网,采用EM算…

MySQL生产环境高可用架构实战

分布式技术MongoDB 1. MySQL高可用集群介绍1.1 数据库主从架构与分库分表1.2 MySQL主从同步原理 2. 动手搭建MySQL主从集群2.1 基础环境搭建2.2 安装MySQL服务2.2.1 初始化MySQL2.2.2 启动mysql2.2.3 连接MySQL 2.3 搭建主从集群2.3.1 配置master主服务2.3.2 配置slave从服务主…

深度学习之--神经网络基础

一、前馈神经网络 概念:前馈神经网络、网络层数、输入层、隐藏层、输出层、隐藏单元、激活函数 前馈神经网络:前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输…

深度学习之——word2vec

1. 文本表示:从one-hot到word2vec 文本表示的意思是把字词处理成向量或矩阵,以便计算机能进行处理。文本表示是自然语言处理的开始环节。 文本表示按照细粒度划分,一般可分为字级别、词语级别和句子级别的文本表示。 文本表示分为离散表示和…

深度学习之----TextCNN文本分类

1.卷积神经网络 英文名称:(Convolutional Neural Network),简称CNN。由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT-CONV-RELU-POOL-FC。是深度学习技术中极具代表的网络结构之一,最早应用在图像处理当中&#xff0…

深度学习之----循环神经网络(RNN) 基础

目录 1.RNN的背景 设计RNNs的目的,就是处理序列数据。 2.RNN的价值 3. RNN的基本结构 4. RNN的高级形式 4.1 双向RNN (Bidirectional RNN ) 4.2 LSTM(Long Short-term Memory) 4.3 GRU(Gated Recurrent Unit) 5. RNN的训练 5.1 普通的RNN(simple RNN)不好…

解决arangodb中AQL: unique constraint violated的问题

在插入新增数据时出现了如下问题: AQLQueryError(uError in:\n1: INSERT doc INTO laipaiya LET newDoc NEW RETURN newDoc.\n->AQL: unique constraint violated - in index 0 of type primary over ["_key"]; conflicting key: 950984 (while execu…