贝叶斯分类算法 -- 概率推导

贝叶斯分类算法是基于一种古典概率统计学的一种非常简单的分类方法。废话不多说,尽快进入推导过程,因为很简单。假设 x1,x2... x3 是判断因素,y 是类别结果。那么我们做如下假设:

1. x1,x2 ... x3 是离散事件,即可以统计出 p(x1),p(x2).... p(x3)  ,否则贝叶斯算法失效。

2.x1,x2, ... x3 互相独立,即 p(x1|x2) = p(x1)

3.x1,x2, ... x3 对类别的影响是同等重要的

现在可以快速的推导公式 了

p(y|x1,x2,...x3) = p(y)*p(x1|y)*p(x2|x1,y)*... p(x3|x1,x2,y)   /  p(x1,x2,...x3) 

由于 p(x1,x2,... x3) 是公因子,所以对结果不产生影响,所以我们去掉,后面 softmax 化即可。

p(y|x1,x2,...x3) = p(y)*p(x1|y)*p(x2|x1,y)*... p(x3|x1,x2,y)  利用 x1 ,x2, ... x3 的独立性,得出:

p(x3|x1,x2,y) = p(x1,x2,x3,y) / p(x1,x2,y) = p(x3,y) / p(y) = p(x3|y)

所以贝叶斯分类公式为:

p(y|x1,x2,...x3) = p(y)*p(x1|y)*p(x2|y) ... *p(x3|y)    公式后面的数据都可以从训练数据中统计出来概率。最后 softmax 即可。

代码实现如下:

'''
X_train 是数据集 Y_train 是对应的类别  X_test 是待分类数据
'''
# 导入贝叶斯分类器
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()

# 训练数据
gnb.fit(X_train, y_train)

# 使用贝叶斯分类模型
y_pred = gnb.predict(X_test)

但是,考虑到应用于 NLP 时,我们需要综合考虑词汇的 ITF 权重,以提高模型效果。

应用文本分类GitHub :https://github.com/ouprince/NBayes

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值