机器学习 - 朴素贝叶斯

本文介绍了朴素贝叶斯分类器的工作原理,包括其基于贝叶斯定理和特征条件独立假设的核心公式。讨论了如何计算先验概率和条件概率,以及如何处理重复单词,如多项式模型和伯努利模型。朴素贝叶斯常用于文本分类、垃圾邮件过滤等场景,其优点在于简单快速,但存在特征独立假设和对数值型数据处理的局限性。
摘要由CSDN通过智能技术生成

朴素贝叶斯是基于贝叶斯定理与条件独立假设的分类方法。对于给定的训练数据,首先基于特征条件独立假设学习联合概率分布p(X, ci) = p(X|ci)p(ci),即朴素贝叶斯核心公式的分子。朴素贝叶斯就两个东西:训练出词概率向量(任意一个类别中,每个单词出现的概率)即条件概率,类别概率即先验。只要我们训练出了这两个东西,那么后面无论给出什么样的样本的词向量,我们都能轻松算出这个词向量属于每个类别的概率。


1. 朴素贝叶斯的核心公式

朴素贝叶斯要解决的问题是将train_x与tran_y进行训练,然后对test_x进行分类。设X是test_x中任意一个样本,xi是X的任意一个特征,xi之间条件独立;ci是分类的label,如二分类的0/1。则有下列公式:


我们要想对X进行分类,则需要计算出所有的p(ci|X),然后比较哪一个最大,则X属于哪一类。因此就是计算p(X|ci),p(ci),p(X);由于p(X)为全概率,不用进行计算。故需要计算p(X|ci),p(ci);p(ci)为先验概率刻画是的类别ci发生的可能性,p(X|ci)为条件概率,即在类别ci中X出现的概率,因为特征条件独立,因此p(X|ci),为X中各个特征出现的概率的乘积。把p(x1|ci),p(x2|ci)...p(xn|ci)放入到一个向量中,就是训练生成的词概率向量。p(ci)为每个类别的概率,很容易在训练过程中计算出来p(X|ci) 可以先通过训练集训练出一个概率向量,比如[0.1, 0.2, 0.15, 0.15, 0.3,0.1]来代表类别ci中每个特征/单词出现的概率(需要使用拉普拉斯平滑,避免词概率向量中出现0)。然后预测时使用X的词向量如[0, 0, 1, 1, 0,2],p(X|ci) = (1 * 0.15) * (1 * 0.15) * (2* 0.1) = 0.0045


2. 代码实现

# -*- coding: utf-8 -*-
""" naive bayes
本程序实
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值