Python实现支持向量机SVM分类模型(SVC算法)并应用网格搜索算法调优项目实战

news/2024/5/3 0:51:55/文章来源:https://blog.csdn.net/weixin_42163563/article/details/126913857

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

 

1.项目背景

目前各大新闻网站很多,网站上的消息也是各式各样,本项目通过建立支持向量机分类模型进行新闻文本分类。

本项目使用SVC算法来解决分类问题。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

新闻文本数据包含四类新闻,分别用0,1,2,3 表示;数据集包含训练集和测试集。

数据详情如下(部分展示):

 

 

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

关键代码:

 

3.2 统计每种新闻类型的数量

使用Pandas工具的grougby()方法统计每种新闻类型的数量:

 

从图中可以看到,类别为0的有987条数据,类别为1的有1436条数据,类别为2的有790条数据,类别为3的有263条数据。

4.探索性数据分析

4.1 词频柱状图

 

从图中可以看到,出现此频率最多的是:评论、中国、足球、体育等词。

4.2 词云图

 

 

通过上图可以看到,分词出现频率比较高是评论、皮肤、女性、中国、新浪、腾讯等,其中一些分词可以根据具体业务需要放入停用词中。

5.特征工程

5.1 文本向量化

上图中,括号内的代表文本行和分词索引,后面的代表词频逆文档频率。

关键代码:

5.2 构建特征和标签与数据集拆分

关键代码如下:

6.构建支持向量机分类模型

主要使用SVC算法,用于目标分类。

6.1 默认参数模型构建

 

从上图可以看到,支持向量机分类模型的准确率为0.9118,,F1分值为0.9024,默认参数构建的模型效果不错。

关键代码:

6.2 模型调优:应用网格搜索寻找最优参数值

使用网格搜索算法来寻找最优的参数值:

 

从上图可以看到,C参数最优值为10,gamma参数最优值为0.1。

关键参数代码:

6.3 最优参数建模

 

7.模型评估

7.1评估指标及结果

评估指标主要包括准确率、查准率、召回率、F1分值等等。

从上表可以看出,SVM分类模型比较优秀,效果非常好。

7.2 查看是否过拟合

查看训练集和测试集的分数:

 

通过结果可以看到,训练集分数和测试集分数基本一致,说明未过拟合。

关键代码:

7.3 混淆矩阵

SVM分类模型混淆矩阵:

从上图可以看到,实际值为0预测不为0的有5个;实际值为1预测不为1的有5个;实际值为2预测不为2的有6个;实际值为3预测不为3的有0个;这些是预测错误的,和总的测试集样本相比,错误预测还是相比对少的,在可接受的范围内。

7.4 分类报告

SVM分类模型分类报告:

从上图可以看到,分类类型为0的F1分值为0.80;分类类型为1的F1分值为0.94;分类类型为2的F1分值为0.90;分类类型为3的F1分值为0.77;整个模型的准确率为0.91。

8.结论与展望

综上所述,本项目采用了SVM分类模型,最终证明了我们提出的模型效果良好。

本次机器学习项目实战所需的资料,项目资源如下:

项目说明:
链接:https://pan.baidu.com/s/1dW3S1a6KGdUHK90W-lmA4w 
提取码:bcbp

网盘如果失效,可以添加博主微信:zy10178083

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

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

相关文章

项目采购管理过程

项目采购管理过程围绕合同进行,采购管理过程所涉及的各种活动构成了合同生命周期。通过对合同生命周期进行积极管理,并仔细斟酌合同条款和条件的措词,就可以回避或减轻某些可识别的项目风险,或将它们转移给对方。签订产品或服务合…

Python使用MINIMAX实现自动吃豆人

使用MINIMAX实现自动吃豆人 一、实现 MINIMAX 说白了这题就是要实现 MINIMAX,算法的伪代码如下(借用 PPT 的内容): 图 1 算法伪代码流程 算法的核心在于 MIN 和 MAX 的套娃调用,以及判断退出的条件,这也是我自己在实现的时候遇到…

nodejs+vue+elementui人才信息招聘网python java

注册登录 系统管理员模块:用户的管理、公司管理(审核)、职位管理(审核),简历的管理(审核)、修改密码。 企业管理模块:公司信息、发布招聘、修改密码、搜索简历.收藏简历,. 审核 个人申请的位置,邀请面试 个人管理模块:修改密码 我的简历、搜索…

Opencv项目——信用卡数字识别Python代码实现

一、模板图像处理 (1)灰度图、二值图转化 template cv2.imread(C:/Users/bwy/Desktop/number.png) template_gray cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) cv_show(template_gray, template_gray)# 形成二值图像,因为要做轮廓检测 r…

doris环境部署(小白上手+部署适用)

重要:doris不支持单机部署,至少三副本 集群部署策略: 节点1配置FE(Leader):192.168.30.37节点2配置 BE:192.168.30.40节点4配置BE:192.168.30.41节点3配置BE:192.168.30.42 环境部署开始 1、需要安装 Java 运行环境(JDK最低版本要求是8),要检查你所安装的 Java 版本安…

