机器学习模型保存和导出pmml文件(python代码)

1.导出依赖库文件
原生python环境

pip freeze这是最常用的方法,适用于任何基于pip的Python环境,无论是全局环境还是虚拟环境(如venv或virtualenv)。requirements.txt通常用于纯Python项目,不包括C库等非Python依赖。

导出所有已安装依赖:

pip freeze > requirements.txt

将当前环境中所有已安装的库及其版本信息输出到requirements.txt文件中。

精简导出项目依赖:
仅导出项目实际使用的依赖,可以自动检测项目中哪些库被实际引用并生成更精确的依赖列表:

pipreqs ./ --encoding=utf8 --force

安装命令:

pip install -r requirements.txt
conda环境

导出当前conda环境的所有包到一个environment.yml文件中,这个文件包含了conda环境中的所有依赖(包名和版本),包括Python包和非Python库,也可以用来完全恢复整个conda环境。

conda list --export > environment.yml

安装命令:

conda env create -f environment.yml
2.保存和导出PMML文件

PMML(Predictive Model Markup Language):预测模型标记语言,它是通过XML格式来描述生成的机器学习模型。通常训练好的模型需要在生产环境中部署和使用,一般导出为PMML格式,以便在其他平台上部署使用,再使用目标环境解析PMML文件的库来加载模型,并做出预测。

优点:PMML采用标准的XML格式保存模型,支持很多常用的开源模型转换成PMML文件。支持文本编辑器打开查阅,可以实现跨平台部署,易于使用Java调用。

缺点:对数据预处理的支持有限,支持几乎所有的标准数据处理方式,但对于自拓展的还缺乏有效支持。缺乏对深度学习模型的支持。

3.示例
# -*- coding: utf-8 -*-
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import tree
from sklearn import metrics
from sklearn.metrics import classification_report
from sklearn2pmml import sklearn2pmml
from sklearn2pmml.pipeline import PMMLPipelineclass TreeModel:def __int__(self):pass@staticmethoddef load_data():iris = datasets.load_iris()iris_features = iris.datairis_target = iris.targetfeature_name = iris.feature_namestrain_x, test_x, train_y, test_y = train_test_split(iris_features,iris_target,test_size=0.3,random_state=123)return train_x, test_x, train_y, test_y, feature_namedef train_test_model(self):train_x, test_x, train_y, test_y, feature_name = self.load_data()model = tree.DecisionTreeClassifier(criterion='gini')model.fit(train_x, train_y)model.score(train_x, train_y)y_pre = model.predict(test_x)tree_matrix = metrics.confusion_matrix(test_y, y_pre)print('混淆矩阵:\n', tree_matrix)print('结果分类报告:\n', classification_report(test_y, y_pre))# 特征重要性feature_important = pd.DataFrame([*zip(feature_name, model.feature_importances_)],columns=['features', 'Gini importance'])print('特征重要度:\n', feature_important.sort_values(by='Gini importance'))return modeldef exe_func(self):model = self.train_test_model()# 创建一个PMMLPipeline对象pipline2 = PMMLPipeline([('classifier', model)])# 导出模型为PMML格式sklearn2pmml(pipline2, 'model.pmml')if __name__ == '__main__':TreeModel().exe_func()

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

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

相关文章

异步日志方案spdlog

异步日志方案spdlog spdlog 是一款高效的 C 日志库,它以其极高的性能和零成本的抽象而著称。spdlog 支持异步和同步日志记录,提供多种日志级别,并允许用户将日志输出到控制台、文件或自定义的接收器。 多线程使用和同步、异步日志没有关系是…

Linux系统----信号(万字文章超级详细并且简单易学附有实操shell指令图及注释!)

