四、分类算法 - 朴素贝叶斯算法

目录

1、朴素贝叶斯算法

1.1 案例

1.2 联合概率、条件概率、相互独立

1.3 贝叶斯公式

1.4 朴素贝叶斯算法原理

1.5 应用场景

2、朴素贝叶斯算法对文本进行分类

2.1 案例

2.2 拉普拉斯平滑系数

3、API

4、案例:20类新闻分类

4.1 步骤分析

4.2 代码分析

5、总结


  1. sklearn转换器和估算器
  2. KNN算法
  3. 模型选择和调优
  4. 朴素贝叶斯算法
  5. 决策树
  6. 随机森林

1、朴素贝叶斯算法

朴素?

假设:特征与特征之间是相互独立的

1.1 案例

1.2 联合概率、条件概率、相互独立

1.3 贝叶斯公式

1.4 朴素贝叶斯算法原理

朴素 + 贝叶斯

1.5 应用场景

  • 文本分类(单词作为特征)

2、朴素贝叶斯算法对文本进行分类

2.1 案例

2.2 拉普拉斯平滑系数

3、API

4、案例:20类新闻分类

4.1 步骤分析

  • 获取数据
  • 划分数据集
  • 特征工程  --文本特征抽取
  • 朴素贝叶斯预估器流程
  • 模型评估

4.2 代码分析

from sklearn.datasets import load_iris, fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.naive_bayes import MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScalerdef knn_iris():# 用KNN 算法对鸢尾花进行分类# 1、获取数据iris = load_iris()# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)# 3、特征工程 - 标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、KNN 算法预估器estimator = KNeighborsClassifier(n_neighbors=3)estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n",y_predict)print("直接比对真实值和预测值:\n",y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test,y_test)print("准确率为:\n",score)return Nonedef knn_iris_gscv():# 用KNN 算法对鸢尾花进行分类,添加网格搜索和交叉验证# 1、获取数据iris = load_iris()# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)# 3、特征工程 - 标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、KNN 算法预估器estimator = KNeighborsClassifier()# 加入网格搜索和交叉验证# 参数准备param_dict = {"n_neighbors":[1,3,5,7,9,11]}estimator = GridSearchCV(estimator,param_grid=param_dict,cv=10)estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n",y_predict)print("直接比对真实值和预测值:\n",y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test,y_test)print("准确率为:\n",score)# 最佳参数:best_params_print("最佳参数:\n",estimator.best_params_)# 最佳结果:best_score_print("最佳结果:\n",estimator.best_score_)# 最佳估计值:best_estimator_print("最佳估计值:\n",estimator.best_estimator_)# 交叉验证结果:cv_results_print("交叉验证结果:\n",estimator.cv_results_)return Nonedef nb_news():# 用朴素贝叶斯算法对新闻进行分类# 1、获取数据news = fetch_20newsgroups(subset="all")# 2、划分数据集x_train,x_test,y_train,y_test = train_test_split(news.data,news.target)# 3、特征工程:文本特征抽取-tfidftransfer = TfidfVectorizer()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 4、用朴素贝叶斯算法预估器流程estimator = MultinomialNB()estimator.fit(x_train,y_train)# 5、模型评估# 方法1 :直接比对真实值和预测值y_predict = estimator.predict(x_test)print("y_predict:\n", y_predict)print("直接比对真实值和预测值:\n", y_test == y_predict)# 方法2:计算准确率score = estimator.score(x_test, y_test)print("准确率为:\n", score)return Noneif __name__ == "__main__":# 代码1 :用KNN算法对鸢尾花进行分类# knn_iris()# 代码2 :用KNN算法对鸢尾花进行分类,添加网格搜索和交叉验证# knn_iris_gscv()# 代码3:用朴素贝叶斯算法对新闻进行分类nb_news()

5、总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda下tensorflow安装

conda create -n tf21 python3.7 conda activate tf21 conda install tensorflow-gpu2.1验证 import tensorflow as tf tf.test.is_built_with_cuda()

# 二进制+Html

二进制是一种数制,也称为基数为2的数制。在二进制系统中,数值使用0和1这两个数字来表示。每一位二进制数字称为一个比特(bit),是计算机中最基本的信息单位。多个比特组合在一起可以表示更大的数值或数据。 在计算机科…

职业技能鉴定服务中心前端静态页面(官网+证书查询)

有个朋友想做职业技能培训,会发证书,证书可以在自己网站可查。想做一个这样的网站,而且要特别土,一眼看上去像xxx官方网站,像jsp .net技术开发的网站。用htmlcssjquery还原了这样子一个前端页面,这里分享给…

如何使用 GitHub Action 在 Android 中构建 CI-CD

如何使用 GitHub Action 在 Android 中构建 CI-CD 一、什么是 CI/CD?二、什么是 CI:持续集成?三、什么是CD:持续部署?3.1 持续交付3.2 持续部署 四、使用 GitHub 操作在 Android 中构建 CI-CD 管道4.1 步骤 五、什么是…

