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

python sklearn 机器学习(1)

一、任务要求:

任务一:药品销量预测
【任务说明】
现有一医疗机构多年来的药品销售数据,基于该数据,选择合适
的算法训练模型,并对该机构的药品销量进行预测。
【任务要求】
1.读取药品销售数据;
2.提取合适的特征;
3.对数据进行编码等预处理;
4.划分训练集和测试集;
5.构建机器学习模型;
6.编写模型训练相关代码,完成模型训练;
7.将训练好的模型进行保存;
8.使用模型进行预测。

二、代码部分:

import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
import joblibdata = pd.read_csv('药品销售数据.csv')
data['销售日期'] = pd.to_datetime(data['销售日期'])
data['年份'] = data['销售日期'].dt.year
data['月份'] = data['销售日期'].dt.month
data['药品编码_药品名称'] = data['商品编码'] + '_' + data['商品名称']
features = ['药品编码_药品名称', '年份', '月份']
target = '销售数量'
x = data[features]
y = data[target]label_encoder = LabelEncoder()
x.loc[:, '药品编码_药品名称'] = label_encoder.fit_transform(x['药品编码_药品名称'])# 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(x_train, y_train)
train_score = model.score(x_train, y_train)
test_score = model.score(x_test, y_test)
print(f"训练集得分:{train_score:.2f}")
print(f"测试集得分:{test_score:.2f}")# 保存模型
joblib.dump(model, 'model.pkl')
joblib.dump(label_encoder, 'label.pkl')# 读取模型
loaded_model = joblib.load('model.pkl')
loaded_label = joblib.load('label.pkl')new_data = pd.DataFrame({'药品编码_药品名称': ['P00007_商品名称17', 'P00003_商品名称3', ],'年份': [2013, 2013],'月份': [3, 4],
})# 预测
new_data['药品编码_药品名称'] = loaded_label.transform(new_data['药品编码_药品名称'])
predictions = loaded_model.predict(new_data)
print(f"预测的销售数量:{predictions}")
print(f"预测的销售数量:{predictions[0]}")
print(f"预测的销售数量:{predictions[1]}")

三、运行结果:

http://www.xdnf.cn/news/14717.html

相关文章:

  • Web应用开发 --- Tips
  • Windows 环境下设置 RabbitMQ 的 consumer_timeout 参数
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符
  • 华为云Flexus+DeepSeek征文 | 二次开发学习顾问系统对接华为云ModelArts Studio 实现智能答疑学习辅导
  • 设计模式之适配器模式
  • Unity Catalog 三大升级:Data+AI 时代的统一治理再进化
  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
  • JDK自带的HttpClient,替代Apache的更优解?
  • Spring Cloud:分布式事务管理与数据一致性解决方案
  • 【如何实现分布式压测中间件】
  • 【算法设计与分析】(二)什么是递归,以及分治法的基本思想
  • 【word】把参考文献序号统一换为上标
  • github上传代码步骤(http)
  • Redis--黑马点评--消息队列
  • 基于 SpringBoot 实现一个 JAVA 代理 HTTP / WS
  • 电压跟随器输入电压正常、输出电压等于0V?
  • WebRTC(十三):信令服务器
  • python动漫周边电商网站系统
  • 视频序列中的帧间匹配技术 FrameMatcher 详解
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • SQL 子查询全位置解析:可编写子查询的 7 大子句
  • Web基础关键_004_CSS(二)
  • 2023国赛linux的应急响应-wp
  • JSON简介及其应用
  • 【LLIE专题】EnlightenGAN 无监督低照度图像增强
  • 实现一个AI大模型当前都无法正确实现的基础二叉树读取算法
  • 商业秘密中经营信息的法律保护探析——以客户名册为例
  • 数字孪生技术引领UI前端设计新革命:实时交互与模拟预测
  • 【Bluedroid】蓝牙启动之BTM_reset_complete源码解析
  • yolov13+bytetrack的目标跟踪实现