算法项目(3)—— 从零实现KNN、朴素贝叶斯垃圾邮件分类

本文包含什么?

  • 项目运行的方式
  • 项目代码,自己实现KNN算法以及朴素贝叶斯算法.
  • 代码介绍
  • 运行有问题? csdn上后台随时售后.

项目说明

本文主要是自己从0实现KNN算法以及朴素贝叶斯算法.然后使用英文垃圾邮件数据集进行垃圾邮件分类.常见的代码均调用sklearn库来实现,本文自行实现.
首先看模型指标对比:

算法准确率
KNN98.33%
贝叶斯98.00%

算法介绍

KNN

原理很简单:选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
在这里插入图片描述
对应的核心算法:

def classifyKNN(inX, dataSet, lab

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

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

相关文章

从零学习Linux操作系统第二十八部分 shell脚本中的执行流控制

一、什么是执行流、循环执行流 执行流:改变执行顺序,使之更方便操作者 循环执行流:根据脚本是执行流再某一个状态下进行循环执行,进行多次执行后再往下走(for语句) for语句 作用 为循环执行动作 for语句…

opencv判断灰化情况

目的 先说说理论: 在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分…

LeetCode LCR 055.二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

vue实现拖拽(vuedraggable)

实现效果: 左侧往右侧拖动,右侧列表可以进行拖拽排序。 安装引用: npm install vuedraggable import draggable from vuedraggable 使用: data数据: componentList: [{groupName: 考试题型,children: [{componentType: danxua…

SQLite 的使用

SQLite 是一个轻量级、自包含和无服务器的关系型数据库管理系统(RDBMS),广泛应用于嵌入式系统、移动应用程序和小中型网站。它易于创建、需要的配置较少,并且提供了用于管理和操作数据的强大功能集。本文,我们将带领你…

电路设计(26)——交通信号灯的multism仿真

1.功能要求 使用数字芯片设计一款交通信号灯,使得: 主干道的绿灯时间为60S,红灯时间为45S 次干道的红灯时间为60S,绿灯时间为45S 主、次干道,绿灯的最后5S内,黄灯闪烁 使用数码管显示各自的倒计时时间。 按…

openssl3.2 - 编译 - zlib.dll不要使用绝对路径

文章目录 openssl3.2 - 编译 - 编译时的动态库zlib.dll不要使用绝对路径概述测试zlib特性在安装好的目录中是否正常笔记70-test_tls13certcomp.t80-test_cms.t对测试环境的猜测从头再编译测试安装一次测试一下随便改变位置的openssl用到zlib时是否好使测试一下随便改变位置的op…

Docker Nginx 负载均衡搭建(服务宕机-配置高可用) - 附(Python案例,其它语言同理)

目录 一 . 概要 1. 什么是负载均衡 2. 负载均衡有哪些优势? (1)应用程序可用性 (2)应用程序可扩展性 (3)应用程序安全 (4)应用程序性能 3 . Nginx负载均衡调度策…

核密度分析

一.算法介绍 核密度估计(Kernel Density Estimation)是一种用于估计数据分布的非参数统计方法。它可以用于多种目的和应用,包括: 数据可视化:核密度估计可以用来绘制平滑的密度曲线或热力图,从而直观地表…

win系统下安装php8.3版本并配置环境变量的详细教程

本篇文章主要讲解在win系统下安装和配置php8.3版本,并配置环境变量的详细教程。 日期:2024年2月22日 作者:任聪聪 一、下载php8.3版本包 php8.3版本官方下载地址:https://windows.php.net/download#php-8.3 步骤一、打开下载地址…

【Unity】Unity与安卓交互

问题描述 Unity和安卓手机进行交互,是我们开发游戏中最常见的场景。本教程将从一个简单的例子来演示一下。 本教程需要用到Android Studio2021.1.1 1.Android Studio新建一个工程 2.选择Empty Activity 然后点击Next 3.点击Finish完成创建 4.选择File-New-New Mo…

【python 3.9.18】windowns安装版

因为这个版本官方未提供,所以需要自己编译出来,其他没有的版本可以依据下面的进行生成一个exe也可行。 成品: https://gitee.com/greatLong/python-3.9.18/tree/master/python-3.9.18/PCbuild/amd64 1、环境准备 需要使用到 这里面还需要选…

【MATLAB GUI】 5. 图像处理菜单(菜单编辑器)

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记 任务要求设计一个图像处理菜单,实现图像的打开导入、灰度处理、存储等功能 修改过文件名,所以运行的时候会有一点点报错,但是不影响运行 打开工具栏下边的菜单编辑器…

创建一个基于Node.js的实时聊天应用

在当今数字化社会,实时通讯已成为人们生活中不可或缺的一部分。无论是在社交媒体平台上与朋友交流,还是在工作场合中与同事协作,实时聊天应用都扮演着重要角色。与此同时,Node.js作为一种流行的后端技术,为开发者提供了…

CrossOver虚拟机软件2024有哪些功能?最新版本支持哪些游戏?

CrossOver由codewaver公司开发的类虚拟机软件,目的是使linux和Mac OS X操作系统和window系统兼容。CrossOver不像Parallels或VMware的模拟器,而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏,而不…

LangChain支持哔哩哔哩视频总结

是基于LangChain框架下的开发,所以最开始请先 pip install Langchain pip install bilibili-api-python 技术要点: 使用Langchain框架自带的Document loaders 修改BiliBiliLoader的源码,自带的并不支持当前b站的视频加载 源码文件修改&a…

【高德地图】Android高德地图绘制标记点Marker

📖第4章 Android高德地图绘制标记点Marker ✅绘制默认 Marker✅绘制多个Marker✅绘制自定义 Marker✅Marker点击事件✅Marker动画效果✅Marker拖拽事件✅绘制默认 Infowindow🚩隐藏InfoWindow 弹框 ✅绘制自定义 InfoWindow🚩实现 InfoWindow…

ArcgisForJS如何实现添加含图片样式的点要素?

文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …

MIT-6.824-Lab2,Raft部分笔记|Use Go

文章目录 前记Paper6:RaftLEC5、6:RaftLAB22AtaskHintlockingstructureguide设计与编码 2BtaskHint设计与编码 2CtaskHint question后记 LEC5:GO, Threads, and Raftgo threads技巧raft实验易错点debug技巧 前记 趁着研一考完期末有点点空余…

软考29-上午题-【数据结构】-排序

一、排序的基本概念 1-1、稳定性 稳定性指的是相同的数据所在的位置经过排序后是否发生变化。若是排序后,次序不变,则是稳定的。 1-2、归位 每一趟排序能确定一个元素的最终位置。 1-3、内部排序 排序记录全部存放在内存中进行排序的过程。 1-4、外部…