机器学习入门一

应用领域监督学习和无监督学习监督学习回归问题分类问题无穷的处理无监督学习概念聚类算法鸡尾酒会算法模型描述代价函数代价函数是什么简化代价函数进行可视化理解完整代数函数图像(高线图表示)梯度下降算法过程梯度函数表达式梯度下降函数的更新规则线…

Android修行手册 - TabLayout全解析(上)-常用方法

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过…

BP神经网络简单应用实例,bp神经网络的应用案例

BP神经网络在地面沉降预测中的应用 地面沉降是多种自然和人为因素共同作用的结果。 各种要素发生作用的时空序列、影响强度和方向以及它们之间的关系处于不断变化之中,同时各因素的变化及其影响并不是单方面的,各变量之间相互形成制约关系,…

牛掰!完美诠释Netty!腾讯强推599页Netty进阶神技

Netty 作为一个学Java的,如果没有研究过Netty,那么你只能算一个初等Java程序员。如果你想知道Nginx是怎么写出来的,如果你想知道Tomcat和Jetty是如何实现的,如果你想实现一个简单的Redis服务器,那都应该好好理解一下Ne…

[需求管理-3]:什么是需求分析?常用的需求分析的流程与方法

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/details/126855421 目录 第1章 什么是需求分析 1.1 概述 1.2 需求分析的本质 1.…

go-cqhttp调用接口

目录调用接口一、 概述1、 简介2、 接口二、 接入权限系统1、 智能聊天2、 戳一戳3、 新成员三、 调用接口1、 查找接口2、 调用接口3、 接入机器人 调用接口 一、 概述 1、 简介 在我们实现了权限控制功能后,那么我们就在也不用担心机器人话太多,同时,平时又没时间,电脑又…

openSmile 在 Linux 下的安装教程与使用示例

目录openSMILE 工具简介Linux 上的安装步骤使用示例后续openSMILE 工具简介 一款以命令行形式运行的工具,通过配置config文件,主要用于音频特征的提取。官网:https://www.audeering.com/research/opensmile/ (当前是3.0版本&…

Oracle中的用户和表空间

文章目录Oracle中的用户和表空间一、用户和表空间简介二、用户1、系统用户登录1.1、数据库在本机时1.2、数据库在远程时1.3、案例2、查看登录用户2.1、命令2.2、案例3、解锁与锁定用户3.1、命令3.2、案例4、使用scott用户登录4.1、命令4.2、案例三、表空间1、表空间数据字典2、…

解决从PDF复制文字后乱码问题

背景 需要从PDF复制文字出来做笔记,可是谁知道PDF通过adobe打开后复制出来后是乱码,如下图所示: 解决 尝试过安装字体,可惜没卵用。 方法1-CAJViewer打开 用该软件打开后复制,可以完美复制,但是有个小问题…

Fastformer: Additive Attention Can Be All You Need

创新点:本文根据transformer模型进行改进,提出了一个高效的模型,模型复杂度呈线性。 主要改进了注意力机制,出发点在于降低了注意力矩阵的重要程度,该方法采用一个(1*T)一维向量替换了原始T*T大小的注意力矩阵。注意力结构图: 在这里,输入同样通过不同的线性映射得到Q…

Vue23全面知识总结七(2)

感兴趣的朋友可以去我的语雀平台进行查看更多的知识。 https://www.yuque.com/ambition-bcpii/muziteng 7.8 路由的props配置 props作用:让路由组件更方便的收到参数 {name:detail,path:detail/:id,component:Detail,//第一种写法:props值为对象&…

Java内存模型:创建对象在堆区如何分配内存

一、Heap堆区 Heap堆是JVM所管理的内存中最大的一块区域,被所有线程共享的一块内存区域。堆区中存放对象实例和数组,“几乎”所有的对象实例以及数组都在这里分配内存。 新生代、老年代 二、创建对象的内存分配 初始创建对象会在新生代的Eden区生成&…

行为型设计模式之策略模式

行为型设计模式之策略模式策略模式应用场景优缺点主要角色策略模式的基本使用创建抽象策略角色创建具体策略角色创建上下文角色客户端执行策略模式实现支付方式的选择创建抽象策略角色创建具体策略角色创建上下文角色客户端执行策略模式 策略模式(Strategy Pattern)…

线程安全集合:CopyOnWriteArrayList源码分析

目录 一、基本思想 二、源码分析 add()方法 set()方法 remove()方法 get()方法 三、小结 一、基本思想 首先CopyOnWrite 简称 COW ,是一种用于对集合并发访问的优化策略。基本思想是:当我们往一个集合容器中写入元素时(比如添加…

C++左值右值、左值引用右值引用、移动语义move

目录 1.什么是左值、右值 2.什么是左值引用&、右值引用&& 2.1左值引用& 2.2右值引用&& 2.3对左右值引用本质的讨论 2.3.1右值引用有办法指向左值吗? 2.3.2左值引用、右值引用本身是左值还是右值? 2.4 右值引用使用场景…