实验三:机器学习1.0

要求:

针对实验1和实验2构建的数据集信息分析

设计实现通过数据简介进行大类分类的程序

代码实现:

训练集数据获取:

read_data.py

import json
import pickle

def read_intro():
    data = []
    trypath=r"E:\Procedure\Python\Experiment\first.json"
    filepath=r"E:\Procedure\Python\Experiment\res1.json"
    with open(filepath, 'r', encoding='utf-8') as file:
        for line in file:
            record = json.loads(line)
            if record.get('intro')!='':
                data.append(record)
    return data

def store_model(model):
    # 加载模型
    file=r'E:\Procedure\Python\Experiment\Machine_Learning\model1.pkl'
    try:
        # 尝试以 'xb' 模式打开文件,如果文件不存在则创建新文件
        with open(file, 'wb') as file:
            # 使用 pickle 序列化模型并写入文件
            pickle.dump(model, file)
    except FileExistsError:
        print("File already exists. Cannot overwrite existing file.")
    except Exception as e:
        print("An error occurred:", e)
    # 使用加载的模型进行预测
    #predictions = loaded_model.predict(X_test)
def store_report(report):
    file=r"E:\Procedure\Python\Experiment\Machine_Learning\class_report.txt"
    with open(file,'w')as file:
        file.write(report)
    return

def get_model():
    m_path=r'E:\Procedure\Python\Experiment\Machine_Learning\model1.pkl'
    try:
        with open(m_path,'rb')as file:
            loaded_model=pickle.load(file)
        return loaded_model
    except Exception as e:
        print(e)
        return None
训练模型:

多项式朴素贝叶斯模型用于单一标签文本分类

# 导入所需的库
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report
import read_data
import random
data=read_data.read_intro()
random.shuffle(data)
X = [item['intro'] for item in data]
y = [item['mainclass'] for item in data]
# 文本向量化
vectorizer = TfidfVectorizer()
X_vectorized = vectorizer.fit_transform(X)

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_vectorized, y, test_size=0.2, random_state=42)

# 初始化朴素贝叶斯分类器
model = read_data.get_model()
#model = MultinomialNB()
# 训练模型

model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

read_data.store_model(model)
# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# 打印分类报告
print("\nClassification Report:")
report=classification_report(y_test, y_pred,zero_division=0)
print(report)
read_data.store_report(report)

结果:

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

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

相关文章

【计算机毕业设计】springboot城市公交运营管理系统

二十一世纪我们的社会进入了信息时代, 信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设…

wefaf

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

算法学习(7)-树

目录 开启“树”之旅 二叉树 堆--优先队列 并查集 开启“树”之旅 是不是很像一棵倒挂的树?也就是说它是根朝上, 而叶子朝下的。不像?哈哈,来看看下面的图你就会觉得像啦。 你可能会间: 树和图有什么区别&#xff…

纯血鸿蒙APP实战开发——Worker子线程中解压文件

介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作,解压成功后将解压路径返回主线程,获取解压文件列表。 效果图预览 使用说明 点击解压按钮,解压test.zip文件,显…

ArcGIS10.X入门实战视频教程(arcgis入门到精通)

点击学习: ArcGIS10.X入门实战视频教程(GIS思维)https://edu.csdn.net/course/detail/4046?utm_sourceblog2edu 点击学习: ArcGIS10.X入门实战视频教程(GIS思维)https://edu.csdn.net/course/detail/404…

用SwitchHosts模拟本地域名解析访问

一.用SwitchHosts模拟本地域名解析访问 1.下载地址 https://download.csdn.net/download/jinhuding/89313168 2.使用截图

Python自动化SQL注入和数据库取证工具库之sqlmap使用详解

概要 在网络安全领域,SQL注入仍然是最常见的攻击之一。sqlmap是一个开源的自动化SQL注入和数据库取证工具,它提供了广泛的功能来检测和利用SQL注入漏洞。本文将详细介绍sqlmap的安装、特性、基本与高级功能,并结合实际应用场景,展示其在网络安全测试中的应用。 安装 sqlm…