绪论​ “Do one thing at a time, and do well.”,本章开始Linux系统其中信号是学习操作系统的基本下面将会讲到什么是信号、信号的多种产生方式、信号如何保存的、信号如何处理的、以及一些信号的细节。话不多说安全带系好,发车啦(建议电脑…

【鸿蒙】通知

一、概要 Android的Notification。 说到通知,就想到了推送。 通知这块可以做到不像Android一样需要集成各家厂商的推送了,不知道是否有建立独立的推送系统 这是官网上介绍的跨APP进行的IPC通知。实际在Android开发过程中,可能这种场景会相对…

MarginNote 3 for Mac:一站式思维导图与笔记神器,让学习更高效

MarginNote 3 for Mac是一款功能强大的阅读和学习工具软件,它将PDF/EPUB阅读器和多种学习工具集成起来,旨在帮助用户更有效地进行阅读、笔记整理以及知识管理。 这款软件的核心功能在于其能够将阅读与学习过程紧密结合。用户可以在阅读文档时&#xff0…

勒索软件安全防护手册

文章目录 相关背景勒索软件概述勒索软件主要类型文件加密类勒索软件数据窃取类勒索软件系统加密类勒索软件。屏幕锁定类勒索软件 勒索软件典型传播方式利用安全漏洞传播利用钓鱼邮件传播利用网站挂马传播利用移动介质传播利用软件供应链传播利用远程桌面入侵传播 典型勒索软件攻…

自动驾驶传感器篇: GNSSIMU组合导航

自动驾驶传感器篇: GNSS&IMU组合导航 1.GNSS1.1 GNSS 系统概述1.2 GNSS系统基本组成1. 空间部分(Space Segment):2. 地面控制部分(Ground Control Segment):3. 用户设备部分(Use…

Stable Diffusion WebUI 使用 VAE 增加滤镜效果

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要介绍 VAE 模型,主要内容有:VAE 模型的概念、如果下载 VAE 模型、如何安装 VAE 模型、如…

开箱展示——深圳市雷龙发展的存储卡

最近收到了来自深圳市雷龙发展有限公司寄来的存储卡,奈何最近也没有好的嵌入式项目需要用到,哪这里就简单给大家展示一下吧。 原始包装大概就是这样子了垃,有两个存储芯片和一个简单的转接器,测试的时候可以把芯片焊接到转接器…

如何安装mysl驱动程序jar包

简介(为什么要安装mysql驱动jar包) MySQL 驱动程序(通常以 JAR 文件的形式提供)用于在 Java 应用程序中连接和与 MySQL 数据库进行交互。这些驱动程序提供了一组 API,使 Java 应用程序能够执行诸如查询、插入、更新和…

【月报】​Aavegotchi 开发更新 |2024 年 4 月版,多款游戏上新玩法

朋友们好! 春天来了,我们热情洋溢的团队很高兴能为 Gotchiverse 带来一堆新鲜的更新和丰富的功能。让我们一起来看看这次开发更新带来了什么: Gotchichain 选择定居基地 精神力量竞技场获得了 EBIC 更新 高奇守护者通过全新的进阶系统提升…

C# APS.NET CORE 6.0 WebApi在IIS部署报错

今天尝试着把基于 APS.NET CORE6.0开发的webAPI程序部署到IIS中,当打开网站地址时报错,无法打开,于是查找资料最终进行了解决。 打开 IIS →模块 查看列表中是否存在 AspNetCoreModuleV2,如下: 对应的应用池需要选择“…

海外云服务对比: AWS、GCP、Azure 与 DigitalOcean

云计算市场持续增长,预计到2030年将达到 2432.87 亿美元。在这个庞大的市场中,三家云服务提供商——亚马逊(AWS)、谷歌云平台(GCP)和微软Azure——共占云市场份额的64%。当用户选择云服务提供商来托管他们的…

【React】反向代理和修改打包后的目录

反向代理 前提是做了反向代理: 安装 http-proxy-middleware npm i http-proxy-middleware在src/下新建 setupProxy.js const proxy require("http-proxy-middleware");module.exports function(app) {app.use(proxy("/api", {target: &qu…

C++ | Leetcode C++题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {auto allStars [](const string& str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true;};auto charMatch []…

时隔5年,MobileNet V4发布!

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 距离MobileNet系列上一代版本MobileNet V3的发布已经过去五年 熟悉该系列的同学应该知道&#xff0c;MobileNet致力于维持神经网络在精度和效率之间的微妙平衡&#xff0c;为了让用户在移动设备上拥有…

贪吃蛇撞墙功能的实现 和自动行走刷新地图 -- 第三十天

1.撞墙 1.1最初的头和尾指针要置为空&#xff0c;不然是野指针 1.2 在增加和删除节点后&#xff0c;判断是否撞墙&#xff0c;撞墙则初始话蛇 1.3在撞墙后初始化蛇&#xff0c;如果头不为空就撞墙&#xff0c;得定义临时指针指向头&#xff0c;释放头节点 2.自动刷新地图 2.1…

从Kafka的可靠性设计体验软件设计之美

目录 1. Kafka可靠性概述 2. 副本剖析 2.1 什么是副本 2.2 副本失效场景 2.3 数据丢失场景 2.4 解决数据丢失方案 3. 日志同步机制 4. 可靠性分析 1. Kafka可靠性概述 Kafka 中采用了多副本的机制&#xff0c;这是大多数分布式系统中惯用的手法&#xff0c;以此来实现水平扩…

Web-SpringBootWen

创建项目 后面因为报错&#xff0c;所以我把jdk修改成22&#xff0c;仅供参考。 定义类&#xff0c;创建方法 package com.start.springbootstart.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotati…

java-Spring-(MyBatis框架-xml管理)

目录 前置条件 xml与注解比较 1.1 xml定义 1.2 和SQL注解比较 建包准备 插入数据 ​编辑 更新数据 删除数据 查询数据 查看单字段查询 &#x1f3f7;&#x1f4a3;前置条件 创建一个spring boot 初始化的项目 &#x1f3f7;&#x1f4a3;xml与注解比较 1.1 xml定义 …

以太网口硬件知识分享

一、了解网口通信基本原理 实现网络通信实质上是PHY与MAC及RJ45接口实现信号传输。MAC 就是以太网控制器&#xff0c;MAC属于数据链路层&#xff0c;主要负责把数据封装成帧&#xff0c;对帧进行界定实现帧同步。对MAC地址和源MAC地址及逆行相应的处理并对错误帧进行处理。PHY…