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

Python语言实现刑事犯罪罪名判定算法

使用Python语言实现刑事犯罪罪名判定算法,判断出罪名信息。

摘要

本课题的研究目标是使用Python语言实现刑事犯罪罪名判定算法,以罪名为标签,以案件情况说明为文本特征,先进行简单数据预处理,再进行相关文本处理,接着用训练集数据对支持向量机、逻辑回归、多项式朴素贝叶斯三个模型进行训练,判断出罪名信息,最后结合两个模型对低频罪名二次强化预测。

刑事犯罪的罪名判定方法

任务描述

通过对支持向量机、逻辑回归、多项式朴素贝叶斯三个模型的评估比较分析,选择适合罪名判定的最佳模型。

数据准备

此次实验使用的数据集,分为训练集、测试集,其中保存训练集数据、测试集数据的txt文件的文件夹名称分别为“dataTrainSet_under200”和“dataTestSet_under200”。

数据集存放数据集文件夹名称划分概率罪名数量案件数量
训练集dataTrainSet_under2000.721617329
测试集dataTestSet_under2000.32167310

实验设置

对于所有的案件情况描述进行jieba分词,然后进行去停用词处理之后,开始TF-IDF处理进行单词权值的计算,提取特征尺寸为5000的特征进行输入,即设置参数max_features= 5000,接着分别对支持向量机、逻辑回归、多项式朴素贝叶斯三个模型进行训练。

利用OneVsRestClassifier类实现svm.SVC的多分类并采用线性核函数进行支持向量机模型的训练,逻辑回归模型优化后的参数为(multi_class=“multinomial”, solver=‘saga’, max_iter=20, random_state=20),对于多项式朴素贝叶斯的参数不做处理,保持默认状态。

模型评估结果分析

​ 三个模型预测测试集数据的评估指标对比

模型AccuracyPrecision_ macro _avgRecall_ macro _avgF1-score_ macro _avg测试集数据量
支持向量机0.800.680.620.637310
逻辑回归0.770.540.500.507310
多项式朴素贝叶斯0.710.690.680.657310

刑事犯罪的低频罪名判定方法

任务描述

本文把在刑事案件数量在[2,50)范围的罪名,称为低频罪名。

在前面的罪名判定实验的TF-IDF+支持向量机模型的基础上,对低频罪名进行预测的评估。

为了提高低频罪名的判定的效果,将所有的低频罪名样本作为一个大类并将其标签命名为“其他类”,和其他样本一起训练出第一个模型,再单独对低频罪名的数据训练第二个模型,当用第一个模型预测低频罪名的测试案件说明时,预测结果为“其他类”,就调用第二个模型进行预测,使预测效果进行二次强化。

实验设置

本次实验的两个模型,使用了在前面实验取得模型评估效果最佳的支持向量机模型,参数也是线性核函数,这两个模型的不同之处在于使用的训练集数据不同。

模型评估结果分析

​ 第一个模型的整体评估指标结果

数据AccuracyPrecision_ macro _avgRecall_ macro _avgF1-score_ macro _avg测试集数据量
第一个模型测试集0.810.810.810.817310

​ 经过两次强化后的低频罪名预测结果

数据Precision_ macro _avgRecall_ macro _avgF1-score_ macro _avg测试集数据量
第一个模型标签“其他类”的数据0.630.540.58383
第二个模型测试集0.660.670.65383

总结

本文基于刑事犯罪罪名判定算法的设计与实现,可以实现简单的单重罪名判定和提高低频罪名判定效果,但在本次的实验仍然有许多需要完善的问题,如样本不均衡、易混淆罪名等等问题,多重罪名判定的问题没有得以解决。
如需代码,请私信联系


http://www.kler.cn/a/370254.html

相关文章:

  • 港口危货储存单位生产管理人员题库附答案
  • 用于牙科的多任务视频增强
  • 微软预测 AI 2025,AI Agents 重塑工作形式
  • ARCGIS国土超级工具集1.3更新说明
  • vue2 - Day05 - VueX
  • 深度学习常见术语解释
  • 大数据之Kafka
  • 简单的Python爬虫实例
  • Qt example---40000 Chips
  • XCode16中c++头文件找不到解决办法
  • 007:无人机遥控器功能介绍
  • 鼠标事件与webGl坐标系
  • RayLink为企业提供高效安全的远程办公环境
  • 架构师备考-非关系型数据库
  • 贵州鑫宏远农业-始终致力于推动现代农业的科技创新与发展
  • 使用 FastGPT + Ollama 搭建本地 AI 客服小助手
  • 【封装小程序log,设定层级】
  • opencv - py_ml - py_kmeans
  • Vue.js从入门到精通 — 基础知识
  • 医学影像基础:常见的医学影像学术语和概念
  • 商场应急管理:SpringBoot技术解决方案
  • 后端:Spring-1
  • 智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT
  • canvas基础学习(鼠标点位拖拽)
  • 为什么有的说法是STM32有60个外部中断,有的说法是有23个中断
  • vscode中提升效率的插件扩展——待更新