JAVA工程师面试专题-并发编程篇

目录 一、线程 1、并发与并行的区别 2、同步和异步的区别 3、Java中创建线程有哪些方式? 4、Thread和Runnable的区别 5、Java中的Runnable、Callable、Future、FutureTask的区别和联系? 6、说一下你对 CompletableFuture 的理解 7、volatile关键字有什么用&…

SQL Server查询计划(Query Plan)——XML查询计划

​​​​​​6.4.3. XML查询计划 SQL Server中,除了通过GUI工具和相关命令获取图形及文本查询计划外,我们还可以通过相关命令获取XML格式的查询计划,这里惯称其为XML查询计划。 SQL Server 2005版本引入了XML查询计划的新特性,其充分吸收了图形及文本查询计划的优势所在,…

c sharp资料

资料 c#菜鸟教程 Xml XmlNode 类 XPath或运算

electron学习和新建窗口

首先我们要先下载electron npm install --save-dev electron 建立入口文件main.js 新建一个入口文件 main.js,然后导入eletron新建一个窗口。 const { app, BrowserWindow, ipcMain } require("electron"); const path require("path");func…

215数组中的第K个最大元素

215数组中的第K个最大元素 题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。…

centos或者 ubuntu 查找当前目录所有文件包含指定值的文件地址

出现环境是我的nginx缓存 缓存了一个css 但是这个css不是最新的了 所以直接在缓存的目录下执行 find /data -type f -exec grep -l "被缓存文件的内容" {} 找到以后直接vi 查看一下 如果内容没问题的话 直接 rm -rf 删除了就可以了

Async注解详解-Async的作用以及原理

文章目录 起因Async作用原理EnableAsyncAsyncAnnotationBeanPostProcessor 起因 作为一个菜鸟,总是会遇到各种匪夷所思的bug。今天,不出意外的话今天我又遇到了意外…bug… 我在调用同事的一个方法时,莫名奇妙的报了空指针,当前…

压缩感知的图像仿真(MATLAB源代码)

压缩感知是一种用于高效获取和表示信号的技术,它可以显著减少数据的采样和传输量,同时保持对信号的高质量恢复能力。在压缩感知中,信号被表示为其在一个稀疏基中的稀疏线性组合。通过仅使用少量的随机投影测量,就能够捕捉信号的大…

报表控件Stimulsoft 新版本2024.1中,功能区工具栏新功能

今天,我们将讨论Stimulsoft Reports、Dashboards 和 Forms 2024.1版本中的一项重要创新 - 在一行中使用功能区工具栏的能力。 Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于创建报表和仪表板的通用工具集。该产品包括用于WinF…

Elasticsearch Update By Query详解

1. 使用场景 一般在以下几种情况时,我们需要重建索引: 索引的 Mappings 发生变更:字段类型更改,分词器及字典更新 索引的 Setting 发生变更:索引的主分片数发生改变 集群内,集群间需要做数据迁移 Elastiic…

【移动安全】MobSF联动安卓模拟器配置动态分析教程

原文链接 MobSF联动安卓模拟器配置动态分析教程 实现方式 Windows开启安卓模拟器并进行相关配置作为调试客户端,Linux使用docker开启MobSF作为服务端。 好处:干净,部署简单,不用安装乱七八糟的环境,防止破坏其他应…

MySQL高级特性篇(6)-数据库设计模式与范式

数据库是现代软件开发中非常重要的一环,而MySQL作为一种常用的关系型数据库管理系统,在数据库设计方面也有一些常见的模式和范式。本博客将介绍MySQL数据库设计模式与范式,让读者对MySQL数据库的设计有一个全面的了解。 一、数据库设计模式 …

STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数 简介系统定时器寄存器STK_CTRLSTK_LOADSTK_VALSTK_CALIB STM32F10X(Cortex-M3)精准延时函数 简介 在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外,还有一个系统定时器(SysTick) 拿STM32F103C8T6来说…

ES6 | (一)ES6 新特性(上) | 尚硅谷Web前端ES6教程

文章目录 📚ES6新特性📚let关键字📚const关键字📚变量的解构赋值📚模板字符串📚简化对象写法📚箭头函数📚函数参数默认值设定📚rest参数📚spread扩展运算符&a…

Nacos2.2.3适配达梦数据库编译打包完整教程

Nacos2.2.3适配达梦数据库编译打包运行完整教程 一、Nacos数据持久化方式 Nacos 支持两种数据持久化方式,一种是利用内置的数据库,另一种是利用外置的数据源

RESTful API的设计原则和实现方式

一、引言 RESTful API 是一种基于 REST(Representational State Transfer)架构风格设计的 API。它具有一组设计原则和约束条件,以提供简单、灵活、可扩展、易于理解和使用的 Web 服务。下面详细介绍 RESTful API 的设计原则和实现方式&#…