IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 朴素贝叶斯算法 -> 正文阅读

[人工智能]朴素贝叶斯算法

朴素贝叶斯

算法概念

朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分类算法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布。然后基于此基础,对给定的输入 x x x,使用贝叶斯定理求出后验概率最大的输出 y y y

算法优点:实现简单,学习和预测效率高,精确度高
算法缺点:无法进行调参

算法原理

首先定义 X X X Y Y Y是随机向量, P ( X , Y ) P(X,Y) P(X,Y) X X X Y Y Y的联合概率分布。数据集假定是独立同分布的。

基于条件独立性假设,可以得到:
P = ( X = x ∣ Y = c k ) = P ( x ( 1 ) = x ( 1 ) , ? ? , x ( n ) = x ( n ) ∣ Y = c k ) P=(X=x|Y=c_{k})=P(x^{(1)}=x^{(1)},\cdots,x^{(n)}=x^{(n)}|Y=c_{k}) P=(X=xY=ck?)=P(x(1)=x(1),?,x(n)=x(n)Y=ck?)
= ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) =\prod^{n}_{j=1}P(X^{(j)}=x^{(j)}|Y=c_{k}) =j=1n?P(X(j)=x(j)Y=ck?)

基于贝叶斯公式有
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) P(Y=c_{k}|X=x)=\frac{P(X=x|Y=c_{k})P(Y=c_{k})}{P(X=x)} P(Y=ck?X=x)=P(X=x)P(X=xY=ck?)P(Y=ck?)?

根据全概率公式
P ( X = x ) = P ( X = x ∣ Y = c 1 ) P ( Y = c 1 ) + ? + P ( X = x ∣ Y = c n ) P ( Y = c n ) P(X=x)=P(X=x|Y=c_{1})P(Y=c_{1})+\cdots+P(X=x|Y=c_{n})P(Y=c_{n}) P(X=x)=P(X=xY=c1?)P(Y=c1?)+?+P(X=xY=cn?)P(Y=cn?)
= ∑ i = 1 n P ( X = x ∣ Y = c i ) =\sum_{i=1}^{n}P(X=x|Y=c_{i}) =i=1n?P(X=xY=ci?)

所以可以得到
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ i = 1 n P ( X = x ∣ Y = c i ) P ( Y = c k ) P(Y=c_{k}|X=x)=\frac{P(X=x|Y=c_{k})P(Y=c_{k})}{\sum_{i=1}^{n}P(X=x|Y=c_{i})P(Y=c_{k})} P(Y=ck?X=x)=i=1n?P(X=xY=ci?)P(Y=ck?)P(X=xY=ck?)P(Y=ck?)?

又由于所有情况的分母都为 ∑ i = 1 n P ( X = x ∣ Y = c i ) \sum_{i=1}^{n}P(X=x|Y=c_{i}) i=1n?P(X=xY=ci?),且由于特征数据是假设独立的,故得到最后的公式为

P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) P(Y=c_{k}|X=x)=P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k}) P(Y=ck?X=x)=P(Y=ck?)j?P(X(j)=x(j)Y=ck?)

最终得到朴素贝叶斯法分类器可以表示为
y = f ( x ) = a r g max ? c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=arg\max_{c_{k}}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k}) y=f(x)=argck?max?P(Y=ck?)j?P(X(j)=x(j)Y=ck?)

拉普拉斯平滑

在朴素贝叶斯算法中,容易出现预测的数据中,存在零概率的情况,使得整个数据的结果为0,故对其进行拉普拉斯修正,也就是拉普拉斯平滑。

例子如下:

P ( X = x i ∣ Y = c i ) = 统 计 ( X = x i ∣ Y = c i ) 统 计 ( Y = c i ) P(X=x_{i}|Y=c_{i})=\frac{统计(X=x_{i}|Y=c_{i})}{统计(Y=c_{i})} P(X=xi?Y=ci?)=(Y=ci?)(X=xi?Y=ci?)?
改为
P ( X = x i ∣ Y = c i ) = 统 计 ( X = x i ∣ Y = c i ) + λ 统 计 ( Y = c i ) + N ? λ P(X=x_{i}|Y=c_{i})=\frac{统计(X=x_{i}|Y=c_{i})+\lambda}{统计(Y=c_{i})+N*\lambda} P(X=xi?Y=ci?)=(Y=ci?)+N?λ(X=xi?Y=ci?)+λ?
其中 N N N为超参数, λ \lambda λ为数据的特征个数。

代码实现

from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB


news = fetch_20newsgroups(subset="all")
data = news['data']
label = news["target"]
x_train,x_test,y_train,y_test = train_test_split(data,label,test_size=0.3,random_state=1234)
tf = TfidfVectorizer()
x_train = tf.fit_transform(x_train)
x_test = tf.transform(x_test)
nb = MultinomialNB(alpha=1)
nb.fit(x_train,y_train)
print("模型的准确率",nb.score(x_test,y_test)) #85.03%
y_pre = nb.predict(x_test) 
print("模型的F1值为",classification_report(y_test,y_pre))

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:38:36  更:2021-07-11 16:39:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 10:14:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码