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

基于支持向量机的垃圾邮件分类,使用SVM+flask+vue

sms-classify

基于支持向量机的垃圾邮件分类,使用SVM+flask+vue
数据集和源码地址
sms_classify

数据集 SMS Spam Collection Data Set 来源于 UCI。样例被分为非垃圾邮件(86.6%)和垃圾邮件(13.4%),数据格式如下:

ham Go until jurong point, crazy.. Available only in bugis n great world la e buffet... 
ham	Ok lar... Joking wif u oni...
spam	Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. 
ham	U dun say so early hor... U c already then say...

代码结构

- client: 前端实现
- server: 后端实现- models: svm model- sms_classify.py: 垃圾邮件分类实现- SMSSpamCollection: 数据集- app.py 系统实现
- svm.py: 支持向量机算法实现
- svm_test.py:算法test

性能评估

综合比较了垃圾邮件分类任务在支持向量机、朴素贝叶斯、最近邻、决策树算法下的性能,
评估指标包括accuracy、precision、recall、f1-score等。

从accuracy来看,支持向量机的accuracy为98%,是所有测试算法中最高的,可以看出
垃圾邮件分类任务适合使用支持向量机来做。

各算法表现具体如下表:

  • 支持向量机:
             precision    recall  f1-score   support0       0.98      1.00      0.99       4821       1.00      0.86      0.92        76accuracy                           0.98       558macro avg       0.99      0.93      0.96       558
weighted avg       0.98      0.98      0.98       558

支持向量机的accuracy有 98.029%。

  • 贝叶斯算法:
         precision    recall  f1-score   support0       0.94      1.00      0.97       4821       1.00      0.62      0.76        76accuracy                           0.95       558macro avg       0.97      0.81      0.87       558
weighted avg       0.95      0.95      0.94       558

贝叶斯算法的accuracy只有 94.803%。

  • 最近邻算法:
     precision    recall  f1-score   support0       0.97      0.99      0.98       4821       0.93      0.83      0.88        76accuracy                           0.97       558macro avg       0.95      0.91      0.93       558
weighted avg       0.97      0.97      0.97       558

最近邻算法的accuracy为 96.774%。

  • 决策树算法:
       precision    recall  f1-score   support0       0.97      0.98      0.98       4821       0.88      0.79      0.83        76accuracy                           0.96       558macro avg       0.92      0.89      0.90       558
weighted avg       0.96      0.96      0.96       558

决策树算法的accuracy为 95.699%。

如何运行

首先安装必要的包

# 创建虚拟环境
python -m venv env
# 激活虚拟环境
source env/bin/activate
# 安装依赖包
pip install -r requirements.txt

运行SVM算法实现

# 确保安装 matplotlib 和 numpy
python3 svm_test.py

运行垃圾邮件分类

~ cd server/models/
~ python3 sms_classify.py 

运行垃圾邮件分类系统

server端
# 确保安装必要的包
# 启动flask
python app.py
client端
# 确保安装node & npm
npm install
npm run server

相关文章:

基于支持向量机的垃圾邮件分类,使用SVM+flask+vue

sms-classify 基于支持向量机的垃圾邮件分类,使用SVMflaskvue 数据集和源码地址 数据集 SMS Spam Collection Data Set 来源于 UCI。样例被分为非垃圾邮件(86.6%)和垃圾邮件(13.4%),数据格式如下&#xff…...

目标检测数据集 - 零售食品LOGO检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:零售食品 LOGO 检测数据集,真实零售食品 LOGO 高质量商品图片数据,数据集含常见零售食品 LOGO 图片,包括饮料类、酒类、调味品类、膨化饼干类、巧克力类、常见零食类等等。数据集类别丰富,标注标签包含 150…...

47.PyCharm P版突然无法启动

目录 1.启动cmd.exe,进到pycharm\bin目录,启动.\pycharm.bat,如果正常,就像下面这个样子,如果不正常,则会报错, 2.用记事本打开pycharm.bat文件,加上以下代码后 今晨,无…...

「动态规划」如何求粉刷房子的最少花费?

LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子,共n个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市…...

代码随想录算法训练营DAY41|背包问题 二维 、背包问题 一维、416. 分割等和子集

背包问题 二维 题目链接:背包问题 二维 def bag_weight_problem(n,space,weight,value):dp [[0 for i in range(space1)]for j in range(n)]for i in range(weight[0], space1):dp[0][i]value[0]for j in range(1, n):for k in range(space1):if weight[j]>k:…...

gitlab2024最新版安装

系统:redhat9.0 gitlab版本:gitlab-ce-16.10.7-ce.0.el9.x86_64.rpm 安装组件&包依赖:https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/9/gitlab-ce-16.10.7-ce.0.el9.x86_64.rpm 参考: 前提: 下载gitl…...

2022C语言二级真题

