NLP-learning-5

Task 5 传统机器学习–朴素贝叶斯

  1. 朴素贝叶斯的原理
  2. 朴素贝叶斯应用场景
  3. 朴素贝叶斯优缺点
  4. 朴素贝叶斯 sklearn 参数学习
  5. 利用朴素贝叶斯模型结合 Tf-idf 算法进行文本分类

参考资料
朴素贝叶斯1:sklearn:朴素贝叶斯(naïve beyes) - 专注计算机体系结构 - CSDN博客 (https://blog.csdn.net/u013710265/article/details/72780520)

1 朴素贝叶斯原理

公式

贝叶斯公式:
在这里插入图片描述
换个表达形式就会明朗很多,如下:
在这里插入图片描述
P(类别|特征1、特征2、特征3) = P(特征1|类别) * P(特征2|类别) * P(特征3|类别) * P(类别) / (P(特征1) * P(特征2) * P(特征3))

2 朴素贝叶斯应用场景

1 文本分类/垃圾文本过滤/情感判别
  这是应用最多的地方了,即使现在分类器层出不穷,在文本分类场景中,朴素贝叶斯依旧占据一席之地。在文本数据中,分布独立这个假设基本是成立的。而垃圾文本过滤和情感分析用朴素贝叶斯也通常能取得很好的效果。

2 多分类实时预测
  对于文本相关的多分类实时预测,被广泛应用,简单又高效。

3 推荐系统
  协同过滤是强相关性,但是泛化能力略弱,朴素贝叶斯和协同过滤一起,能增强推荐的覆盖度和效果。

3 朴素贝叶斯优缺点

朴素贝叶斯的优点

  算法逻辑简单,易于实现;
  分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

朴素贝叶斯的缺点

  理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

4 朴素贝叶斯 sklearn 参数学习

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

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_:拟合过程中每个特征的数量。

方法
贝叶斯的方法和其他模型的方法一致。
fit(X,Y):在数据集(X,Y)上拟合模型。
get_params():获取模型参数。
predict(X):对数据集X进行预测。
predict_log_proba(X):对数据集X预测,得到每个类别的概率对数值。
predict_proba(X):对数据集X预测,得到每个类别的概率。
score(X,Y):得到模型在数据集(X,Y)的得分情况。

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

参考 https://blog.csdn.net/yyy430/article/details/88346920

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值