当前位置: 首页 > news >正文

机器学习-朴素贝叶斯之多项式模型

多项式模型:

记住一定用于离散的对象,不能是连续的
于高斯分布相反,多项式模型主要适用于离散特征的概率计算,切sklearn的多项式模型不接受输入负值
因为多项式不接受负值的输入,所以样本数据的特征为数值型数据,必须归一化处理保证数据里没有负数
其中需要用到贝叶斯概率公式:如下
当分子出现0时候,需要用到拉普拉斯平滑系数

贝叶斯概率公式,来自Wang’s Blog的原创

模型构建与训练:

需要用到的api是:from sklearn.naive_bayes import MultinomialNB
我们还需要对文章内容进行提取需要用到的api是:from sklearn.feature_extraction.text import TfidfVectorizer
英文的可以用这种方法进行分词中文的需要自己进行分词

实验如下:

导入贝叶斯多项式模型

from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
import sklearn.datasets as datasets
data = datasets.fetch_20newsgroups(data_home='./datasets',subset='all')
feature = data['data']#初始未进行特征值化
target = data['target']
# 分别创建模型,数据统计的实例对象
nb = MultinomialNB()
tf = TfidfVectorizer()
tf_feature = tf.fit_transform(feature)# 进行了特征值化
# 进行数据集切分
x_train, x_test, y_train, y_test = train_test_split(tf_feature,target,test_size=0.1,random_state=2023)
# 将训练集放入模型中进行训练模型
nb.fit(x_train,y_train)
# 输出训练后的模型里放入测试集的准确率
print(nb.score(x_test,y_test))
print(target)
print(feature)

输出结果:
显示的没办法爬数据,我又换了一组数据

# 导入贝叶斯多项式模型
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
import sklearn.datasets as datasets
# data = datasets.fetch_20newsgroups(data_home='./datasets', subset='all')
data = datasets.load_iris()
feature = data['data']#初始未进行特征值化
target = data['target']
# 分别创建模型,数据统计的实例对象
nb = MultinomialNB()
# tf = TfidfVectorizer()
# feature = tf.fit_transform(feature)# 进行了特征值化
# 进行数据集切分
x_train, x_test, y_train, y_test = train_test_split(feature,target,test_size=0.1,random_state=2023)
# 将训练集放入模型中进行训练模型
nb.fit(x_train,y_train)print(target)
print(feature)
# 输出训练后的模型里放入测试集的准确率
print(nb.score(x_test,y_test))

此时输出结果:

	[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]