激光打标机:手机制造中不可或缺的加工设备

激光打标机在手机行业中有多种应用,主要体现在以下几个方面: 1. 手机外壳打标:光纤激光打标机在手机外壳上打标的痕迹非常美观,可以印上厂家品牌标识,既保证了手机外壳的美观,也提高了产品的打标质量和加工…

云曦实验室期中考核题

Web_SINGIN 解题: 点击打开环境,得 查看源代码,得 点开下面的超链接,得 看到一串base64编码,解码得flag 简简单单的文件上传 解题: 点击打开环境,得 可以看出这是一道文件上传的题目&#x…

2024年最新软件测试面试题必问的1000题!

我了解的测试理论和方法包括以下几个方面: 黑盒测试与白盒测试: 黑盒测试:基于对软件系统外部行为进行测试,独立于内部代码实现细节。黑盒测试关注输入与输出之间的关系以及软件功能是否符合预期。白盒测试:基于对软件…

搭载全新升级viaim AI,讯飞会议耳机Pro 2首销价1399元起

2024年5月15日,人工智能硬件公司未来智能发布了讯飞会议耳机Pro 2、iFLYBUDS 2以及Kit 2三款旗舰新品,为用户带来全新升级的viaim AI,也为AIGC智能耳机树立了新标杆。 在发布会上,未来智能CEO马啸表示:在AIGC领域&…

基于EBAZ4205矿板的图像处理:05均值滤波算法

基于EBAZ4205矿板的图像处理:05均值滤波算法 项目全部文件已经上传,是免费的 先看效果 可以明显看到图像变糊了,这就是均值滤波的特点,将噪声均摊到每个点上的同时,也会让图像丢失细节。 算法讲解 均值滤波&#x…

连锁收银系统如何助力实体门店私域运营

作为实体门店,私域运营是提升客户黏性和增加复购率的重要策略之一。而连锁收银系统在私域运营中扮演了关键的角色,它不仅可以帮助门店管理客户信息和消费记录,还能够通过数据分析和营销功能提供个性化的服务和推广活动。下面看看连锁收银系统…

STM32F407 2个高级定时器生成2路无刷电机波形以及相电流采集程序(寄存器版)

stm32f407 高级定时1、定时8 生成20k 中心PWM 波形 并分别用其通道4 触发ADC1 ADC2 采样 用于分别两无刷电机foc 电流环控制,ADC1产生50us的电流采集完成中断,用于foc算法周期运算 主要参考高级定时器的寄存器和ADC寄存器 首先,要使用STM32F…

libcity笔记: HSTLSTMEncoder

1 __init__ 2 encode 得到的内容如下: data_feature的内容: 一共有多少个location1【包括pad的一个】最长的时间间隔(秒)最长的距离间隔(千米)多少个useer idpadding 的locationidpad_item的内容 location…

Docker三剑客从0到1

一、docker三剑客介绍 使用"三剑客"可以帮助我们解决docker host维护,多容器编排部署,多个docker host集群的各个难题。 docker-machine 创建虚拟机 我们知道docker使用了linux的内核技术(namespace 资源隔离,cgroup资源限制等),那么如果我想在windows或Mac系统上…

原地去重问题和合并有序数组问题

原地去重问题 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。这是leetcode上的一道题 这里我们用…

shell脚本之sort,uniq,tr,cut,sphit,paste,ecal与正则表达式

sort命令 uniq命令 tr命令 cut命令 sphit命令 paste命令 ecal命令 正则表达式 sort命令 sort命令---以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序…

54.指针

目录 一.什么是指针? 二.定义一个指针变量 三.指针变量类型 四.取地址运算符& 五.取值运算符* 六.视频教程 一.什么是指针? 口语中的指针一般指指针变量,指针变量存放的是一个地址。普通变量存放…

Blender雕刻建模_衰减

衰减 从中心点向外的强度衰减。 其中 中心点:即笔刷选中的顶点 半径:即笔刷的半径 衰减范围 从中心点向外的一个球形空间(不仅是看见的2D球,而是一个3D球形的空间) 为了避免误操作有如下几种方法: -Al…