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

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

多项式模型:

记住一定用于离散的对象,不能是连续的
于高斯分布相反,多项式模型主要适用于离散特征的概率计算,切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 0
 0 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 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 1 1 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 2 2 2 2 2 2 2 2 2 2 2 2 2
 2 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.kler.cn/a/106360.html

相关文章:

  • Day18 Nim游戏
  • Spring 4.3 源码导读
  • 实战:一文讲透模糊匹配的三种方式的区别
  • sqli-labs靶场17-20关(每日四关)持续更新!!!
  • 容器安装gitlab
  • 一种时间戳对齐的方法(离线)
  • Pytorch公共数据集、tensorboard、DataLoader使用
  • 揭秘!新手主播如何快速出圈,看拓世法宝分分钟打造百万直播间
  • uniapp开发小程序—picker结合后台数据实现二级联动的选择
  • win10 + VS2017 编译libjpeg(jpeg-9b)--更新
  • Ansible playbook的block
  • 229. 多数元素 II
  • 【HarmonyOS】元服务卡片router实现跳转到指定页面并传动态参数
  • 【Python 千题 —— 基础篇】列表排序
  • Kafka To HBase To Hive
  • NReco.LambdaParser使用案例
  • docker、docker-compose安装教程,很详细
  • 【wvp】wvp设备上可以开启tcp被动模式
  • 人工智能和机器学习:走向智能未来的关键
  • 数字化转型系列主题:数据中台知识体系
  • vue中报 TypeError: Assignment to constant variable.
  • oracle统计信息
  • 万能鼠标设置 SteerMouse v5.6.8
  • 【高效开发工具系列】Postman
  • 交换机基础(四):MSTP负载均衡配置案例
  • 1-多媒体通信概述