[[5.1 3.5 1.4 0.2][4.9 3.  1.4 0.2][4.7 3.2 1.3 0.2][4.6 3.1 1.5 0.2][5.  3.6 1.4 0.2][5.4 3.9 1.7 0.4][4.6 3.4 1.4 0.3][5.  3.4 1.5 0.2][4.4 2.9 1.4 0.2][4.9 3.1 1.5 0.1][5.4 3.7 1.5 0.2][4.8 3.4 1.6 0.2][4.8 3.  1.4 0.1][4.3 3.  1.1 0.1][5.8 4.  1.2 0.2][5.7 4.4 1.5 0.4][5.4 3.9 1.3 0.4][5.1 3.5 1.4 0.3][5.7 3.8 1.7 0.3][5.1 3.8 1.5 0.3][5.4 3.4 1.7 0.2][5.1 3.7 1.5 0.4][4.6 3.6 1.  0.2][5.1 3.3 1.7 0.5][4.8 3.4 1.9 0.2][5.  3.  1.6 0.2][5.  3.4 1.6 0.4][5.2 3.5 1.5 0.2][5.2 3.4 1.4 0.2][4.7 3.2 1.6 0.2][4.8 3.1 1.6 0.2][5.4 3.4 1.5 0.4][5.2 4.1 1.5 0.1][5.5 4.2 1.4 0.2][4.9 3.1 1.5 0.2][5.  3.2 1.2 0.2][5.5 3.5 1.3 0.2][4.9 3.6 1.4 0.1][4.4 3.  1.3 0.2][5.1 3.4 1.5 0.2][5.  3.5 1.3 0.3][4.5 2.3 1.3 0.3][4.4 3.2 1.3 0.2][5.  3.5 1.6 0.6][5.1 3.8 1.9 0.4][4.8 3.  1.4 0.3][5.1 3.8 1.6 0.2][4.6 3.2 1.4 0.2][5.3 3.7 1.5 0.2][5.  3.3 1.4 0.2][7.  3.2 4.7 1.4][6.4 3.2 4.5 1.5][6.9 3.1 4.9 1.5][5.5 2.3 4.  1.3][6.5 2.8 4.6 1.5][5.7 2.8 4.5 1.3][6.3 3.3 4.7 1.6][4.9 2.4 3.3 1. ][6.6 2.9 4.6 1.3][5.2 2.7 3.9 1.4][5.  2.  3.5 1. ][5.9 3.  4.2 1.5][6.  2.2 4.  1. ][6.1 2.9 4.7 1.4][5.6 2.9 3.6 1.3][6.7 3.1 4.4 1.4][5.6 3.  4.5 1.5][5.8 2.7 4.1 1. ][6.2 2.2 4.5 1.5][5.6 2.5 3.9 1.1][5.9 3.2 4.8 1.8][6.1 2.8 4.  1.3][6.3 2.5 4.9 1.5][6.1 2.8 4.7 1.2][6.4 2.9 4.3 1.3][6.6 3.  4.4 1.4][6.8 2.8 4.8 1.4][6.7 3.  5.  1.7][6.  2.9 4.5 1.5][5.7 2.6 3.5 1. ][5.5 2.4 3.8 1.1][5.5 2.4 3.7 1. ][5.8 2.7 3.9 1.2][6.  2.7 5.1 1.6][5.4 3.  4.5 1.5][6.  3.4 4.5 1.6][6.7 3.1 4.7 1.5][6.3 2.3 4.4 1.3][5.6 3.  4.1 1.3][5.5 2.5 4.  1.3][5.5 2.6 4.4 1.2][6.1 3.  4.6 1.4][5.8 2.6 4.  1.2][5.  2.3 3.3 1. ][5.6 2.7 4.2 1.3][5.7 3.  4.2 1.2][5.7 2.9 4.2 1.3][6.2 2.9 4.3 1.3][5.1 2.5 3.  1.1][5.7 2.8 4.1 1.3][6.3 3.3 6.  2.5][5.8 2.7 5.1 1.9][7.1 3.  5.9 2.1][6.3 2.9 5.6 1.8][6.5 3.  5.8 2.2][7.6 3.  6.6 2.1][4.9 2.5 4.5 1.7][7.3 2.9 6.3 1.8][6.7 2.5 5.8 1.8][7.2 3.6 6.1 2.5][6.5 3.2 5.1 2. ][6.4 2.7 5.3 1.9][6.8 3.  5.5 2.1][5.7 2.5 5.  2. ][5.8 2.8 5.1 2.4][6.4 3.2 5.3 2.3][6.5 3.  5.5 1.8][7.7 3.8 6.7 2.2][7.7 2.6 6.9 2.3][6.  2.2 5.  1.5][6.9 3.2 5.7 2.3][5.6 2.8 4.9 2. ][7.7 2.8 6.7 2. ][6.3 2.7 4.9 1.8][6.7 3.3 5.7 2.1][7.2 3.2 6.  1.8][6.2 2.8 4.8 1.8][6.1 3.  4.9 1.8][6.4 2.8 5.6 2.1][7.2 3.  5.8 1.6][7.4 2.8 6.1 1.9][7.9 3.8 6.4 2. ][6.4 2.8 5.6 2.2][6.3 2.8 5.1 1.5][6.1 2.6 5.6 1.4][7.7 3.  6.1 2.3][6.3 3.4 5.6 2.4][6.4 3.1 5.5 1.8][6.  3.  4.8 1.8][6.9 3.1 5.4 2.1][6.7 3.1 5.6 2.4][6.9 3.1 5.1 2.3][5.8 2.7 5.1 1.9][6.8 3.2 5.9 2.3][6.7 3.3 5.7 2.5][6.7 3.  5.2 2.3][6.3 2.5 5.  1.9][6.5 3.  5.2 2. ][6.2 3.4 5.4 2.3][5.9 3.  5.1 1.8]]
0.9333333333333333

输出的效果还挺不错

http://www.lryc.cn/news/211831.html

相关文章:

  • 下载的nginx证书转换成tomcat证书格式
  • 计算机毕业设计选题推荐-社区志愿者服务微信小程序/安卓APP-项目实战
  • ES6中数值扩展
  • sql-50练习题11-15
  • 【多线程面试题十九】、 公平锁与非公平锁是怎么实现的?
  • 3.4每日一题(变量可分离方程通解)
  • LabVIEW背景颜色设为和其他程序或图像中一样
  • 图表参考线,数据对比一目了然_三叠云
  • 【深度学习】Transformer、GPT、BERT、Seq2Seq什么区别?
  • 数据结构与算法之LRU: 实现 LRU 缓存算法功能 (Javascript版)
  • Matlab | 基于二次谱提取地震数据的地震子波
  • 利用远程IO模块,轻松驾驭食品包装生产的自动化
  • 华为OD机考算法题:计算最大乘积
  • 用友 GRP-U8 存在sql注入漏洞复现
  • vue页面el-tab控件标签栏加入按钮功能
  • vue3使用ref和reactive
  • 7 款用于解锁iPhone密码的苹果解锁软件
  • .jnlp
  • Linux启动之uboot分析
  • element -plus table的二次封装
  • windows应用软件扫描报告 不告谱 要钱
  • 世界前沿技术发展报告2023《世界航空技术发展报告》(七)机载系统与武器技术
  • JAVA 学习笔记——抽象类
  • 磁盘调度算法之先来先服务(FCFS),最短寻找时间优先(SSTF),扫描算法(SCAN,电梯算法),LOOK调度算法
  • postman接口测试—Restful接口开发与测试
  • RK3568-emmc控制器
  • 02-操作符及类型转换与控制流程语句
  • 判断一个字符串中是否包含中文字符
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?
  • 莫名其妙el-table不显示问题