基于支持向量機的垃圾郵件分類,使用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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35119.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35119.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35119.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡爬蟲中Xpath的使用方法

正則表達式雖然可以處理包含了諸如 HTML 或 XML 內容的字符串,但只能根據文本的 特征匹配字符串,而忽略字符串所包含的內容的真實格式。為了解決這個問題,Python 引入 XPath 以及支持 XPath 的第三方庫 lxml,專門對 XML 或 HTML 格…

git 合并master到分支

master分支的代碼領先自己的分支,git 如何把master分支代碼合并到自己的分支 1.首先切換到主分支 git checkout master 2.使用git pull 把領先的主分支代碼pull下來 git pull 3.切換到自己的分支 git checkout xxx(自己的分支) 4.把主分支的代碼merge到自己的分支 git merge ma…

minio+tusd+uppy搭建文件上傳服務

1、docker部署minio、tusd服務 1.1 新建docker-compose.yml minio API: http://ip:9100 minio控制臺: http://ip:9101 tus API: http://ip:9102/files/ tus webhooh: http:172.0.0.1:3000/files/webhooh(用戶鑒權API) version: 3.7services:minio:image: minio/minio:RELEAS…

亞馬遜運營專詞(一)

許多新入駐亞馬遜的大陸賣家,對亞馬遜的專業詞匯還不太了解,導致在運營店鋪的過程出現一些問題,今天就來講解一下亞馬遜常用的運營專詞,方便新手賣家深入了解。 1. Listing:亞馬遜listing指的是產品的詳情頁面&#xf…

通過BLE實現類似UART的串行通信:NUS服務 vs GATT服務

在物聯網和智能設備的發展中,藍牙低功耗(Bluetooth Low Energy, BLE)技術已經成為無線數據傳輸的重要手段。本文將介紹通過BLE實現類似UART的串行通信,并對比NUS服務和GATT服務的使用場景,幫助開發者更好地選擇適合的技…

2024越南醫藥、制藥機械展

2024年越南國際醫藥,制藥裝備及技術展覽會 時間: 2024年11月21--23日 地點:越南胡志明市-西貢會展中心SECC 2024年越南國際醫藥,制藥裝備及技術展覽會將于2024年11月21-23日在越南胡志明市盛大舉行!展覽會以國際化、專…

【Feature Pyramid Networks for Object Detection】

Feature Pyramid Networks for Object Detection 摘要引言2 相關工作3 FPN4 應用摘要 特征金字塔是識別系統中用于檢測不同尺度對象的基本組件。但是,最近的深度學習對象檢測器已經避免了金字塔表示,部分原因是它們在計算和內存方面都很密集。在這篇論文中,我們利用深度卷積…

LeetCode經典題之876、143 題解及延伸

系列目錄 88.合并兩個有序數組 52.螺旋數組 567.字符串的排列 643.子數組最大平均數 150.逆波蘭表達式 61.旋轉鏈表 160.相交鏈表 83.刪除排序鏈表中的重復元素 389.找不同 1491.去掉最低工資和最高工資后的工資平均值 896.單調序列 206.反轉鏈表 92.反轉鏈表II 141.環形鏈表 …

paddleocr查看標注好的數據錯誤信息

字符計數 import os import json from collections import Counter# 按字符計數 label_dir"/Users/thy/Downloads/chinese20240613" zi_ls[] with open(os.path.join(label_dir,"Label.txt")) as f:linesf.readlines()for line in lines:line line.strip…

Java面試題:聚簇索引和非聚簇索引

聚簇索引和非聚簇索引 聚簇索引(聚集索引) 將數據的存儲和索引放在一塊,索引結構的葉子節點保存了行數據 索引字段必須存在,且只能存在一個 非聚集索引(二級索引) 將數據和索引分開存儲,索引結構的葉子節點關聯的是對應的主鍵 索引字段可以存在多個 索引的選取規則 如果…

【學習】常用的分類網絡

1. LeNet 提出時間:1998年最新版本:原始版本使用的數據集格式:MNIST(28x28灰度圖像)優點: 結構簡單,易于理解和實現。對于小規模圖像數據集(如MNIST)有很好的表現。缺點…

豆瓣高分項目管理書籍推薦

📬豆瓣網站上有很多項目管理領域的書籍獲得了較高的評分,以下是一些高分項目管理書籍的精選列表,發出來跟大家分享一下: 《項目管理知識體系指南(PMBOK指南)》 【內容簡介】這本書是美國項目管理協會&…

opencv檢測圖片上七種顏色,分辨顏色和對應位置

opencv檢測圖片上七種顏色,分辨顏色和對應位置 讀取圖片:使用cv2.imread()函數讀取目標圖片。 轉換顏色空間:通常在HSV顏色空間中進行顏色檢測,因為HSV顏色空間更適合描述顏色的屬性。 定義顏色范圍:為七種顏色定義…

RabbitMQ 修改默認密碼

RabbitMQ的一些常用命令 #啟動rabbitmq service rabbitmq-server start# 查看rabbitMQ的運行狀態 service rabbitmq-server status# 開啟rabbitMQ的后臺管理插件 rabbitmq-plugins enable rabbitmq_management # 重啟RabbitMQ服務 service rabbitmq-server restart RabbitMQ的…

AcWing 797:差分 ← 一維差分模板題

【題目來源】https://www.acwing.com/problem/content/799/【題目描述】 輸入一個長度為 n 的整數序列。 接下來輸入 m 個操作,每個操作包含三個整數 l,r,c,表示將序列中 [l,r] 之間的每個數加上 c。 請你輸出進行完所有操作后的序列。【輸入格式】 第一…

富格林:正規操作實現穩健出金

富格林認為,當下的金融市場,投資者進行理財都會特別關注盈利效率高的產品,而近年來興起的現貨黃金,其高效的盈利效率吸引著大批朋友關注。不過,要想在這盈利出金,就得學習掌握正規的交易策略。下面富格林將…

onnx模型修改:去掉Dropout層

文章目錄 嘗試1:強行設置dropout層train mode為False嘗試2:找到onnx模型中的dropout, train mode設置為False嘗試3:直接刪除dropout層,連接其輸入輸出結語 最近訓練模型使用了tinyvit,性能挺強的: 但是導出…

超細毛搭配超寬設計,一款更呵護牙齦的牙刷

牙齦敏感的時候,刷牙特別難受,最近試了試惠百施(EBISU)65孔寬頭軟毛牙刷,感覺它的口腔護理體驗很不錯。這款牙刷的設計獨特,采用寬頭設計,一次就能刷兩排牙齒,極大地提高了清潔效率。…

RS232自由轉Profinet協議網關模塊連接1200PLC與掃碼槍通訊及手動清零案例

一、RS232和Profinet這兩種通訊接口的特點和應用場景: RS232是一種串行通訊接口標準,常用于連接計算機和外部設備,傳輸速率較低但穩定可靠。Profinet則是一種工業以太網通訊協議,具有高速、實時性強的特點,適用于工業…

C/C++語言通過動態鏈表實現按需內存分配和使用(Linux Ubuntu 24.04環境)

我認為比較理想的內存使用方式應該實現這幾個特性: 1. 分配一塊能滿足大多數情況下需求的內存,比如80%的情況下都不需要再次分配內存。 2. 對另外20%需要較多內存的情況,可以通過動態鏈表按需追加新的內存塊。 3. 要對總共消耗的內存有一個…