目录 数组逆序重放 题目描述 样例 最长最短单词 题目描述 样例 统计误差范围内的数 题目描述 样例 有趣的跳跃 题目描述 样例 数字放大 题目描述 样例 内部元素之和 题目描述 样例 满足条件的数的累加 题目描述 样例 偶数降序输出 题目描述 样例 字符统…...

智慧购房:链家网上海在售楼盘数据解析与模型构建

1.项目背景 随着中国经济的快速发展,上海作为国际化大都市,其房地产市场一直备受关注,购房者在面对庞大且复杂的楼盘信息时,往往感到困惑和不知所措,为了帮助购房者更好地了解市场行情,做出明智的购房决策,本项目选择了链家网上海市在售楼盘数据,进行了全面的数据分析…...

二进制数转字符串

题目链接 二进制数转字符串 题目描述 注意点 32位包括输出中的 “0.” 这两位题目保证输入用例的小数位数最多只有 6 位 解答思路 将小数转为二进制的思路是将小数乘2,如果整数部分为1,则说明第i位是1(第i位则乘了2的几次方)…...

WINDOWS系统jdk和maven明明安装了cmd里却无法使用相关命令

今天当了回s b 新电脑jdk和maven装是装了,系统变量也配置了,但没配置完,javahome和mavenhome没配置,结果cmdjdk和maven版本都查不到,我真s b啊 配置 JAVA_HOME 环境变量: 右键点击“此电脑”或者“我的电…...

基于EasyAnimate模型的视频生成最佳实践

EasyAnimate是阿里云PAI平台自主研发的DiT的视频生成框架,它提供了完整的高清长视频生成解决方案,包括视频数据预处理、VAE训练、DiT训练、模型推理和模型评测等。本文为您介绍如何在PAI平台集成EasyAnimate并一键完成模型推理、微调及部署的实践流程。 …...

linux最大线程数限制及打开最大文件数

1.root用户下执行 ulimit -a 然后查看 max user processes 这个值通常是系统最大线程数的一半 max user processes:当前用户同时打开的进程(包括线程)的最大个数为 2.普通用户下 ulimit -a 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.co…...

MyBatis系列七: 一级缓存,二级缓存,EnCache缓存

缓存-提高检索效率的利器 官方文档 一级缓存基本介绍快速入门Debug一级缓存执行流程一级缓存失效分析 二级缓存基本介绍快速入门Debug二级缓存执行流程注意事项和使用细节 mybatis的一级缓存和二级缓存执行顺序小实验细节说明 EnCache缓存基本介绍配置和使用EhCache细节说明 My…...

C++迈向精通:函数指针对象与函数对象

C:指针对象 C语言中的函数指针 在C语言中,我们见过如下的函数指针: int add(int a, int b) {return a b; }int main() {int a, b;int (*p)(int, int) add;scanf("%d%d", &a, &b);p(a, b);return 0; } 为了适应C中面向…...

类和对象知识点

面向对象概念回顾 万物皆对象 用程序来抽象(形容)对象 用面向对象的思想来编程 什么是类 基本概念 具有相同特征,具有相同行为,一类事物的抽象。 类是对象的模板,可以通过类创建出对象,类的关键词—…...

【FAS】《Survey on face anti-spoofing in face recognition》

文章目录 原文基于手工设计特征表达的人脸活体检测方法基于深度学习的人脸活体检测方法基于融合策略的人脸活体检测方法人脸检测活体数据库点评 原文 邓雄,王洪春,赵立军等.人脸识别活体检测研究方法综述[J].计算机应用研究,2020,37(09):2579-2585.DOI:10.19734/j.issn.1001-3…...

【Unity】RPG2D龙城纷争(一)搭建项目、导入框架、前期开发准备

更新日期:2024年6月12日。 项目源码:后续章节发布 免责声明:【RPG2D龙城纷争】使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何商业用途。 索引 【系列简介】…...

多目标跟踪中检测器和跟踪器如何协同工作的

多目标跟踪中检测器和跟踪器如何协同工作的 flyfish 主要是两者 接口间的交互 假设 原始图像尺寸:1920(宽)x 1080(高) 模型输入尺寸:640(宽)x 640(高) 检…...

kali系统几个开机启动项的区别

1、Live system (amd64) 简单的模式 ,启动系统,直接进入 Kali,在系统中的所有的操作和设置都会在下次重启时失效。 Kali 中保存/编辑的所有东西都会重启丢失。 2、Live system (amd64 fail-safe mode) 这种模式与 Live (amd64) 类似&#xf…...

【自撰写】【国际象棋入门】第5课 常见开局战术组合(一)

第5课 常见开局战术组合(一) 本次课中,我们简要介绍几种常见的开局战术组合。开局当中,理想的情况是,己方的两只(或以上)轻子相互配合,或者与己方的兵配合,在完成布局的…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...