当前位置: 首页 > 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]}")

三、运行结果:

相关文章:

  • 【C++】C++的虚析构函数
  • Linux基本命令篇 —— head命令
  • 什么是P2P 网络(Peer-to-Peer Network)
  • linux运维学习第10周
  • FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
  • 命令模式 - Flutter中的操作封装大师,把“动作“变成可管理的对象!
  • 数据同步工具对比:Canal、DataX与Flink CDC
  • stm32hal模块驱动(2)bmi270气压计
  • 数据结构之单链表
  • 爬虫实战之图片及人物信息爬取
  • 华为云Flexus+DeepSeek征文 | 华为云 ModelArts Studio 赋能 AI 法务:合同审查与法律文件生成系统
  • 【硬核数学】4. AI的“寻路”艺术:优化理论如何找到模型的最优解《从零构建机器学习、深度学习到LLM的数学认知》
  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
  • 滑块验证码(1)
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • ViTMatte:利用预训练的基础视觉Transformer提升图像抠图性能
  • 云计算在布莱克-斯科尔斯模型中的应用:解析解、蒙特卡洛模拟与可视化-AI云计算数值分析和代码验证
  • Node.js特训专栏-实战进阶:11. Redis缓存策略与应用场景
  • 【更新至2024年】1999-2024年各省城镇居民人均消费支出数据(无缺失)
  • 八股文——JAVA基础:String s1 = new String(“abc“);这句话创建了几个字符串对象?