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

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.lryc.cn/news/576833.html

相关文章:

  • Ragflow本地部署和基于知识库的智能问答测试
  • 【Typst】自定义彩色盒子
  • 医疗AI智能基础设施构建:向量数据库矩阵化建设流程分析
  • 如何搭建基于RK3588的边缘服务器集群?支持12个RK3588云手机
  • Qt QGraphics简述及例程 - QGraphicsView、QGraphicsScene和QGraphicsItem
  • 深入剖析Nacos服务发现与注册,及如何基于LoadBalancer实现负载均衡
  • #华为昇腾#华为计算#昇腾开发者计划2025#
  • Redis分布式锁核心原理源码
  • #华为鲲鹏#华为计算#鲲鹏开发者计划2025#
  • Transformer结构与代码实现详解
  • 【电路笔记 TMS320F28335DSP】TI SCI (增强型的UART) 点对点异步串行通信接口
  • 【OpenGL学习】(八)图形变换
  • Oauth2 自定义设置token过期时间
  • 状态机编程实战 | 如何更优雅地处理字符串
  • 全新大模型开源,腾讯(int4能打DeepSeek) Vs 谷歌(2GB运行多模态)
  • Gemini-CLI:谷歌开源的命令行AI工具,重新定义开发者工作流
  • Ubuntu22 安装 RTX 5070 Ti Nvidia Driver 驱动
  • 自学嵌入式 day27 进程
  • mac系统快捷键及命令安装
  • 状态模式 - Flutter中的状态变身术,让对象随“状态“自由切换行为!
  • 边界的艺术:支持向量机与统计学习时代的王者
  • 设计模式-外观模式、适配器模式
  • 【数据挖掘】聚类算法学习—K-Means
  • YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-conv.py
  • 设备预测性维护和异常检测系统设计方案
  • 【HuggingFace】模型下载至本地访问
  • Git安装全攻略:避坑指南与最佳实践
  • C++ 格式化输入输出
  • 人工智能时代的职业替代风险与应对策略分析
  • MySQL技巧