朴素贝叶斯(详细版)

本文详细介绍了朴素贝叶斯算法,包括其符号表示、生成模型、拉普拉斯平滑和应用实例。朴素贝叶斯假设特征之间相互独立,简化了模型但可能导致准确性损失。通过极大似然估计和拉普拉斯平滑处理数据,使其在实际应用中表现出良好的效果,如邮件分类问题。
摘要由CSDN通过智能技术生成

朴素贝叶斯是传统机器学习算法中的一种,因为使用简单而且效果不差而被广泛使用。基本上用到的数学原理就是贝叶斯公式和极大似然估计,原理上也是比较简单。但是它的简单是源于做了一个硬性的假设,假设在知道y的情况下,x中的所有feature出现的可能性是相互独立的,这个条件其实并不成立,但是这个假设大大简化了模型,不过这个模型也因为这个硬性假设而丧失了一些准确性。

这篇博文的内容是基于《统计学习方法》中第四章和cs229中第5课的学习和理解。这里的符号表示还是根据自己的习惯来,用上标表示样本数,用下标表示feature数,比如x^{(i)}_j表示第i个样本中的第j个feature。

朴素贝叶斯

符号表示

现在假设我们有m组训练样本\left \{ (x^{(1)}, y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)}) \right \},我们需要根据这m组样本学习到x与y之间的隐藏联系,从而当给定一个x的数据时,能够预测出y的值。

假设y的取值范围有K类,分别是\left \{ c_1,c_2,...,c_K \right \}

同时假设每个x^{(i)}的feature有n个,分别是\left \{ x^{(i)}_1, x^{(i)}_2,...,x^{(i)}_n \right \},而每个feature的也就是x_j第j个feature的取值一种有S_j种,表示为\left \{ a_{j1},a_{j2},...,a_{jS_j} \right \}

为了更好的理解符号表示,可以举一个例子,邮件自动分类问题。

比如我们希望邮箱可以自动将邮件分类为工作邮件(0)私人邮件(1)垃圾邮件(2)这样三类,分别用0,1,2表示,那么y的取值范围有K=3,并且c_1=0,c_2=1,c_3=2

x就是我们的邮件内容,使用单词表对邮件内容进行编码。编码方式是如果邮件中的某个字符出现在了单词表中,那么这个位置的值就为1,否则为0.

假如我们的单词表有50000个单词,而我们的邮件内容为...buy a toy, price...,那么我们根据单词表的编码为

\begin{bmatrix} a\\ ...\\ buy\\ ...\\ toy\\ ...\\ price\\ ...\\ zambie\\ ... \end{bmatrix}\begin{bmatrix} 1\\ ...\\ 1\\ ...\\ 1\\ ...\\ 1\\ ...\\ 0\\ ... \end{bmatrix}

所以x的feature n=50000,每个feature的取值有2中S_j=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值